[ Index ] |
PHP Cross Reference of phpwcms V1.5.0 _r431 (28.01.12) |
[Summary view] [Print] [Text view]
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'].'&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 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Jan 29 16:31:14 2012 | Cross-referenced by PHPXref 0.7.1 |