[問題] adv_top5[已解決]

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

主題已鎖定
寒冰軒
竹貓忠實會員
竹貓忠實會員
文章: 417
註冊時間: 2003-11-06 23:24
來自: 阿婆A灶腳
聯繫:

[問題] adv_top5[已解決]

文章 寒冰軒 »

想請教各位大大
如何讓top5只顯示某版面的文章
我有找到一篇教學是隱藏版面id
AND f.forum_id != AND f.forum_id != 版面1 && f.forum_id != 版面2 && f.forum_id != 版面3
但如果想指定它全部就只有顯示版面 id=2 的文章
應該要如何修改呢?

以及如果想再用一個
例:adv_top5_1.php去對應adv_top5_1body.tpl
而adv_top5_1.php只顯示 版面 id=2 的文章
是不是adv_top5.php全部都要重改呢?
最後由 寒冰軒 於 2005-04-22 22:13 編輯,總共編輯了 1 次。
~§ 架站系統:WindowsXP §~
~§ 架站程式:Appserv2.4.4a §~
~§ 使用網路:giga ADSL §~
~§ 安裝程式:Apache + php + MySql §~
~§ 論壇版本: 2.0.18 §~
申明檔
1.新手發問並不是可恥的事.可恥的是沒有按照發文規則及格式還裝做沒解決你的問題是我們的錯。
2.很樂意大家pm給我.或把我加入即時通.msn,但加入並不是代表小弟已成為您的私人看護
3.還是想不通嗎? 那可以到地下十八樓找你的答案。
[http://microduo.home99.tw/?fromuid=6331]微剋多資訊[/url]
bu
版面管理員
版面管理員
文章: 443
註冊時間: 2003-02-23 12:46
來自: 25° 4′N 121° 29′E
聯繫:

Re: [問題] adv_top5

文章 bu »

寒冰軒 寫:想請教各位大大
如何讓top5只顯示某版面的文章
我有找到一篇教學是隱藏版面id
AND f.forum_id != AND f.forum_id != 版面1 && f.forum_id != 版面2 && f.forum_id != 版面3
但如果想指定它全部就只有顯示版面 id=2 的文章
應該要如何修改呢?

以及如果想再用一個
例:adv_top5_1.php去對應adv_top5_1body.tpl
而adv_top5_1.php只顯示 版面 id=2 的文章
是不是adv_top5.php全部都要重改呢?
try this ;)

代碼: 選擇全部

