[ Index ] |
PHP Cross Reference of phpwcms V1.4.3 _r380 (23.11.09) |
[Summary view] [Print] [Text view]
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'].'&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 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Dec 30 05:55:15 2009 | Cross-referenced by PHPXref 0.7 |