[ Index ]

PHP Cross Reference of phpwcms V1.4.7 _r403 (01.11.10)

title

Body

[close]

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

   1  <?php
   2  /*************************************************************************************
   3     Copyright notice
   4     
   5     (c) 2002-2010 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              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_COPYRIGHT', html_specialchars($_file_info[5]));
 247                      
 248                      // now check file for possible thumbnail image
 249                      $_files_image = false;
 250                      
 251                      if($_file_info[4] && strpos($_files_entries[$fkey], 'FILE_IMAGE') !== false) {
 252                      
 253                          $target_ext = $content['files_result'][ $_files_x ]['f_ext'];
 254                      
 255                          // do it for jpg, png or gif only
 256                          switch($content['files_result'][ $_files_x ]['f_ext']) {
 257                              
 258                              case 'tif':
 259                              case 'tiff':
 260                              case 'pdf':
 261                              case 'psd':
 262                              case 'eps':        if($GLOBALS['phpwcms']['imagick'] == 0) {
 263                                                  break;
 264                                              }
 265                              
 266                              case 'bmp':        $target_ext = 'jpg';
 267  
 268                              case 'gif':
 269                              case 'jpg':
 270                              case 'png':
 271                              
 272                                  $_files_image = get_cached_image(
 273                                                  array(    "target_ext"    =>    $target_ext,
 274                                                          "image_name"    =>    $content['files_result'][ $_files_x ]['f_hash'] . '.' . $content['files_result'][ $_files_x ]['f_ext'],
 275                                                          "max_width"        =>    $_file_info[4][0],
 276                                                          "max_height"    =>    $_file_info[4][1],
 277                                                          "thumb_name"    =>    md5(    $content['files_result'][ $_files_x ]['f_hash'].
 278                                                                                      $_file_info[4][0].$_file_info[4][1].
 279                                                                                      $GLOBALS['phpwcms']["sharpen_level"].
 280                                                                                      $_file_info[4][2]
 281                                                                                  ),
 282                                                          'crop_image'    =>    $_file_info[4][2]
 283                                                  ));
 284                                  break;
 285                      
 286                          }
 287                      
 288                      }
 289                      
 290                      // render {FILE_IMAGE_%} RT
 291                      if($_files_get_imagesize) {
 292                              
 293                              $_files_get_imagesize = @getimagesize(PHPWCMS_ROOT.'/'.PHPWCMS_FILES.$content['files_result'][$_files_x ]['f_hash'].'.'.$content['files_result'][ $_files_x ]['f_ext']);
 294                              
 295                              if(isset($_files_get_imagesize[0])) {
 296                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_WIDTH', $_files_get_imagesize[0]);
 297                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_HEIGHT', $_files_get_imagesize[1]);
 298                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_MIME', isset($_files_get_imagesize['mime']) ? $_files_get_imagesize['mime'] : '');
 299                                  if(isset($_files_get_imagesize['channels'])) {
 300                                      switch($_files_get_imagesize['channels']) {
 301                                          case 3:        $_files_get_imagesize['channels'] = 'RGB';    break;
 302                                          case 4:        $_files_get_imagesize['channels'] = 'CMYK';    break;
 303                                          default:    $_files_get_imagesize['channels'] = '@@unknown@@';
 304                                      }
 305                                  } else {
 306                                      $_files_get_imagesize['channels'] = '';
 307                                  }
 308                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_CHANNEL', $_files_get_imagesize['channels']);
 309                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_LANDSCAPE', $_files_get_imagesize[0] >= $_files_get_imagesize[1] ? '@@landscape@@' : '');
 310                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_PORTRAIT', $_files_get_imagesize[1] > $_files_get_imagesize[0] ? '@@portrait@@' : '');
 311                              } else {
 312                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_WIDTH', '');
 313                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_HEIGHT', '');
 314                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_MIME', '');
 315                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_CHANNEL', '');
 316                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_LANDSCAPE', '');
 317                                  $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE_PORTRAIT', '');
 318                              }
 319                              
 320                      }
 321                      
 322                      $_files_image            = ($_files_image != false) ? PHPWCMS_IMAGES . $_files_image[0] : '';
 323                      $_files_entries[$fkey]    = render_cnt_template($_files_entries[$fkey], 'FILE_IMAGE', $_files_image);
 324                      
 325                      // now replace a possible icon image
 326                      $_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']));
 327                      
 328                      break;
 329                  
 330                  }
 331              }
 332              
 333          }
 334  
 335          $crow["acontent_template"] = replace_tmpl_section('FILE_ENTRY', $crow["acontent_template"], implode(LF, $_files_entries));
 336          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'TITLE', html_specialchars($crow['file_cp_title']));
 337          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'SUBTITLE', html_specialchars($crow['file_cp_subtitle']));
 338          $crow["acontent_template"] = render_cnt_template($crow["acontent_template"], 'TEXT', $crow["acontent_html"]);
 339          
 340          // cleanup left over FILE_IMAGE sections
 341          $crow["acontent_template"] = replace_cnt_template($crow["acontent_template"], 'FILE_IMAGE', '');
 342  
 343          // return result
 344          if( empty($IS_NEWS_CP) ) {
 345              $CNT_TMP .= LF.trim($crow["acontent_template"]).LF;
 346          } else {
 347              $news['files_result'] = trim($crow["acontent_template"]);
 348          }
 349          
 350          // reset locale settings
 351          if(!empty($_files_old_locale)) {
 352              setlocale(LC_ALL, $_files_old_locale);
 353          }
 354          
 355          unset($_files_count, $_files_entries, $_files_old_locale);
 356  
 357      }
 358  
 359  }
 360  
 361                              
 362  ?>


Generated: Tue Nov 16 22:51:00 2010 Cross-referenced by PHPXref 0.7