⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 displaying.php

📁 这是php编的论坛的原代码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?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 + -