[ Index ]

PHP Cross Reference of phpwcms V1.5.0 _r431 (28.01.12)

title

Body

[close]

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

   1  <?php
   2  /*************************************************************************************
   3     Copyright notice
   4     
   5     (c) 2002-2012 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"]    = render_device( @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"] = render_device( @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              initSlimbox();
 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                      // [5] = copyright information
 166                      
 167                      if($value['file_info']) {
 168                      
 169                          $_file_info = explode('|', $value['file_info']);
 170                          
 171                          $_file_info[0] = trim($_file_info[0]);
 172                          $_file_info[1] = empty($_file_info[1]) ? '' : trim($_file_info[1]);
 173                          $_file_info[2] = empty($_file_info[2]) ? '' : trim($_file_info[2]);
 174                          $_file_info[3] = ' target="'.( empty($_file_info[3]) ? '_blank' : trim($_file_info[3]) ) .'"';
 175                          
 176                          // only when height/width is given
 177                          if(empty($_file_info[4])) {
 178                      
 179                              $_file_info[4] = '';
 180                      
 181                          } else {
 182  
 183                              $_file_info[4] = explode('x', $_file_info[4]);
 184                              $_file_info[4][0] = intval($_file_info[4][0]);
 185                              if(empty($_file_info[4][0])) $_file_info[4][0] = '';
 186                              
 187                              if(empty($_file_info[4][1])) {
 188                                  $_file_info[4][1] = '';
 189                              } else {
 190                                  $_file_info[4][1] = intval($_file_info[4][1]);
 191                                  if(empty($_file_info[4][1])) $_file_info[4][1] = '';
 192                              }
 193                              $_file_info[4][2] = empty($_file_info[4][2]) ? 0 : 1;
 194      
 195                              if(!($_file_info[4][0].$_file_info[4][1])) $_file_info[4] = '';
 196                          }
 197                      
 198                      } else {
 199                      
 200                          $_file_info = array(0 => '', 1 => '', 2 => '', 3 => ' target="_blank"', 4 => '');
 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                      $_file_info[5] = empty($_file_info[5]) ? $content['files_result'][ $_files_x ]['f_copyright'] : trim($_file_info[5]);
 214  
 215                  
 216                      $_files_entries[$fkey]  = $content['template_file'];
 217                      $_files_entries[$fkey]  = str_replace('{FILE_ID}', $content['files_result'][ $_files_x ]['f_id'], $_files_entries[$fkey]);
 218                      $_files_entries[$fkey]  = str_replace('{FILE_TARGET}', $_file_info[3], $_files_entries[$fkey]);
 219                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_EXT', $content['files_result'][ $_files_x ]['f_ext']);
 220                      $_files_entries[$fkey]  = str_replace('{FILE_DOWNLOADS}', $content['files_result'][ $_files_x ]['f_dlfinal'], $_files_entries[$fkey]);
 221                      $_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]);
 222                      
 223                      $content['files_result'][ $_files_x ]['f_created'] = intval($content['files_result'][ $_files_x ]['f_created']);
 224                      if($content['files_result'][ $_files_x ]['f_created'] <= 0) {
 225                          $content['files_result'][ $_files_x ]['f_created'] = filectime($_file_current);
 226                      }
 227                      $_files_entries[$fkey]  = str_replace('{FILE_DATE}', strftime($_files_settings['date_format'], $content['files_result'][ $_files_x ]['f_created']), $_files_entries[$fkey]);
 228                      
 229                      if($content['files_direct'] && $content['files_result'][ $_files_x ]['f_ext']) {
 230  
 231                          $_files_entries[$fkey]  = str_replace('{FILE_LINK}', 'download.php?f='.$content['files_result'][ $_files_x ]['f_hash'].'&amp;countonly=1', $_files_entries[$fkey]);
 232  
 233                      } else {
 234                          $_files_entries[$fkey]  = str_replace('{FILE_LINK}', 'download.php?f='.$content['files_result'][ $_files_x ]['f_hash'], $_files_entries[$fkey]);
 235                      }
 236                      
 237                      
 238                      if($_file_info[1]) {
 239                          $_files_entries[$fkey]  = str_replace('{FILE_NAME}', html_specialchars($_file_info[1]), $_files_entries[$fkey]);
 240                      } else {
 241                          $_files_entries[$fkey]  = str_replace('{FILE_NAME}', html_specialchars($content['files_result'][ $_files_x ]['f_name']), $_files_entries[$fkey]);
 242                      }
 243                      
 244                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_TITLE', html_specialchars($_file_info[2]));
 245                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_DESCRIPTION', html_specialchars($_file_info[0]));
 246                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_LONGINFO', empty($content['files_result'][ $_files_x ]['f_longinfo']) ? '' : plaintext_htmlencode($content['files_result'][ $_files_x ]['f_longinfo']));
 247                      $_files_entries[$fkey]  = render_cnt_template($_files_entries[$fkey], 'FILE_COPYRIGHT', html_specialchars($_file_info[5]));
 248                      
 249                      // now check file for possible thumbnail image
 250                      $_files_image = false;
 251                      
 252                      if($_file_info[4] && strpos($_files_entries[$fkey], 'FILE_IMAGE') !== false) {
 253                      
 254                          $target_ext = $content['files_result'][ $_files_x ]['f_ext'];
 255                      
 256                          // do it for jpg, png or gif only
 257                          switch($content['files_result'][ $_files_x ]['f_ext']) {
 258                              
 259                              case 'tif':
 260                              case 'tiff':
 261                              case 'pdf':
 262                              case 'psd':
 263                              case 'eps':        if($GLOBALS['phpwcms']['imagick'] == 0) {
 264                                                  break;
 265                                              }
 266                              
 267                              case 'bmp':        $target_ext = 'jpg';
 268  
 269                              case 'gif':
 270                              case 'jpg':
 271                              case 'png':
 272                              
 273                                  $_files_image = get_cached_image(
 274                                                  array(    "target_ext"    =>    $target_ext,
 275                                                          "image_name"    =>    $content['files_result'][ $_files_x ]['f_hash'] . '.' . $content['files_result'][ $_files_x ]['f_ext'],
 276                                                          "max_width"        =>    $_file_info[4][0],
 277                                                          "max_height"    =>    $_file_info[4][1],
 278                                                          "thumb_name"    =>    md5(    $content['files_result'][ $_files_x ]['f_hash'].
 279                                                                                      $_file_info[4][0].$_file_info[4][1].
 280                                                                                      $GLOBALS['phpwcms']["sharpen_level"].
 281                                                                                      $_file_info[4][2]
 282                                                                                  ),
 283                                                          'crop_image'    =>    $_file_info[4][2]
 284                                                  ));
 285                                  break;
 286                      
 287                          }
 288                      
 289                      }
 290                      
 291                      // render {FILE_IMAGE_%} RT
 292                      if($_files_get_imagesize) {
 293                              
 294                              $_files_get_imagesize = @getimagesize(PHPWCMS_ROOT.'/'.PHPWCMS_FILES.$content['files_result'][$_files_x ]['f_hash'].'.'.$content['files_result'][ $_files_x ]['f_ext']);
 295                              
 296                              if(isset($_files_get_imagesize[0])) {
 297                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_WIDTH', $_files_get_imagesize[0]);
 298                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_HEIGHT', $_files_get_imagesize[1]);
 299                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_MIME', isset($_files_get_imagesize['mime']) ? $_files_get_imagesize['mime'] : '');
 300                                  if(isset($_files_get_imagesize['channels'])) {
 301                                      switch($_files_get_imagesize['channels']) {
 302                                          case 3:        $_files_get_imagesize['channels'] = 'RGB';    break;
 303                                          case 4:        $_files_get_imagesize['channels'] = 'CMYK';    break;
 304                                          default:    $_files_get_imagesize['channels'] = '@@unknown@@';
 305                                      }
 306                                  } else {
 307                                      $_files_get_imagesize['channels'] = '';
 308                                  }
 309                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_CHANNEL', $_files_get_imagesize['channels']);
 310                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_LANDSCAPE', $_files_get_imagesize[0] >= $_files_get_imagesize[1] ? '@@landscape@@' : '');
 311                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_PORTRAIT', $_files_get_imagesize[1] > $_files_get_imagesize[0] ? '@@portrait@@' : '');
 312                              } else {
 313                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_WIDTH', '');
 314                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_HEIGHT', '');
 315                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_MIME', '');
 316                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_CHANNEL', '');
 317                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_LANDSCAPE', '');
 318                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_PORTRAIT', '');
 319                              }
 320                              
 321                      }
 322                      
 323                      $_files_image            = ($_files_image != false) ? PHPWCMS_IMAGES . $_files_image[0] : '';
 324                      $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE', $_files_image);
 325                      
 326                      // now replace a possible icon image
 327                      $_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']));
 328                      
 329                      break;
 330                  
 331                  }
 332              }
 333              
 334          }
 335  
 336          $crow["acontent_template"] = replace_tmpl_section('FILE_ENTRY', $crow["acontent_template"], implode(LF, $_files_entries));
 337          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'TITLE', html_specialchars($crow['file_cp_title']));
 338          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'SUBTITLE', html_specialchars($crow['file_cp_subtitle']));
 339          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'TEXT', $crow["acontent_html"]);
 340          
 341          // cleanup left over FILE_IMAGE sections
 342          $crow["acontent_template"] = replace_cnt_template($crow["acontent_template"], 'FILE_IMAGE', '');
 343  
 344          // return result
 345          if( empty($IS_NEWS_CP) ) {
 346              $CNT_TMP .= LF.trim($crow["acontent_template"]).LF;
 347          } else {
 348              $news['files_result'] = trim($crow["acontent_template"]);
 349          }
 350          
 351          // reset locale settings
 352          if(!empty($_files_old_locale)) {
 353              setlocale(LC_ALL, $_files_old_locale);
 354          }
 355          
 356          unset($_files_count, $_files_entries, $_files_old_locale);
 357  
 358      }
 359  
 360  }
 361  
 362                              
 363  ?>


Generated: Sun Jan 29 16:31:14 2012 Cross-referenced by PHPXref 0.7.1