[PHP] Newssystem für WBB

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.

  1. showimages=1;
  2.         $text->prepareimages();
  3.         return str_replace("{imagefolder}",$forum_url."/images/",
  4.                     $text->doparse($news_text,1,1,1,1));
  5.     }
  6.    
  7.     function formatTime($news_time) {
  8.         return date( "d.m.Y - H:i" , $news_time );
  9.     }
  10.    
  11.     function formatLink($news_link) {
  12.         global $forum_url;
  13.         return "$forum_url/thread.php?goto=firstpost&threadid=$news_link";
  14.     }
  15.    
  16.     /* Liefert ein Array an News zurück welches die (formatierten) News enthalten */
  17.     function getAllNews() {
  18.         global $news_category;
  19.         global $news_limit;
  20.         $newsArray = array();
  21.            
  22.         /* 1. Post eines jeden Threads in der News-Sektion auslesen */
  23.         $result = mysql_query( "SELECT t.threadid, starttime, starter, topic, message FROM `bb1_boards` as b ".
  24.                     " INNER JOIN `bb1_threads` as t  ON (b.boardID = t.boardID) " .
  25.                     " INNER JOIN `bb1_posts` as p ON " .
  26.                         "(t.starttime = p.posttime AND t.starter=p.username)" .
  27.                     " WHERE b.title='".  $news_category."' ".
  28.                                 // Wenn die Reihenfolge falsch ist, dann:
  29. //                  " ORDER BY t.starttime ASC ".   // einkommentieren
  30.                     " ORDER BY t.starttime DESC ".  // auskommentieren
  31.                     " LIMIT ".  $news_limit );
  32.         while ( $row = mysql_fetch_array($result) ) {
  33.             $news = new News;
  34.             $news->news_date = formatTime( $row["starttime"] );
  35.             $news->news_author = $row["starter"];
  36.             $news->news_title = $row["topic"];
  37.             $news->news_text = formatNews( $row["message"] );
  38.             $news->news_link = formatLink( $row["threadid"] );
  39.            
  40.             $newsArray[] = $news;
  41.         }
  42.         return $newsArray;
  43.     }
  44. ?>

Zugegriffen wird auf das ganze einfach so (ja ist eigneltich kein HTML…):

  1. <h2> Ein WBB Newssystem</h2>
  2. <br />
  3. <br />
  4.  
  5.  <table border="1," width="75%,">
  6.  
  7.    
  8.     <tr>
  9.         <td width="80%"> news_title); ?&gt; </td>
  10.         <td width="20%"> news_date); ?&gt; </td>
  11.     </tr><tr>
  12.         <td colspan="2"> news_text); ?&gt; </td>
  13.     </tr><tr>
  14.         <td width='50%'> news_author); ?&gt; </td>
  15.         <td width='50%'> &lt;a href='news_link); ?&gt;'&gt;Antworten</a></td>
  16.     </tr>
  17.    
  18.    
  19.  
  20. </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!

Schreibe einen Kommentar