Seite 1 von 1

Ganz einfache Anzeige neuster Themen eines Boards

Verfasst: 05.04.2005 11:55
von Loewenherz
Hi,
ich "missbrauche" gerade ein Board innerhalb eines phpBB 2.0.13 als Newsbereich. Die letzten fünf Posts würde ich gern auf die Startseite bringen (derzeit noch von Hand, siehe www.muzik23.de als Beispiel, wie es nach aussen hin aussehen und funktionieren soll).

Okay, ich weiss, dafür gibt es den Recent Topic Mod und Acid macht da sicher gute Arbeit. Aber für mich ist dieser Mod seit einigen Versionen schlichtweg unbrauchbar geworden. Ich brauche keine umfangreichen Formatierungen, keinen Login-Check, sondern einfach die Sachen, die der gute, alte Recent-Mod hatte, der seit ca. 2.0.4 oder 2.0.6 nicht mehr funktioniert:
- Definition, aus welchem Board die News angezeigt werden (oder umgekehrt aus welchem nicht)
- Festlegung, wieviele letzte Topics.
Mehr nicht. Das Script kann gern innerhalb des phpBB-Ordners liegen, sollte dann aber von weiter oben her includiert werden können. Hat jemand einen Tipp?

P.S.: Auf http://www.phpbbhacks.com/category/23 habe ich noch ein paar gefunden. Allerdings sind die Teile entweder auch von Acid, beziehen sich nur auf die phpBB-Index oder scheinen veraltet. Dem einzig möglich brauchbaren fehlt die Auswahl, aus welchen Foren die neusten Topics nur angezeigt werden sollen.

Verfasst: 05.04.2005 15:13
von D@ve
Hier hab ich was selbstgestricktes, das ich schon recht lange benutze, ist aber auch nur eine recent-Funktion und relativ billig gelöst (kein Template) müsstest Du Dir halt so umbauen, dass nur das eine Forum angezeigt wird:

Code: Alles auswählen

{
echo"<br>";
echo"<h2><a href=\"./forum/index.php\">aus dem forum...</a></h2>";
echo" <table width=\"100%\">";
echo"   <tr>";
echo"     <th align=\"left\">Thema</th><th align=\"left\">Forum</th>\n"; //<th align=\"left\">Datum</th>
echo"   </tr>";


define('ENDLINE', "\n");

//Hier den Pfad zur config.php des Forums eintragen
include ('./forum/config.php');

//Anzahl der Topics die angezeigt soll
$anzahlTopics = 5;

//Board-IDs, dessen zugehörie Foren ausgeschlossen werden sollen (zB. unsichtbare Foren)
$excludeBoards = array(4,21,20);

if ($excludeBoards && is_array($excludeBoards))
{
  $excludeString = ' AND ';
  foreach ($excludeBoards as $boardID)
  {
      $excludeString .= $table_prefix . 'topics.forum_id != ' . $boardID . ' ';
      if (next($excludeBoards))
      {
          $excludeString .= 'AND ';
      }
  }
}

$queryString = 'SELECT topic_id, topic_title, topic_last_post_id, forum_name, ' . $table_prefix . 'forums.forum_id '.
             'FROM ' . $table_prefix . 'topics, ' . $table_prefix . 'forums ' .
             'WHERE ' . $table_prefix . 'topics.forum_id = ' . $table_prefix . 'forums.forum_id '
             . $excludeString .
             'GROUP  BY topic_id ' .
             'ORDER  BY topic_last_post_id  DESC ' .
             'LIMIT ' . $anzahlTopics;

$result = mysql_query($queryString);
$today = time();

while($resultArray = mysql_fetch_array($result))
{
if(strlen($resultArray[topic_title]) > 25) //Titel kürzen, falls länger als 25 Zeichen
{
    $resultArray[topic_title] = substr($resultArray[topic_title],0,22)." ..";

}
echo'   <tr> ' . ENDLINE;
echo'     <td><a href="/forum/viewtopic.php?t=' . $resultArray[topic_id] . '#' . $resultArray[topic_last_post_id] . '">' . $resultArray[topic_title]. '</a>&nbsp;&nbsp;</td>' . ENDLINE;;
echo'     <td><a href="/forum/viewforum.php?f=' . $resultArray[forum_id] . '">' . $resultArray[forum_name] . '</a>&nbsp;&nbsp;</td>' . ENDLINE;;
echo'   </tr>' . ENDLINE;
}
echo "</table>";
echo "<br>";
echo "<br>";
} 
Gruß, Dave

Verfasst: 05.04.2005 15:25
von Loewenherz
Danke für die Antwort dave, an sich genau das, was ich brauche.
Leider kommt bei mir die Fehlermeldung: "
Warning: Supplied argument is not a valid MySQL result resource in /var/www/user1/muzik23.de/html/index2.php on line 100". Die Zeile enthält:

Code: Alles auswählen

while($resultArray = mysql_fetch_array($result))   
Ist die Konstruktion bei dir ebenso, dass der phpBB-Ordner "forum" genannt ist und direkt unterhalb der Start-index liegt, in der dein Script eingebunden ist?

Ich hab bei mir übrigens ein relativ restriktives Debian woody mit den entsprechenden Komponenten im Einsatz.