Pagina 1 van 1

Recent Topic/ Top Topics op elke pagina...

Geplaatst: 21 jul 2006, 00:51
door ownageworld
Ey allemaal,

Ik heb mn website/ navigatie zo gemaakt, dat ik mijn menu op elke pagina heb.... Nu zou ik graag "Top Topics" op elke pagina willen hebben, en niet alleen op index dus...
Mijn menu code staat in overal_header.tpl, en daar heb ik ook de code voor "design vd top topics mod" gezet....

Maar de volgende code moet ik ook nog kwijt in php file, en het moet op ELKE pagina doen... hoe kan ik het beste te werk gaan? Moet ik elke string in overal_header zetten? Of zou ik dit ergens neer kunnen zetten dat hij het meteen doet? (nu doet hij het niet, maar weet niet precies waar ik het neer moet zetten) Ik heb het geprobeerd in functions/page_header.php maar dat lukte niet...
Alvast bedankt!

Dit is de code:

Code: Selecteer alles

//------------------------------------------------------------------------
// Top Topics on Index 1.1.0 - Begin Code Addition
//
	$template->assign_vars(array(
		'L_TOPICSRECENT' => $lang['TopicsRecent'],
		'L_TOPICSPOPULAR' => $lang['TopicsPopular'],
		'L_TOPICSPOPULARVIEW' => $lang['TopicsPopularView'])
	);

	// Get forum auth information to insure privacy of hidden topics
	$topics_auth = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
	$topics_auth_sql = '';
	foreach($topics_auth as $k=>$v)
	{
		if( $v['auth_view'] && $v['auth_read'] )
		{
			$topics_auth_sql .= (( empty($topics_auth_sql) ) ? '': ', ') . $k;
		}
	}

	if( empty($topics_auth_sql) )
	{
		$template->assign_block_vars('topicrecentpopular', array(
			'TOPICSPOPULAR' => $lang['No_Posts'],
			'TOPICSPOPULARVIEW' => $lang['No_Posts'],
			'TOPICSRECENT' => $lang['No_Posts']
		));
	}
	else
	{
		//
		// Okay, let's build the topic recent and popular
		//
		$active_topics_sql = 'SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_views, t.topic_last_post_id
			FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE. ' f
			WHERE t.forum_id IN (' . $topics_auth_sql . ')
				AND f.forum_id = t.forum_id
			ORDER BY %1$s DESC
			LIMIT 0,5';
		$active_topics_sql_a = sprintf($active_topics_sql, 'topic_last_post_id');
		$active_topics_sql_b = sprintf($active_topics_sql, 'topic_replies');
		$active_topics_sql_c = sprintf($active_topics_sql, 'topic_views');
		$recent_row = $popular_row = $viewed_row = array();

		if( !$active_topics_a = $db->sql_query($active_topics_sql_a))
		{
			message_die(GENERAL_ERROR, 'Could not retrieve recent topics', '', __LINE__, __FILE__, $active_topics_sql_a);
		}
		$recent_row = $db->sql_fetchrowset($active_topics_a);
		$db->sql_freeresult($active_topics_a);

		if( !$active_topics_b = $db->sql_query($active_topics_sql_b))
		{
			message_die(GENERAL_ERROR, 'Could not retrieve popular topics', '', __LINE__, __FILE__, $active_topics_sql_b);
		}
		$popular_row = $db->sql_fetchrowset($active_topics_b);
		$db->sql_freeresult($active_topics_b);

		if( !$active_topics_c = $db->sql_query($active_topics_sql_c))
		{
			message_die(GENERAL_ERROR, 'Could not retrieve most viewed topics', '', __LINE__, __FILE__, $active_topics_sql_c);
		}
		$viewed_row = $db->sql_fetchrowset($active_topics_c);
		$db->sql_freeresult($active_topics_c);

		for( $i = 0; $i < 5; $i++ )
		{
			$recent_topic_title = $recent_row[$i]['topic_title'];
			$popular_topic_title = $popular_row[$i]['topic_title'];
			$viewed_topic_title = $viewed_row[$i]['topic_title'];

			if( strlen($recent_topic_title) > 40 )
			{
				$recent_topic_title = substr($recent_topic_title, 0, 40) . '...';
			}

			if( strlen($popular_topic_title) > 40 )
			{
				$popular_topic_title = substr($popular_topic_title, 0, 40) . '...';
			}

			if( strlen($viewed_topic_title) > 40 )
			{
				$viewed_topic_title = substr($viewed_topic_title, 0, 40) . '...';
			}

			$recent_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $recent_row[$i]['topic_id'] . '" title="' . $recent_row[$i]['topic_title'] . '">' . $recent_topic_title . '</a>';
			$popular_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $popular_row[$i]['topic_id'] . '" title="' . $popular_row[$i]['topic_title'] . '">' . $popular_topic_title . '</a>';
			$popular_total_replies = $popular_row[$i]['topic_replies'];
			$viewed_post = '<a href="viewtopic.php?' . POST_TOPIC_URL . '=' . $viewed_row[$i]['topic_id'] . '" title="' . $viewed_row[$i]['topic_title'] . '">' . $viewed_topic_title . '</a>';
			$viewed_total_replies = $viewed_row[$i]['topic_views'];

			$template->assign_block_vars('topicrecentpopular', array(
				'TOPICSPOPULAR' => $popular_post,
				'TOPICSPOPULARC' => $popular_total_replies,
				'TOPICSPOPULARVIEW' => $viewed_post,
				'TOPICSPOPULARVIEWC' => $viewed_total_replies,
				'TOPICSRECENT' => $recent_post)
			);
		}
	}
//
// Top Topics on Index 1.1.0 - End Code Addition
//------------------------------------------------------------------------

Geplaatst: 22 jul 2006, 17:32
door ownageworld
iemand? Please! :bier:

Geplaatst: 22 jul 2006, 20:21
door svenn
dat stukje tekst moet idd in includes/page_header.php en de html moet in overall_header.tpl

Geplaatst: 23 jul 2006, 11:15
door ownageworld
svennson schreef:dat stukje tekst moet idd in includes/page_header.php en de html moet in overall_header.tpl
Maar dan doet hij het juist niet, dat is mijn vraag :lol:

Geplaatst: 26 aug 2006, 19:28
door ArjanR
Nu ben ik ook met deze mod aan het stoeien maar ik wil graag de uitvoer op een pagina hebben die niet in de map van het forum staat maar in de hoofdmap.

Nu heb ik het geprobeerd met van het php gedeelte een apart php bestand te maken en dan te verwijzen naar dat bestand maar mij wil het maar niet lukken.

Dus nu heb ik twee vragen;

Is het mogelijk om dit script te laten werken buiten de map van het forum en zo ja hoe dan?

En ownnageworld, ik denk dat je de tabelcode gewoon in die tpl bestanden moet plaatsen waar je hem wil zien.