[ Index ]

PHP Cross Reference of phpwcms V1.4.3 _r380 (23.11.09)

title

Body

[close]

/include/inc_front/content/ -> cnt7.article.inc.php (source)

   1  <?php
   2  /*************************************************************************************
   3     Copyright notice
   4     
   5     (c) 2002-2009 Oliver Georgi (oliver@phpwcms.de) // All rights reserved.
   6   
   7     This script is part of PHPWCMS. The PHPWCMS web content management system is
   8     free software; you can redistribute it and/or modify it under the terms of
   9     the GNU General Public License as published by the Free Software Foundation;
  10     either version 2 of the License, or (at your option) any later version.
  11    
  12     The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html
  13     A copy is found in the textfile GPL.txt and important notices to the license 
  14     from the author is found in LICENSE.txt distributed with these scripts.
  15    
  16     This script is distributed in the hope that it will be useful, but WITHOUT ANY 
  17     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  18     PARTICULAR PURPOSE.  See the GNU General Public License for more details.
  19   
  20     This copyright notice MUST APPEAR in all copies of the script!
  21  *************************************************************************************/
  22  
  23  // ----------------------------------------------------------------
  24  // obligate check for phpwcms constants
  25  if (!defined('PHPWCMS_ROOT')) {
  26     die("You Cannot Access This Script Directly, Have a Nice Day.");
  27  }
  28  // ----------------------------------------------------------------
  29  
  30  
  31  
  32  //file list
  33  
  34  // if $IS_NEWS_CP = true then file list content part rendere is
  35  // included by news content part
  36  
  37  // default cp rendering
  38  if( empty($IS_NEWS_CP) ) {
  39  
  40      $crow["acontent_files"]        = explode(':', $crow["acontent_files"]);
  41      $crow["acontent_text"]        = explode("\n", $crow["acontent_text"]);
  42      $crow["acontent_form"]        = unserialize($crow["acontent_form"]);
  43      $crow['file_cp_title']        = $crow['acontent_title'];
  44      $crow['file_cp_subtitle']    = $crow['acontent_subtitle'];
  45      $content['files_direct']    = empty($crow["acontent_form"]['direct_download']) ? 0 : 1;
  46  
  47  } else {
  48  
  49      // news cp rendering
  50      // take some default values by news
  51      $crow["acontent_files"]        = $value['cnt_object']['cnt_files']['id'];
  52      $crow["acontent_text"]        = explode("\n", $value['cnt_object']['cnt_files']['caption']);
  53      $content['files_direct']    = $value['files_direct_download'];
  54      $crow["acontent_template"]    = $value['files_template'];
  55      $crow["acontent_html"]        = '';
  56      $crow['file_cp_title']        = '';
  57      $crow['file_cp_subtitle']    = '';
  58  
  59  }
  60  
  61  $content['files']            = array();
  62  $content['files_sql']        = array();
  63  
  64  // build file id query first
  65  foreach($crow["acontent_files"] as $fkey => $value) {
  66  
  67      $value                                        = intval($value);
  68  
  69      if($value) {
  70          $content['files'][$fkey]['file_id']        = $value;
  71          $content['files'][$fkey]['file_info']    = empty($crow["acontent_text"][$fkey]) ? '' : trim($crow["acontent_text"][$fkey]);
  72          $content['files_sql'][$fkey]                = $value;
  73      }
  74  }
  75  
  76  // create where query part for file ID
  77  $content['files_sql'] = is_array($content['files_sql']) && count($content['files_sql']) ? 'f_id IN(' . implode(',', $content['files_sql']).')' : '';
  78  
  79  // if $content['files_sql'] is empty makes no sense to continue
  80  if($content['files_sql']) {
  81  
  82      if(empty($content['file_static_result'][0])) {
  83  
  84          $content['files_sql']  = "SELECT * FROM ".DB_PREPEND."phpwcms_file WHERE f_public=1 AND f_aktiv=1 AND f_kid=1 AND f_trash=0 AND " . $content['files_sql'];
  85          if( !FEUSER_LOGIN_STATUS ) {
  86              $content['files_sql'] .= ' AND f_granted=0';
  87          }
  88      
  89          $content['files_result'] = _dbQuery($content['files_sql']);
  90          
  91      } else {
  92          
  93          $content['files_result'] = $content['file_static_result'];
  94          
  95      }
  96  
  97      if(is_array($content['files_result']) && count($content['files_result'])) {
  98      
  99          // get filelist template
 100          if(empty($crow["acontent_template"]) && is_file(PHPWCMS_TEMPLATE.'inc_default/filelist.tmpl')) {
 101  
 102              $crow["acontent_template"]    = @file_get_contents(PHPWCMS_TEMPLATE.'inc_default/filelist.tmpl');
 103      
 104          } elseif(is_file(PHPWCMS_TEMPLATE.'inc_cntpart/filelist/'.$crow["acontent_template"])) {
 105              
 106              $crow["acontent_template"] = @file_get_contents(PHPWCMS_TEMPLATE.'inc_cntpart/filelist/'.$crow["acontent_template"]);
 107              
 108          } else {
 109              
 110              $crow["acontent_template"]  = '[TITLE]<h4>{TITLE}</h4>[/TITLE][SUBTITLE]<h5>{SUBTITLE}</h5>[/SUBTITLE][TEXT]{TEXT}[/TEXT]'.LF;
 111              $crow["acontent_template"] .= '<ul class="fileDownload">' . LF . '<!--FILE_ENTRY_START//-->' . LF;
 112              $crow["acontent_template"] .= '    <li><a href="{FILE_LINK}"{FILE_TARGET}>{FILE_NAME}</a></li>' . LF;
 113              $crow["acontent_template"] .= '<!--FILE_ENTRY_END//-->' . LF . '</ul>' . LF;
 114              
 115          }
 116          
 117          $_files_settings                = get_tmpl_section('FILE_SETTINGS', $crow["acontent_template"]);
 118          $_files_settings                = parse_ini_str($_files_settings, false);
 119          $_files_settings                = array_merge(    array(    'icon_path' => 'img/icons/', 
 120                                                                  'icon_name' => 'small_icon_{FILE_EXT}.gif',
 121                                                                  'thumbnail'    => 0,
 122                                                                  'thumbnail_width' => 50,
 123                                                                  'thumbnail_height' => 50,
 124                                                                  'thumbnail_crop' => 1,
 125                                                                  'lightbox_init' => 0,
 126                                                                  'file_size_round' => 3, 
 127                                                                  'file_size_space' => ' ',
 128                                                                  'date_format' => "%m/%d/%y",
 129                                                                  'set_locale' => '')
 130                                                          , $_files_settings );
 131  
 132          $crow["acontent_template"]        = replace_tmpl_section('FILE_SETTINGS', $crow["acontent_template"]);
 133          $content['template_file']        = get_tmpl_section('FILE_ENTRY', $crow["acontent_template"]);
 134          
 135          if($_files_settings['set_locale']) {
 136              $_files_old_locale                = setlocale(LC_ALL, "0");
 137              setlocale(LC_ALL, $_files_settings['set_locale']);
 138          }
 139          if(!empty($_files_settings['lightbox_init'])) {
 140              initializeLightbox();
 141          }
 142          
 143          $_files_count                     = count($content['files_result']);
 144          $_files_entries                    = array();
 145          $_files_get_imagesize            = strpos($content['template_file'], '{FILE_IMAGE_') === FALSE ? false : true; // check if necessary to check for image type and sizes
 146          
 147          foreach($content['files'] as $fkey => $value) {
 148          
 149              for($_files_x = 0; $_files_x < $_files_count; $_files_x++) {
 150                  
 151                  $_file_current = PHPWCMS_ROOT.$phpwcms["file_path"].$content['files_result'][ $_files_x ]['f_hash'];
 152                  if($content['files_result'][ $_files_x ]['f_ext']) {
 153                      $_file_current .= '.'.$content['files_result'][ $_files_x ]['f_ext'];
 154                  }
 155                  
 156                  // compare query result against content part file IDs
 157                  if($content['files_result'][ $_files_x ]['f_id'] == $value['file_id'] && is_file($_file_current) ) {
 158                      
 159                      // check if info for the file is available
 160                      // [0] = normal file description like before
 161                      // [1] = name the file (it's not the file name)
 162                      // [2] = title
 163                      // [3] = target (where to open a new file -> default is _blank even if empty
 164                      // [4] = if it is an image try to show a thumbnail instead of the file icon -> here thumbnail WIDTHxHEIGHT
 165                      
 166                      if($value['file_info']) {
 167                      
 168                          $_file_info = explode('|', $value['file_info']);
 169                          
 170                          $_file_info[0] = trim($_file_info[0]);
 171                          $_file_info[1] = empty($_file_info[1]) ? '' : trim($_file_info[1]);
 172                          $_file_info[2] = empty($_file_info[2]) ? '' : trim($_file_info[2]);
 173                          $_file_info[3] = ' target="'.( empty($_file_info[3]) ? '_blank' : trim($_file_info[3]) ) .'"';
 174                          
 175                          // only when height/width is given
 176                          if(empty($_file_info[4])) {
 177                      
 178                              $_file_info[4] = '';
 179                      
 180                          } else {
 181  
 182                              $_file_info[4] = explode('x', $_file_info[4]);
 183                              $_file_info[4][0] = intval($_file_info[4][0]);
 184                              if(empty($_file_info[4][0])) $_file_info[4][0] = '';
 185                              
 186                              if(empty($_file_info[4][1])) {
 187                                  $_file_info[4][1] = '';
 188                              } else {
 189                                  $_file_info[4][1] = intval($_file_info[4][1]);
 190                                  if(empty($_file_info[4][1])) $_file_info[4][1] = '';
 191                              }
 192                              $_file_info[4][2] = empty($_file_info[4][2]) ? 0 : 1;
 193      
 194                              if(!($_file_info[4][0].$_file_info[4][1])) $_file_info[4] = '';
 195                          }
 196                      
 197                      } else {
 198                      
 199                          $_file_info = array(0 => '', 1 => '', 2 => '', 3 => ' target="_blank"', 4 => '');
 200          
 201                      }
 202                      
 203          
 204                      if(empty($_file_info[4]) && $_files_settings['thumbnail'] == 1) {
 205                      
 206                          $_file_info[4] = array(    0 => intval($_files_settings['thumbnail_width']),
 207                                                  1 => intval($_files_settings['thumbnail_height']),
 208                                                  2 => intval($_files_settings['thumbnail_crop']) ? 1 : 0
 209                                                 );
 210                      
 211                      }
 212                  
 213                      $_files_entries[$fkey]  = $content['template_file'];
 214                      $_files_entries[$fkey]  = str_replace('{FILE_ID}', $content['files_result'][ $_files_x ]['f_id'], $_files_entries[$fkey]);
 215                      $_files_entries[$fkey]  = str_replace('{FILE_TARGET}', $_file_info[3], $_files_entries[$fkey]);
 216                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_EXT', $content['files_result'][ $_files_x ]['f_ext']);
 217                      $_files_entries[$fkey]  = str_replace('{FILE_DOWNLOADS}', $content['files_result'][ $_files_x ]['f_dlfinal'], $_files_entries[$fkey]);
 218                      $_files_entries[$fkey]  = str_replace('{FILE_SIZE}', return_bytes_shorten($content['files_result'][ $_files_x ]['f_size'], $_files_settings['file_size_round'], $_files_settings['file_size_space']), $_files_entries[$fkey]);
 219                      
 220                      $content['files_result'][ $_files_x ]['f_created'] = intval($content['files_result'][ $_files_x ]['f_created']);
 221                      if($content['files_result'][ $_files_x ]['f_created'] <= 0) {
 222                          $content['files_result'][ $_files_x ]['f_created'] = filectime($_file_current);
 223                      }
 224                      $_files_entries[$fkey]  = str_replace('{FILE_DATE}', strftime($_files_settings['date_format'], $content['files_result'][ $_files_x ]['f_created']), $_files_entries[$fkey]);
 225                      
 226                      if($content['files_direct'] && $content['files_result'][ $_files_x ]['f_ext']) {
 227  
 228                          $_files_entries[$fkey]  = str_replace('{FILE_LINK}', 'download.php?f='.$content['files_result'][ $_files_x ]['f_hash'].'&amp;countonly=1', $_files_entries[$fkey]);
 229  
 230                      } else {
 231                          $_files_entries[$fkey]  = str_replace('{FILE_LINK}', 'download.php?f='.$content['files_result'][ $_files_x ]['f_hash'], $_files_entries[$fkey]);
 232                      }
 233                      
 234                      
 235                      if($_file_info[1]) {
 236                          $_files_entries[$fkey]  = str_replace('{FILE_NAME}', html_specialchars($_file_info[1]), $_files_entries[$fkey]);
 237                      } else {
 238                          $_files_entries[$fkey]  = str_replace('{FILE_NAME}', html_specialchars($content['files_result'][ $_files_x ]['f_name']), $_files_entries[$fkey]);
 239                      }
 240                      
 241                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_TITLE', html_specialchars($_file_info[2]));
 242                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_DESCRIPTION', html_specialchars($_file_info[0]));
 243                      
 244                      
 245                      // now check file for possible thumbnail image
 246                      $_files_image = false;
 247                      
 248                      if($_file_info[4] && strpos($_files_entries[$fkey], 'FILE_IMAGE') !== false) {
 249                      
 250                          $target_ext = $content['files_result'][ $_files_x ]['f_ext'];
 251                      
 252                          // do it for jpg, png or gif only
 253                          switch($content['files_result'][ $_files_x ]['f_ext']) {
 254                              
 255                              case 'tif':
 256                              case 'tiff':
 257                              case 'pdf':
 258                              case 'psd':
 259                              case 'eps':        if($GLOBALS['phpwcms']['imagick'] == 0) {
 260                                                  break;
 261                                              }
 262                              
 263                              case 'bmp':        $target_ext = 'jpg';
 264  
 265                              case 'gif':
 266                              case 'jpg':
 267                              case 'png':
 268                              
 269                                  $_files_image = get_cached_image(
 270                                                  array(    "target_ext"    =>    $target_ext,
 271                                                          "image_name"    =>    $content['files_result'][ $_files_x ]['f_hash'] . '.' . $content['files_result'][ $_files_x ]['f_ext'],
 272                                                          "max_width"        =>    $_file_info[4][0],
 273                                                          "max_height"    =>    $_file_info[4][1],
 274                                                          "thumb_name"    =>    md5(    $content['files_result'][ $_files_x ]['f_hash'].
 275                                                                                      $_file_info[4][0].$_file_info[4][1].
 276                                                                                      $GLOBALS['phpwcms']["sharpen_level"].
 277                                                                                      $_file_info[4][2]
 278                                                                                  ),
 279                                                          'crop_image'    =>    $_file_info[4][2]
 280                                                  ));
 281                                  break;
 282                      
 283                          }
 284                      
 285                      }
 286                      
 287                      // render {FILE_IMAGE_%} RT
 288                      if($_files_get_imagesize) {
 289                              
 290                              $_files_get_imagesize = @getimagesize(PHPWCMS_ROOT.'/'.PHPWCMS_FILES.$content['files_result'][$_files_x ]['f_hash'].'.'.$content['files_result'][ $_files_x ]['f_ext']);
 291                              
 292                              if(isset($_files_get_imagesize[0])) {
 293                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_WIDTH', $_files_get_imagesize[0]);
 294                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_HEIGHT', $_files_get_imagesize[1]);
 295                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_MIME', isset($_files_get_imagesize['mime']) ? $_files_get_imagesize['mime'] : '');
 296                                  if(isset($_files_get_imagesize['channels'])) {
 297                                      switch($_files_get_imagesize['channels']) {
 298                                          case 3:        $_files_get_imagesize['channels'] = 'RGB';    break;
 299                                          case 4:        $_files_get_imagesize['channels'] = 'CMYK';    break;
 300                                          default:    $_files_get_imagesize['channels'] = '@@unknown@@';
 301                                      }
 302                                  } else {
 303                                      $_files_get_imagesize['channels'] = '';
 304                                  }
 305                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_CHANNEL', $_files_get_imagesize['channels']);
 306                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_LANDSCAPE', $_files_get_imagesize[0] >= $_files_get_imagesize[1] ? '@@landscape@@' : '');
 307                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_PORTRAIT', $_files_get_imagesize[1] > $_files_get_imagesize[0] ? '@@portrait@@' : '');
 308                              } else {
 309                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_WIDTH', '');
 310                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_HEIGHT', '');
 311                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_MIME', '');
 312                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_CHANNEL', '');
 313                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_LANDSCAPE', '');
 314                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_PORTRAIT', '');
 315                              }
 316                              
 317                      }
 318                      
 319                      $_files_image            = ($_files_image != false) ? PHPWCMS_IMAGES . $_files_image[0] : '';
 320                      $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE', $_files_image);
 321                      
 322                      // now replace a possible icon image
 323                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_ICON', str_replace('{FILE_EXT}', $content['files_result'][ $_files_x ]['f_ext'], $_files_settings['icon_path'].$_files_settings['icon_name']));
 324                      
 325                      break;
 326                  
 327                  }
 328              }
 329              
 330          }
 331  
 332          $crow["acontent_template"] = replace_tmpl_section('FILE_ENTRY', $crow["acontent_template"], implode(LF, $_files_entries));
 333          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'TITLE', html_specialchars($crow['file_cp_title']));
 334          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'SUBTITLE', html_specialchars($crow['file_cp_subtitle']));
 335          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'TEXT', $crow["acontent_html"]);
 336  
 337          // return result
 338          if( empty($IS_NEWS_CP) ) {
 339              $CNT_TMP .= LF.trim($crow["acontent_template"]).LF;
 340          } else {
 341              $news['files_result'] = trim($crow["acontent_template"]);
 342          }
 343          
 344          // reset locale settings
 345          if(!empty($_files_old_locale)) {
 346              setlocale(LC_ALL, $_files_old_locale);
 347          }
 348          
 349          unset($_files_count, $_files_entries, $_files_old_locale);
 350  
 351      }
 352  
 353  }
 354  
 355                              
 356  ?>


Generated: Wed Dec 30 05:55:15 2009 Cross-referenced by PHPXref 0.7