[ Index ] |
PHP Cross Reference of phpwcms V1.4.7 _r403 (01.11.10) |
[Summary view] [Print] [Text view]
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'].'&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 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Nov 16 22:51:00 2010 | Cross-referenced by PHPXref 0.7 |