<?php
/***************************************************************************
 *                               adv_top5_1.php
 *                            -------------------
 *  Contains GPL code copyright of phpBB group.
 *
 *  MOD Name: Top5 topics
 *  Author: OOHOO
 *  Version: 1.x.x for phpBB 2 Beta serial
 *  Version: 2.0.0 for phpBB 2 RC serial
 *  Version: 2.1.0 for phpBB 2.0.0
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   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.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = "./";
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Mod setting
//
// Topics text length
$MAX_STR_LEN = 60;
// Topics to display
$MAX_TOPICS = 5;
// 0 => users can see all topics including authorized issue(but they cant read the posts)
// 1 => users can see only authorized topics
$AUTH_SECRUITY = 1;

function cutStr($str) {

	global $MAX_STR_LEN;

	$str = (strlen($str) > $MAX_STR_LEN) ? (substr($str, 0, $MAX_STR_LEN - 1) . "...") : $str;
	return $str;
}

//
// gzip_compression
//
$do_gzip_compress = FALSE;
if($board_config['gzip_compress'])
{
	$phpver = phpversion();

	if($phpver >= "4.0.4pl1")
	{
		if(extension_loaded("zlib"))
		{
			ob_start("ob_gzhandler");
		}
	}
	else if($phpver > "4.0")
	{
		if(strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip'))
		{
			if(extension_loaded("zlib"))
			{
				$do_gzip_compress = TRUE;
				ob_start();
				ob_implicit_flush(0);

				header("Content-Encoding: gzip");
			}
		}
	}
}

header ("Cache-Control: no-store, no-cache, must-revalidate");
header ("Cache-Control: pre-check=0, post-check=0, max-age=0", false);
header ("Pragma: no-cache");
header ("Expires: " . gmdate("D, d M Y H:i:s", time()) . " GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");


//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX, $session_length);
init_userprefs($userdata);
//
\n// End session management
//


// Find which forums are visible for this user
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);

$auth_forum_ary = array();

// Get forum info
$sql = "SELECT forum_id FROM " . FORUMS_TABLE;

if( !$q_forums = $db->sql_query($sql) )
{
	message_die(GENERAL_MESSAGE, 'ADV_TOP5 MOD ERROR!!');
}

// Authorized forums info
while( $forum_row = $db->sql_fetchrow($q_forums) )
{
	$forum_id = $forum_row['forum_id'];

	if( $is_auth_ary[$forum_id]['auth_read'] == 1)
	{
		array_push($auth_forum_ary, $forum_id);
	}
}

if( sizeOf($auth_forum_ary) == 0 || !$AUTH_SECRUITY )
{
	$auth_forums = "";
}
else
{
	$auth_forums = 'AND f.forum_id IN(';

	if(sizeOf($auth_forum_ary) > 1)
	{
		$auth_forums .= implode (',', $auth_forum_ary);
	}
	else
	{
		$auth_forums .= $auth_forum_ary[0];
	}

	$auth_forums .= ')';
}

// select mode
switch($mode)
{
	case 'last':
		$sortby = "topic_last_post_id";
		break;
	case 'hot':
		$sortby = "topic_views";
		break;
	case 'top':
		$sortby = "topic_replies";
		break;
	default:
		$sortby = "topic_last_post_id";
		$mode = "last";
		break;
}

// nav links
$last_link = ( ($mode == "last") ? "<font style="{color: #ff006e}">&laquo; LAST $MAX_TOPICS &raquo;</font>" : ('<a href="' . append_sid("adv_top5.$phpEx?mode=last") . '" class="nav">LAST</a>'));
$hot_links = ( ($mode == "hot") ? "<font style="{color: #ff006e}">&laquo; HOT $MAX_TOPICS &raquo;</font>" : ('<a href="' . append_sid("adv_top5.$phpEx?mode=hot") . '" class="nav">HOT</a>'));
$top_links = ( ($mode == "top") ? "<font style="{color: #ff006e}">&laquo; TOP $MAX_TOPICS &raquo;</font>" : ('<a href="' . append_sid("adv_top5.$phpEx?mode=top") . '" class="nav">TOP</a>'));

// set template
$template->set_filenames(array("body" => "adv_top5_body_1.tpl"));

$template->assign_vars(array(
	"icon_url" => $images['icon_latest_reply'],
	"icon_alt" => $lang['View_latest_post'],
	"nav_links" => "$last_link &nbsp;$hot_links &nbsp;$top_links"
));

// query
$sql = "SELECT topic_id, topic_title, topic_poster, topic_views, topic_replies, topic_last_post_id, f.forum_id, forum_name
	FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
	WHERE t.forum_id = '2'
	AND topic_moved_id = '0' 
	$auth_forums
	ORDER BY $sortby DESC LIMIT 0, $MAX_TOPICS";

if( !$result = $db->sql_query($sql) )
{
	echo '<p align="center"><font color="red"><b>ADV_TOPN_MOD TOPICS QUERY ERROR!!</b></font></p>';
	exit;
}

// fetch rows
while( $rows = $db->sql_fetchrow($result) )
{
	$topic_url = append_sid("viewtopic.$phpEx?t=" . $rows['topic_id']);
	$forum_url = append_sid("viewforum.$phpEx?f=" . $rows['forum_id']);

	$topic_poster = $rows['topic_poster'];
	$topic_last_post_id = $rows['topic_last_post_id'];

	// Grab topic poster and last replier data
	$sql = "SELECT post_username, user_id, username\r
		FROM " . POSTS_TABLE . ", " . USERS_TABLE . "
		WHERE topic_id = '" . $rows['topic_id'] . "'
		AND poster_id = user_id
		ORDER BY post_id LIMIT 0, 1";

	if( !$p_result = $db->sql_query($sql) )
	{
		message_die(GENERAL_MESSAGE, 'ADV_TOP5 MOD TOPIC_POSTER QUERY ERROR!!');
	}

	$p_row = $db->sql_fetchrow($p_result);

	$poster_name = ( $topic_poster != ANONYMOUS ) ? $p_row['username'] : ( !$p_row['post_username'] ? $lang['Guest'] : $p_row['post_username']);
	$poster_url = ( $topic_poster != ANONYMOUS && !$p_row['post_username'] ) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&u=$topic_poster") . '" target="_top">' . "$poster_name</a>") : $poster_name;

	$sql = "SELECT post_username, user_id, username, post_time
		FROM " . POSTS_TABLE . ", " . USERS_TABLE . "
		WHERE post_id = '$topic_last_post_id'
		AND poster_id = user_id";

	if( !$r_result = $db->sql_query($sql) )
	{
		message_die(GENERAL_MESSAGE, 'ADV_TOP5 MOD LAST_REPLIER QUERY ERROR!!');
	}

	$r_row = $db->sql_fetchrow($r_result);

	$replier_id = $r_row['user_id'];
	$replier_name = ( $replier_id != ANONYMOUS ) ? $r_row['username'] : ( !$r_row['post_username'] ? $lang['Guest'] : $r_row['post_username']);
	$replier_url = ( $replier_id != ANONYMOUS && !$r_row['post_username'] ) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&u=$replier_id") . '" target="_top">' . "$replier_name</a>") : $replier_name;

	$last_post_url = append_sid("viewtopic.$phpEx?p=$topic_last_post_id#$topic_last_post_id");

	$template->assign_block_vars("toprow", array(
		"forum_name" => $rows['forum_name'],
		"forum_url" => $forum_url,
		"topic" => cutStr($rows['topic_title']),
		"topic_url" => $topic_url,
		"topic_views" => $rows['topic_views'],
		"topic_replies" => $rows['topic_replies'],
		"post_time" => create_date($board_config['default_dateformat'], $r_row['post_time'], $board_config['board_timezone']),
		"poster_url" => $poster_url,
		"replier_url" => $replier_url,
		"last_post_url" => $last_post_url
	));
}

$template->assign_vars(array( 
   'S_CONTENT_DIRECTION' => $lang['DIRECTION'], 
   'S_CONTENT_ENCODING' => $lang['ENCODING'], 

   'T_HEAD_STYLESHEET' => $theme['template_name'] . "/" . $theme['head_stylesheet'], 
   'T_BODY_BGCOLOR' => '#'.$theme['td_color3'], 

   'L_FORUM' => $lang['Forum'], 
   'L_TOPICS' => $lang['Topics'], 
   'L_REPLIES' => $lang['Replies'], 
   'L_AUTHOR' => $lang['Author'], 
   'L_VIEWS' => $lang['Views'], 
   'L_POSTS' => $lang['Posts'], 
   'L_LASTPOST' => $lang['Last_Post'] 
));


//
// Generate the page
//
//$gen_simple_header = TRUE;

//include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->pparse("body");

$db->sql_close();
//
// Compress buffered output if required
// and send to browser
//
if($do_gzip_compress)
{
	//
	// Borrowed from php.net!
	//
	$gzip_contents = ob_get_contents();
	ob_end_clean();

	$gzip_size = strlen($gzip_contents);
	$gzip_crc = crc32($gzip_contents);

	$gzip_contents = gzcompress($gzip_contents, 9);
	$gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4);

	echo "\x1f\x8b\x08\x00\x00\x00\x00\x00";
	echo $gzip_contents;
	echo pack("V", $gzip_crc);
	echo pack("V", $gzip_size);
}

exit;
?>
*譯文資料在phpBB 技術文件
bu.femto-size
*和我聯絡,請寄 or Google Talk 圖檔
*作品: Intergrated Toplist & Message Can
寒冰軒
竹貓忠實會員
竹貓忠實會員
文章: 417
註冊時間: 2003-11-06 23:24
來自: 阿婆A灶腳
聯繫:

文章 寒冰軒 »

bu 大大
謝謝您\r
我已經大概知道要如何修改對應檔案
試了好久終於成功了
~§ 架站系統:WindowsXP §~
~§ 架站程式:Appserv2.4.4a §~
~§ 使用網路:giga ADSL §~
~§ 安裝程式:Apache + php + MySql §~
~§ 論壇版本: 2.0.18 §~
申明檔
1.新手發問並不是可恥的事.可恥的是沒有按照發文規則及格式還裝做沒解決你的問題是我們的錯。
2.很樂意大家pm給我.或把我加入即時通.msn,但加入並不是代表小弟已成為您的私人看護
3.還是想不通嗎? 那可以到地下十八樓找你的答案。
[http://microduo.home99.tw/?fromuid=6331]微剋多資訊[/url]
主題已鎖定

回到「外掛問題討論」