Pagina 1 van 1

titel op index laatste post

Geplaatst: 02 jan 2005, 14:06
door Kaza
Ik heb de mod geinstalleerd, het werkt maar ikwil het toch een beetje anders.

Nu verwijst het linkje naar de laatste post maar dat doet het plaatje Afbeelding ook. Ik wil dus dat het linkje verwijst naar het begin van de topic. Zodat de bezoeker op de index al kan kiezen of hij naar het begin of laatste post gaat.
Dit is de regel:

Code: Selecteer alles

$last_post = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '" title="' . $topic_title2 . '">' . $topic_title . '</a><br>';
Greets. :thumb:

Geplaatst: 02 jan 2005, 14:28
door ElbertF
Maar de kolom heet toch "Last Post"? Op mijn forum heb het plaatje gewoon verwijderd..

Geplaatst: 02 jan 2005, 15:22
door Luuk
Klein foutje in de code moet kunnen :oops:
Zoek

Code: Selecteer alles

	while( $row = $db->sql_fetchrow($result) )
	{
		$forum_data[] = $row;
	}
	$db->sql_freeresult($result);
Zet erachter

Code: Selecteer alles

	$sql = "SELECT t.topic_first_post_id AS forum_first_post_id
		FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
		WHERE p.post_id = " . $forum_data['forum_last_post_id'] . "
		    AND t.topic_id = p.topic_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query forum_first_post_id', '', __LINE__, __FILE__, $sql);
	}
	
	while( $row = $db->sql_fetchrow($result) )
	{
		$forum_data[] = $row;
	}
	$db->sql_freeresult($result);

Geplaatst: 02 jan 2005, 17:33
door Kaza
Nee dat bedoel ik niet. Kijk even op mijn index bij laatste berichten (rechtekolom)
Daarin zie een topicnaam daarna de datum en dan diegene die het heeft gepost, gevolgd door het reply-icoontje.
Nu wil ik dat die topic-naam linkt naar het begin van de topic de rest staat goed.
In de regel hieronder geeft tie de link dus naar het laatste bericht en dat wil ik dus anders:

Code: Selecteer alles

$last_post = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '" title="' . $topic_title2 . '">' . $topic_title . '</a><br>';
Dus deze regel moet worden aangepast

Greets

Geplaatst: 02 jan 2005, 17:37
door ElbertF
Luuk schreef:Als het goed is moet je dan forum_first_post_id kunnen gebruiken om de eerste post van het topic waar het laatst is gepost weer te geven.
Dus, na de aanpassing van Luuk:

Code: Selecteer alles

$last_post = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_first_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '" title="' . $topic_title2 . '">' . $topic_title . '</a><br>';

Geplaatst: 02 jan 2005, 17:42
door Kaza
OK we gaan het proberen :bier: :thumb:

edit: Helaas het werkt gedeeltelijk omdat ik niet meer dan http://www......viewtopic.php?p=# haal bestaat de topic dus niet.

Moet dus nog iets meer worden toegevoegd

Geplaatst: 02 jan 2005, 17:53
door ElbertF
Heb je Luuk z'n stukje PHP wel toegevoegd??

Geplaatst: 02 jan 2005, 18:25
door Kaza
Dat stukje is veranderd door die mod:
Hier de verandering:

Code: Selecteer alles

$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_last_post_id " .
			" FROM ((( " . FORUMS_TABLE . " f " .
			" LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )" .
			" LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) " .
			" LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_last_post_id = p.post_id ) " .
			" ORDER BY f.cat_id, f.forum_order";
		break;
	}
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
	}

	$forum_data = array();
	$topic_last_ary = array();
	$i=0;
	while( $row = $db->sql_fetchrow($result) )
	{
		if (!in_array($row['topic_last_post_id'], $topic_last_ary) || $row['topic_last_post_id']==0) {
			$topic_last_ary[i]=$row['topic_last_post_id'];
			$i++;
			$forum_data[] = $row;
		}
	}
	unset($topic_last_ary);
	if ( !($total_forums = count($forum_data)) )
	{
		message_die(GENERAL_MESSAGE, $lang['No_forums']);
	}
	
	//
	// Filter topic_title not allowed to read
	// 
	if ( !($userdata['user_level'] == ADMIN && $userdata['session_logged_in']) ) {
		$auth_read_all = array();
		$auth_read_all=auth(AUTH_READ, AUTH_LIST_ALL, $userdata, $forum_data);
		$auth_data = '';
		for($i=0; $i<count($forum_data); $i++)
		{
			if (!$auth_read_all[$forum_data[$i]['forum_id']]['auth_read']) {
				$forum_data[$i]['topic_title']='';
			}
		}
	}

	//
	// Define censored word matches
