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

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
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

: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
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

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

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

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.