Wenn man ein Woltlab Burning Board besitzt, möchte man vielleicht auch ein kleines News-System damit betreiben:
Aus einem Board heraus soll jeder Threadstart eine News darstellen.
Kein Problem mit diesem kleinen Script.
Einfach nur die 3 (hoffentlich selbsterklärenden) Variablen am Anfang anpassen und das wars.
Es funktioniert bei wbb lite, keine Ahnung wie das mit anderen Versionen aussieht.
- showimages=1;
- $text->prepareimages();
- return str_replace("{imagefolder}",$forum_url."/images/",
- $text->doparse($news_text,1,1,1,1));
- }
- function formatTime($news_time) {
- return date( "d.m.Y - H:i" , $news_time );
- }
- function formatLink($news_link) {
- global $forum_url;
- return "$forum_url/thread.php?goto=firstpost&threadid=$news_link";
- }
- /* Liefert ein Array an News zurück welches die (formatierten) News enthalten */
- function getAllNews() {
- global $news_category;
- global $news_limit;
- $newsArray = array();
- /* 1. Post eines jeden Threads in der News-Sektion auslesen */
- $result = mysql_query( "SELECT t.threadid, starttime, starter, topic, message FROM `bb1_boards` as b ".
- " INNER JOIN `bb1_threads` as t ON (b.boardID = t.boardID) " .
- " INNER JOIN `bb1_posts` as p ON " .
- "(t.starttime = p.posttime AND t.starter=p.username)" .
- " WHERE b.title='". $news_category."' ".
- // Wenn die Reihenfolge falsch ist, dann:
- // " ORDER BY t.starttime ASC ". // einkommentieren
- " ORDER BY t.starttime DESC ". // auskommentieren
- " LIMIT ". $news_limit );
- while ( $row = mysql_fetch_array($result) ) {
- $news = new News;
- $news->news_date = formatTime( $row["starttime"] );
- $news->news_author = $row["starter"];
- $news->news_title = $row["topic"];
- $news->news_text = formatNews( $row["message"] );
- $news->news_link = formatLink( $row["threadid"] );
- $newsArray[] = $news;
- }
- return $newsArray;
- }
- ?>
Zugegriffen wird auf das ganze einfach so (ja ist eigneltich kein HTML…):
- <h2> Ein WBB Newssystem</h2>
- <br />
- <br />
- <table border="1," width="75%,">
- <tr>
- <td width="80%"> news_title); ?> </td>
- <td width="20%"> news_date); ?> </td>
- </tr><tr>
- <td colspan="2"> news_text); ?> </td>
- </tr><tr>
- <td width='50%'> news_author); ?> </td>
- <td width='50%'> <a href='news_link); ?>'>Antworten</a></td>
- </tr>
- </table>
Das ganze ist sehr auf wbb ausgerichtet und auf andere Foren wohl nur schwer zu übertragen (da dann wohl vor allem der JOIN auf die Schnauze fällt).
Auch mit dem {imagefolder} bin ich nicht ganz glücklich, wieß aber auch nicht wie und wo wbb diese Platzhalter durch die richtigen Werte ersetzt.
Wer seine Smileys also nicht unterhalb von /images liegen hat muss hier (Zeile 37 news.inc.php ) nacharbeiten!