Kod: Zaznacz cały
<?php
/* KONFIGURACJA */
//Liczba wyświetlanych topiców
$TOPICS_NUMBER=10;
//Konfiguracja bazy
$DB_HOST=';
$DB_USER='';
$DB_PASSWORD='l';
$DB_NAME='';
//Konfiguracja danych o forum
$FORUM_PATH = 'phpbb3/'; //ścieżka do forum
$TABLE_PREFIX = 'phpbb3_'; //prefiks przed nazwą tabeli
//$EXCLUDE_FORUMS = array(1,2); //nie wyświetlaj z tych forów
/* SZABLONY WYŚWIETLANIA */
$CONTENT = '{$topic_title}</br>';
//Konstrukcja linku - na wypadek wykorzystania mod_rewrite na forum
$TOPIC_TITLE = '<a href="'.$FORUM_PATH. 'viewtopic.php?f={$forum_id}&t={$topic_id}topic={$topic_id}">{$topic_title}</a>';
$COLUMNS = array(); // konfiguracja kolumn
$TABLE_TOPICS = $TABLE_PREFIX; // nazwa tabeli z topicami
$TABLE_FORUM = $TABLE_PREFIX; // nazwa tabeli z forami
$TABLE_USERS = $TABLE_PREFIX; // nazwa tabeli z userami
$TABLE_POSTS = $TABLE_PREFIX; // nazwa tabeli z postami
//Dokończenie odpowiednich nazw;
$TABLE_TOPICS .= 'topics';
$TABLE_FORUM .= 'forum';
$TABLE_USERS .= 'users';
$TABLE_POSTS .= 'posts';
/* POBRANIE INFORMACJI */
//w tej zmiennej będziemy przechowywać to co na końcu będziemy chcieli wyświetlić
$output = array();
//Dodajemy początek
$output[] = $BEGIN;
/*$exclude='';
//Dla każdego forum, które chcemy wykluczyć tworzymy warunek
foreach($EXCLUDE_FORUMS as $forum)$exclude .= "AND forum_id<>$forum ";
//Jeśli wykluczamy jakieś fora, dodajemy na początku dyrektywe WHERE
if($exclude!=''){
$exclude = ' WHERE '.substr($exclude,4);
}*/
//Tworzymy połączenie z DBMS (Systemem zarządzania bazą danych)
$link = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);
//Wybieramy bazę
mysql_select_db($DB_NAME,$link);
$sql = "SELECT topic_id, forum_id, topic_time, topic_title
FROM $TABLE_TOPICS ORDER BY topic_views DESC LIMIT $TOPICS_NUMBER;";
//Pobieramy 10 najnowszych topiców - sortujemy malejąco według czasu (ORDER BY)
// i ograniczamy ilość dyrektywą SQL LIMIT
$topics = mysql_query($sql,$link);
//Przetwarzamy wszystkie tematy
while(($row=mysql_fetch_array($topics))!=NULL){
$sql = "SELECT post_id, poster_id, topic_id, post_time FROM $TABLE_POSTS
WHERE topic_id=$row[topic_id] ORDER BY post_time DESC LIMIT 1;";
//Pobieramy ingormacje o ostatnim poście w tym topicu
$result = mysql_query($sql,$link);
$posts = mysql_fetch_array($result);
//Pobieramy informacje o urzytwkoniku, który napisał ostatniego posta
$sql = "SELECT user_id, username FROM $TABLE_USERS
WHERE user_id=$posts[poster_id];";
$result = mysql_query($sql,$link);
$user = mysql_fetch_array($result);
$msg = $CONTENT;
if($posts!=NULL){
//Tutaj następuje zamiana z szablonu do treści
$topic_title = $TOPIC_TITLE;
$topic_title = str_replace('{$topic_title}', $row['topic_title'],substr($topic_title, 0, 90).'...');
$topic_title = str_replace('{$topic_id}', $row['topic_id'],$topic_title);
$topic_title = str_replace('{$forum_id}', $row['forum_id'],$topic_title);
$msg = str_replace('{$topic_title}',$topic_title,$msg);
}else{
continue;
}
if($user!=NULL){
//tutaj zmieniamy szablon {$topic_author} na rzeczywiste dane
$msg = str_replace('{$topic_author}', $user['username'],$msg);
}else{
$msg = str_replace('{$topic_author}', 'Anonymous',$msg);
}
//dodajemy wynik do wyświetlenia
$output[] = $msg;
}
$output[] = $END;
/* wyświetlenie informacji */
echo implode("",$output);
?>