Dus weet even niet waar ik dit stukje moet plaatsen

Geplaatst: 02 jan 2005, 18:35
door ElbertF
Zet het na

Code: Selecteer alles

   if ( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
   } 

Geplaatst: 02 jan 2005, 18:41
door Kaza
Krijg nu deze melding:

Code: Selecteer alles

Could not query forum_first_post_id

DEBUG MODE

SQL Error : 1066 Not unique table/alias: 'f'

SELECT t.topic_first_post_id AS forum_first_post_id FROM phpbb_topics f, phpbb_posts f WHERE p.post_id = AND t.topic_id = p.topic_id

Line : 186
File : /home/httpd/vhosts/kazango.nl/httpdocs/forum/index.php
regel 186:

Code: Selecteer alles

        message_die(GENERAL_ERROR, 'Could not query forum_first_post_id', '', __LINE__, __FILE__, $sql);

Geplaatst: 02 jan 2005, 18:52
door ElbertF
Haal die f eens weg, op twee plaatsen:
phpbb_topics f, phpbb_posts f

Geplaatst: 02 jan 2005, 19:07
door Kaza
Die F verwijderen werkte niet, die zal die wel nodig hebben aangezien het daar mee vol staat.
Ik denk zelf dat hier het een en ander moet worden aangepast:

Code: Selecteer alles

$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_last_post_id " . 
         " FROM ((( " . FORUMS_TABLE . " f " . 
         " LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )" . 
         " LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) " . 
         " LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_last_post_id = p.post_id ) " . 
         " ORDER BY f.cat_id, f.forum_order"; 
      break;

Geplaatst: 02 jan 2005, 22:18
door Luuk
Luuk schreef:Klein foutje in de code moet kunnen :oops:
Zoek

Code: Selecteer alles

	while( $row = $db->sql_fetchrow($result) )
	{
		$forum_data[] = $row;
	}
	$db->sql_freeresult($result);
Zet erachter

Code: Selecteer alles

	$sql = "SELECT t.topic_first_post_id AS forum_first_post_id
		FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
		WHERE p.post_id = " . $forum_data['forum_last_post_id'] . "
		    AND t.topic_id = p.topic_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not query forum_first_post_id', '', __LINE__, __FILE__, $sql);
	}
	
	while( $row = $db->sql_fetchrow($result) )
	{
		$forum_data[] = $row;
	}
	$db->sql_freeresult($result);
Vaag, dacht toch echt dat ik mijn vorige post gequote had en niet gewijzigt. Dan maar zo :wink:

Geplaatst: 02 jan 2005, 22:40
door Kaza
Dit levert deze error op:

Code: Selecteer alles

Could not query forum_first_post_id

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'AND t.topic_id = p.topic_id' at line 4

SELECT t.topic_first_post_id AS forum_first_post_id FROM phpbb_topics t, phpbb_posts p WHERE p.post_id = AND t.topic_id = p.topic_id

Line : 186
File : /home/httpd/vhosts/kazango.nl/httpdocs/forum/index.php

Geplaatst: 02 jan 2005, 23:32
door Luuk
Ik zie dat jouw mod wat heeft aangepast in de namen...
Ik denk dat het dan zo al kan:
Zet achter

Code: Selecteer alles

SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_last_post_id
, t.topic_last_post_id

Als het goed is moet je dan topic_last_post_id kunnen gebruiken :roll:

Geplaatst: 02 jan 2005, 23:37
door Kaza
je bedoeld waarschijnlijk

, t.topic_first_post_id

Of heb ik het nou verkeerd? , t.topic_last_post_id staat er namelijk al.

Geplaatst: 03 jan 2005, 11:38
door Kaza
Het is toch lastiger dan gedacht :? Het bovenstaande geeft ook niet het beoogde effect.
Kan ook geheel niks vinden op diverse andere websites hierover. Heb de maker gemailt en hij had ook nog nooit die vraag gehad. Dus ben nog steeds zoekende naar een oplossing :D Wie?

Geplaatst: 06 jan 2005, 10:17
door Luuk
Probeer eens:

Code: Selecteer alles

$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_last_post_id, t2.topic_first_post_id " .
         " FROM (((( " . FORUMS_TABLE . " f " .
         " LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )" .
         " LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) " .
         " LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_last_post_id = p.post_id ) " .
		 " LEFT JOIN " . TOPICS_TABLE . " t2 ON t2.topic_id = p.topic_id ) " .
         " ORDER BY f.cat_id, f.forum_order";
      break;
   }
   if ( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
   }
Bij mij op localhost werkt het, maar met die mod erbij ben ik niet zeker.
Je zou topic_first_post_id moeten kunnen gebruiken.