📄 displaying.php
字号:
<?php
/***************************************************************************
* displaying.php
* -------------------
* begin : Monday, Jul 15, 2002
* copyright : (C) 2002 Meik Sievertsen
* email : acyd.burn@gmx.de
*
* $Id: displaying.php,v 1.1.1.1 2003/02/11 22:27:31 wei.gao Exp $
*
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
if ( !defined('IN_PHPBB') )
{
die('Hacking attempt');
exit;
}
$allowed_extensions = array();
$display_categories = array();
$download_modes = array();
$upload_icons = array();
$attachments = array();
function display_compile_cache_clear($filename, $template_var)
{
global $template;
if (isset($template->cachedir))
{
$filename = str_replace($template->root, '', $filename);
if (substr($filename, 0, 1) == '/')
{
$filename = substr($filename, 1, strlen($filename));
}
if (@file_exists(@amod_realpath($template->cachedir . $filename . '.php')))
{
@unlink($template->cachedir . $filename . '.php');
}
}
return;
}
//
// Create needed arrays for Extension Assignments
//
function init_complete_extensions_data()
{
global $db, $allowed_extensions, $display_categories, $download_modes, $upload_icons;
$extension_informations = get_extension_informations();
$allowed_extensions = array();
for ($i = 0; $i < count($extension_informations); $i++)
{
$extension = strtolower(trim($extension_informations[$i]['extension']));
$allowed_extensions[] = $extension;
$display_categories[$extension] = intval($extension_informations[$i]['cat_id']);
$download_modes[$extension] = intval($extension_informations[$i]['download_mode']);
$upload_icons[$extension] = trim($extension_informations[$i]['upload_icon']);
}
}
//
// Writing Data into plain Template Vars
//
function init_display_template($template_var, $replacement, $filename = 'viewtopic_attach_body.tpl')
{
global $template;
//
// This function is adapted from the old template class
// I wish i had the functions from the 2.2 one. :D (This class rocks, can't await to use it in Mods)
//
//
// Handle Attachment Informations
//
if (!isset($template->uncompiled_code[$template_var]) && empty($template->uncompiled_code[$template_var]))
{
// If we don't have a file assigned to this handle, die.
if (!isset($template->files[$template_var]))
{
die("Template->loadfile(): No file specified for handle $template_var");
}
$filename_2 = $template->files[$template_var];
$str = implode("", @file($filename_2));
if (empty($str))
{
die("Template->loadfile(): File $filename_2 for handle $template_var is empty");
}
$template->uncompiled_code[$template_var] = $str;
}
$complete_filename = $filename;
if (substr($complete_filename, 0, 1) != '/')
{
$complete_filename = $template->root . '/' . $complete_filename;
}
if (!@file_exists(@amod_realpath($complete_filename)))
{
die("Template->make_filename(): Error - file $complete_filename does not exist");
}
$content = implode('', @file($complete_filename));
if (empty($content))
{
die('Template->loadfile(): File ' . $complete_filename . ' is empty');
}
// replace $replacement with uncompiled code in $filename
$template->uncompiled_code[$template_var] = str_replace($replacement, $content, $template->uncompiled_code[$template_var]);
//
// Force Reload on cached version
//
display_compile_cache_clear($template->files[$template_var], $template_var);
}
//
// BEGIN ATTACHMENT DISPLAY IN POSTS
//
//
// Returns the image-tag for the topic image icon
//
function topic_attachment_image($switch_attachment)
{
global $attach_config, $is_auth;
if ( (intval($switch_attachment) == 0) || (!( ($is_auth['auth_download']) && ($is_auth['auth_view']))) || (intval($attach_config['disable_mod'])) || ($attach_config['topic_icon'] == '') )
{
return ('');
}
$image = '<img src="' . $attach_config['topic_icon'] . '" alt="" border="0" /> ';
return ($image);
}
//
// Display Attachments in Posts
//
function display_post_attachments($post_id, $switch_attachment)
{
global $attach_config, $is_auth;
if ( (intval($switch_attachment) == 0) || (intval($attach_config['disable_mod'])) || (!( ($is_auth['auth_download']) && ($is_auth['auth_view']))) )
{
return;
}
display_attachments($post_id);
}
//
// Generate the Display Assign File Link
//
/*
function display_assign_link($post_id)
{
global $attach_config, $is_auth, $phpEx;
$image = 'templates/subSilver/images/icon_mini_message.gif';
if ( (intval($attach_config['disable_mod'])) || (!( ($is_auth['auth_download']) && ($is_auth['auth_view']))) )
{
return ('');
}
$temp_url = append_sid("assign_file.$phpEx?p=" . $post_id);
$link = '<a href="' . $temp_url . '" target="_blank"><img src="' . $image . '" alt="Add File" title="Add File" border="0" /></a>';
return ($link);
}
*/
//
// Initializes some templating variables for displaying Attachments in Posts
//
function init_display_post_attachments($switch_attachment)
{
global $attach_config, $db, $is_auth, $template, $lang, $postrow, $total_posts, $attachments, $forum_row, $forum_topic_data;
if ( (empty($forum_topic_data)) && (!empty($forum_row)) )
{
$switch_attachment = $forum_row['topic_attachment'];
}
if ( (intval($switch_attachment) == 0) || (intval($attach_config['disable_mod'])) || (!( ($is_auth['auth_download']) && ($is_auth['auth_view']))))
{
return;
}
$post_id_array = array();
for ($i = 0; $i < $total_posts; $i++)
{
if ($postrow[$i]['post_attachment'] == 1)
{
$post_id_array[] = $postrow[$i]['post_id'];
}
}
if (count($post_id_array) == 0)
{
return;
}
$rows = get_attachments_from_post($post_id_array);
$num_rows = count($rows);
if ($num_rows == 0)
{
return;
}
@reset($attachments);
for ($i = 0; $i < $num_rows; $i++)
{
$attachments['_' . $rows[$i]['post_id']][] = $rows[$i];
}
init_display_template('body', '{postrow.ATTACHMENTS}');
init_complete_extensions_data();
$template->assign_vars(array(
'L_POSTED_ATTACHMENTS' => $lang['Posted_attachments'],
'L_KILOBYTE' => $lang['KB'])
);
}
//
// END ATTACHMENT DISPLAY IN POSTS
//
//
// BEGIN ATTACHMENT DISPLAY IN PM's
//
//
// Returns the image-tag for the PM image icon
//
function privmsgs_attachment_image($privmsg_id)
{
global $attach_config, $userdata;
$auth = ( $userdata['user_level'] == ADMIN ) ? 1 : intval($attach_config['allow_pm_attach']);
if ( (!attachment_exists_db($privmsg_id, PAGE_PRIVMSGS)) || (!$auth) || (intval($attach_config['disable_mod'])) || ($attach_config['topic_icon'] == '') )
{
return ('');
}
$image = '<img src="' . $attach_config['topic_icon'] . '" alt="" border="0" /> ';
return ($image);
}
//
// Display Attachments in PM's
//
function display_pm_attachments($privmsgs_id, $switch_attachment)
{
global $attach_config, $userdata, $template, $lang;
if ( $userdata['user_level'] == ADMIN )
{
$auth_download = 1;
}
else
{
$auth_download = intval($attach_config['allow_pm_attach']);
}
if ( (intval($switch_attachment) == 0) || (intval($attach_config['disable_mod'])) || (!$auth_download) )
{
return;
}
display_attachments($privmsgs_id);
$template->assign_block_vars('switch_attachments', array());
$template->assign_vars(array(
'L_DELETE_ATTACHMENTS' => $lang['Delete_attachments'])
);
}
//
// Initializes some templating variables for displaying Attachments in Private Messages
//
function init_display_pm_attachments($switch_attachment)
{
global $attach_config, $template, $userdata, $lang, $attachments, $privmsg;
if ( $userdata['user_level'] == ADMIN )
{
$auth_download = 1;
}
else
{
$auth_download = intval($attach_config['allow_pm_attach']);
}
if ( (intval($switch_attachment) == 0) || (intval($attach_config['disable_mod'])) || (!$auth_download))
{
return;
}
$privmsgs_id = $privmsg['privmsgs_id'];
@reset($attachments);
$attachments['_' . $privmsgs_id] = get_attachments_from_pm($privmsgs_id);
if ( count($attachments['_' . $privmsgs_id]) == 0)
{
return;
}
$template->assign_block_vars('postrow', array());
init_display_template('body', '{ATTACHMENTS}');
init_complete_extensions_data();
$template->assign_vars(array(
'L_POSTED_ATTACHMENTS' => $lang['Posted_attachments'],
'L_KILOBYTE' => $lang['KB'])
);
display_pm_attachments($privmsgs_id, $switch_attachment);
}
//
// END ATTACHMENT DISPLAY IN PM's
//
//
// BEGIN ATTACHMENT DISPLAY IN TOPIC REVIEW WINDOW
//
//
// Display Attachments in Review Window
//
function display_review_attachments($post_id, $switch_attachment, $is_auth)
{
global $attach_config, $attachments;
if ( (intval($switch_attachment) == 0) || (intval($attach_config['disable_mod'])) || (!( ($is_auth['auth_download']) && ($is_auth['auth_view']))) || (intval($attach_config['attachment_topic_review']) == 0))
{
return;
}
@reset($attachments);
$attachments['_' . $post_id] = get_attachments_from_post($post_id);
if ( count($attachments['_' . $post_id]) == 0)
{
return;
}
display_attachments($post_id);
}
//
// Initializes some templating variables for displaying Attachments in Review Topic Window
//
function init_display_review_attachments($is_auth)
{
global $attach_config;
if ( (intval($attach_config['disable_mod'])) || (!( ($is_auth['auth_download']) && ($is_auth['auth_view']))) || (intval($attach_config['attachment_topic_review']) == 0))
{
return;
}
init_display_template('reviewbody', '{postrow.ATTACHMENTS}');
init_complete_extensions_data();
}
//
// END ATTACHMENT DISPLAY IN TOPIC REVIEW WINDOW
//
//
// BEGIN DISPLAY ATTACHMENTS -> PREVIEW
//
function display_attachments_preview($attachment_list, $attachment_filesize_list, $attachment_filename_list, $attachment_comment_list, $attachment_extension_list, $attachment_thumbnail_list)
{
global $attach_config, $is_auth, $allowed_extensions, $lang, $userdata, $display_categories, $upload_dir, $upload_icons, $template, $db, $theme;
if (count($attachment_list) != 0)
{
init_display_template('preview', '{ATTACHMENTS}');
init_complete_extensions_data();
$template->assign_block_vars('postrow', array());
$template->assign_block_vars('postrow.attach', array());
// Another 'i have to fix minor phpBB2 Bugs...' patch
$template->assign_vars(array(
'T_BODY_TEXT' => '#'.$theme['body_text'])
);
for ($i = 0; $i < count($attachment_list); $i++)
{
$filename = $upload_dir . '/' . $attachment_list[$i];
$thumb_filename = $upload_dir . '/' . THUMB_DIR . '/t_' . $attachment_list[$i];
$filesize = $attachment_filesize_list[$i];
$size_lang = ($filesize >= 1048576) ? $lang['MB'] : ( ($filesize >= 1024) ? $lang['KB'] : $lang['Bytes'] );
if ($filesize >= 1048576)
{
$filesize = (round((round($filesize / 1048576 * 100) / 100), 2));
}
else if ($filesize >= 1024)
{
$filesize = (round((round($filesize / 1024 * 100) / 100), 2));
}
$display_name = $attachment_filename_list[$i];
$comment = stripslashes(trim(nl2br($attachment_comment_list[$i])));
$extension = strtolower(trim($attachment_extension_list[$i]));
$denied = false;
//
// Admin is allowed to view forbidden Attachments, but the error-message is displayed too to inform the Admin
//
if ( (!in_array($extension, $allowed_extensions)) )
{
$denied = true;
$template->assign_block_vars('postrow.attach.denyrow', array(
'L_DENIED' => sprintf($lang['Extension_disabled_after_posting'], $extension))
);
}
if (!$denied)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -