Seite 1 von 5
Anzeigen aller Beiträge, die nicht geschlossen sind
Verfasst: 19.10.2004 11:14
von Angel1980
Hallo,
gibt es eine Funktion, mit der ich mir alle Beiträge anzeigen lassen kann, die noch nicht geschlossen sind, praktisch alle noch offenen Punkte. Mein Forum wird immer größer und die Leute verlieren den Überblick.
Da es ein Serviceforum ist, wäre es nciht schlecht, wenn sich die Leute über einen Punkt die noch nicht geschlossenen und damit noch nicht erledigten Beiträge anzeigen lassen können.
Gibt es sowas schon, was ich einbinden kann, oder muss ich selber etwas neues dafür programmieren in PHP?
Für eine schnelle Antwort von Euch wäre ich sehr dankbar.
Gruß
Angel1980
Verfasst: 19.10.2004 15:25
von StormX
Nein das geht nicht.
Verfasst: 19.10.2004 15:27
von musashi
Doch das geht, da geschlossene und offene Threads eine andere Flag haben.
Müsstest halt eine dememtsprechende Datenbankabfrage machen.
In phpmyadmin einfach mal das eingeben:
Code: Alles auswählen
SELECT topic_id, topic_title, topic_poster FROM phpbb_topics WHERE topic_status LIKE '0';
(Glaube 0 sind offene) 1 Geschlossene und 2 Infotopics oder so.
klappt
Verfasst: 19.10.2004 15:53
von Angel1980
Das klappt auf jeden Fall schonmal,
habe ich jetzt die Möglichkeit das irgendwie in meinem Forum zu verankern, z.b. rechts oben bei den Sätzen, dass da noch einer zukommt. Noch nicht geschlossene Beiträge????
Verfasst: 19.10.2004 16:26
von musashi
Müsste schon funzen, habe mal schnell was hingeklatscht, ohne templates etc.:
http://www.legoquake.de/forum/closed.php
Code: Alles auswählen
<?php
$link = mysql_connect("XXX", "XXX", "XXX"); // "server", "loginname", "passwort"
if (!$link)
die("Kann den Server nicht erreichen.");
if (!mysql_select_db("XXX", $link)) //auszuwählende DB
die("Kann die Datenbank nicht anwählen.");
$query = 'SELECT topic_id, topic_title FROM phpbb_topics WHERE topic_status LIKE "1" LIMIT 0, 250';
$result = mysql_query($query, $link);
if (!$result)
{
print mysql_error();
die("Query $sql ist ungültiges SQL.");
}
while($row = mysql_fetch_assoc($result)) {
$id = $row['topic_id'];
$title = $row['topic_title'];
echo "<a href=\"http://legoquake.de/forum/viewtopic.php?t=$id\" name=\"\">$title</a><br />"; //URL ändern
}
mysql_free_result($result);
mysql_close($link);
?>
Derzeit werden da halt auch noch Threads angezeigt, die in privaten Bereichen sind, daher würde ich das nicht unbedingt public anbieten.
Wenn ich Zeit habe erweiter ich das noch bissle.
Verfasst: 19.10.2004 16:59
von Leuchte
StormX hat geschrieben:Nein das geht nicht.
Warum sollte das nicht gehen? Wenn man etwas nicht weiß oder keine Ahnung hat, sollte man sich seinen Kommentar verkneifen.
viewforum.php
Finde
Code: Alles auswählen
//
// Grab all the basic data (all topics except announcements)
// for this forum
Füge davor ein
Code: Alles auswählen
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
$status = ( (!empty($mode)) ? ( ($mode == 'lock') ? ("AND t.topic_status = " . TOPIC_LOCKED) : ("AND t.topic_status = " . TOPIC_UNLOCKED) ) : '');
$lock_url = append_sid("viewforum.$phpEx?f=$forum_id&mode=lock");
$unlock_url = append_sid("viewforum.$phpEx?f=$forum_id&mode=unlock");
Finde
Code: Alles auswählen
$limit_topics_time
ORDER BY t.topic_type DESC, t.topic_last_post_id DESC
LIMIT $start, ".$board_config['topics_per_page'];
Füge direkt davor ein
Finde
Code: Alles auswählen
$template->assign_vars(array(
'FORUM_ID' => $forum_id,
Ersetze mit
Code: Alles auswählen
$template->assign_vars(array(
'U_UNLOCK' => $unlock_url,
'L_UNLOCK' => $lang['Forum_unlock'],
'U_LOCK' => $lock_url,
'L_LOCK' => $lang['Forum_lock'],
'FORUM_ID' => $forum_id,
viewforum_body.tpl
Finde
Code: Alles auswählen
<td align="right" valign="bottom" class="nav" nowrap="nowrap"><span class="gensmall"><a href="{U_MARK_READ}">{L_MARK_TOPICS_READ}</a>
Füge direkt danach ein
Code: Alles auswählen
<br /><a href="{U_LOCK}">{L_LOCK}</a> :: <a href="{U_UNLOCK}">{L_UNLOCK}</a>
language/lang_german/lang_main.php
Finde
Füge davor ein
Code: Alles auswählen
$lang['Forum_unlock'] = 'Nur offene Themen zeigen';
$lang['Forum_lock'] = 'Nur geschlossene Themen zeigen';
funzt nicht ganz
Verfasst: 20.10.2004 10:17
von Angel1980
Hallo,
also bis zu einem gewissen Punkt habe ich es geschafft die Sachen einzubauen. Mir fehlt nur der Eintrag, den ich suchen soll in der viewtopic_body.tpl. Den habe ich nicht drinnen. Den Rest schon, er zeigt aber ncihts an.
Hier mal meine viewtopic_body.tpl:
Code entfernt; Wenn Dateien zeigen, dann nur verlinken; Leuchte
Was kann ich jetzt noch tun?? Bitte nochmal einen Geniestreich

Verfasst: 20.10.2004 12:07
von Leuchte
Natürlich nicht viewtopic_body.tpl sondern viewforum_body.tpl
Denkt denn hier keiner mit? *fg*

Noch ne Frage
Verfasst: 20.10.2004 13:56
von Angel1980
Hallo Leuchte,
das mit dem kompletten Code werde ich mir merken, daher jetzt nur noch ein paar Auszüge und nochmal danke für Deine Antwort.
Mitdenken, tue ich dann, wenn ich mehr Ahnung von der Materie bekommen haben PHP ist nicht gerade mein Fachgebiet

. Übrigens hattest Du das schon richtig geschrieben, sehe ich gerade, tja wer lesen kann....
Nur jetzt nochmal ne Frage. Ich habe alles eingebaut, wie Du es gesagt hast:
viewforum.php:
Code: Alles auswählen
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
$status = ( (!empty($mode)) ? ( ($mode == 'lock') ? ("AND t.topic_status = " . TOPIC_LOCKED) : ("AND t.topic_status = " . TOPIC_UNLOCKED) ) : '');
$lock_url = append_sid("viewforum.$phpEx?f=$forum_id&mode=lock");
$unlock_url = append_sid("viewforum.$phpEx?f=$forum_id&mode=unlock");
//
// Grab all the basic data (all topics except announcements)
// for this forum
//
Code: Alles auswählen
$template->assign_vars(array(
'U_UNLOCK' => $unlock_url,
'L_UNLOCK' => $lang['Forum_unlock'],
'U_LOCK' => $lock_url,
'L_LOCK' => $lang['Forum_lock'],
'FORUM_ID' => $forum_id,
'FORUM_NAME' => $forum_row['forum_name'],
'MODERATORS' => $forum_moderators,
'POST_IMG' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'],
viewforum_body.tpl
Code: Alles auswählen
<td align="right" valign="bottom" class="nav" nowrap="nowrap"><span class="gensmall"><a href="{U_MARK_READ}">{L_MARK_TOPICS_READ}</a><br /><a href="{U_LOCK}">{L_LOCK}</a> :: <a href="{U_UNLOCK}">{L_UNLOCK}</a></span></td>
lang_main.php
Code: Alles auswählen
$lang['Search_new'] = "Beiträge seit dem letzten Besuch anzeigen";
$lang['Search_your_posts'] = "Eigene Beiträge anzeigen";
$lang['Search_unanswered'] = "Unbeantwortete Beiträge anzeigen";
$lang['Forum_unlock'] = "Nur offene Themen anzeigen";
$lang['Forum_lock'] = "Nur geschlossene Themen anzeigen.";
Was hab ich denn falsch gemacht???
Verfasst: 20.10.2004 17:00
von Leuchte
Übrigens hattest Du das schon richtig geschrieben, sehe ich gerade, tja wer lesen kann....
Nein, ich hab den Text oben ausgebessert.
Was hab ich denn falsch gemacht???
Keine Ahnung. Was geht denn nicht?
Eventuell an dieser Stelle
Komplett sollte das so aussehen
Code: Alles auswählen
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time
FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
WHERE t.forum_id = $forum_id
AND t.topic_poster = u.user_id
AND p.post_id = t.topic_first_post_id
AND p2.post_id = t.topic_last_post_id
AND u2.user_id = p2.poster_id
AND t.topic_type <> " . POST_ANNOUNCE . "
$status
$limit_topics_time
ORDER BY t.topic_type DESC, t.topic_last_post_id DESC
LIMIT $start, ".$board_config['topics_per_page'];
Das findet sich übrigens direkt unter dem Kommentar
Code: Alles auswählen
//
// Grab all the basic data (all topics except announcements)
// for this forum
//