"ostatnio na forum:"

poszukuje takiego kodu co bym go wrzucił w blok menu w jportalu i by mi pokazywało jakie są nowe tematy na forum phpbb by przemo na innym serwerze :open_mouth:

takei coś jak jest na dobreprogramy “ostatnio na forum”

z góry dzięki

Więc tak:

Robisz plik w katalogu forum o nazwie: last.php

A w nim to:

<?php

// Nie przechowuj w cache'u:

@ header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

@ header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

@ header("Cache-Control: no-store, no-cache, must-revalidate");

@ header("Cache-Control: post-check=0, pre-check=0", false);

@ header("Pragma: no-cache");



if (!$_GET) $_GET = $HTTP_GET_VARS;

$number = (int)$_GET['n'];

$maxlength = (int)$_GET['m'];

$frame = $_GET['f'];

$charset = $_GET['c'];

$javascript = isset($_GET['j']) ? true : false;



////////// SETTINGS

$topic_link = true; // true = link do tematu, false = link do ostatniego postu w temacie

$default_number = 10; // ilosc tematow na liscie (domyslnie)

$default_maxlength = 60; // maksymalna ilosc znakow w temacie

$default_frame = '_blank'; // domysla ramka do wczytywania tematow (okno)

$default_charset = 'iso-8859-2'; // domyslne kodowanie strony, na ktorej beda wyswietlane tematy

//////////



if (!$_SERVER) $_SERVER = $HTTP_SERVER_VARS;

$base_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']);

$base_url .= strrpos($base_url, '/') != strlen($base_url)-1 ? '/' : '';

$base_path = dirname($_SERVER['PATH_TRANSLATED']);

$base_path .= strrpos($base_path, '/') != strlen($base_path)-1 ? '/' : '';

if (strstr($base_path, '/') == $base_path) $base_path = '.' . $base_path;


if (!$number) $number = $default_number;

if (!$maxlength) $maxlength = $default_maxlength;

if (!$frame) $frame = $default_frame;

if (!$charset) $charset = $default_charset;


if (defined('IN_PHPBB')) exit;

define('IN_PHPBB', true); 

@ include($base_path . 'extension.inc'); 

@ include($base_path . 'config.'.$phpEx); 

@ include($base_path . 'includes/constants.'.$phpEx);

@ include($base_path . 'includes/functions.'.$phpEx); 

@ include($base_path . 'includes/db.'.$phpEx); 



$sql = "SELECT DISTINCT t.topic_id, t.topic_title, f.forum_name, p.post_id 

  FROM " . TOPICS_TABLE . " AS t, " . POSTS_TABLE . " AS p, " . FORUMS_TABLE . " AS f 

  WHERE 

   t.forum_id = f.forum_id 

     AND f.auth_view = " . AUTH_ALL . " 

     AND p.topic_id = t.topic_id 

     AND p.post_id = t.topic_last_post_id 

  ORDER BY p.post_time DESC LIMIT " . $number;


if ( !($result = @ $db->sql_query($sql)) )

{

   @ $db->sql_close();

   exit;

}


if ($javascript) echo "document.write('";


$i = 0;

while ($row = @ $db->sql_fetchrow($result))

{

   $row['topic_title'] = html_entity_decode($row['topic_title']);

   $row['topic_title'] = stripslashes($row['topic_title']);


   // Przycinanie:

   if (strlen($row['topic_title']) > $maxlength)

   {

      $row['topic_title'] = substr($row['topic_title'], 0, $maxlength);

      if (strstr($row['topic_title'], ' ')) $row['topic_title'] = substr($row['topic_title'], 0, strrpos($row['topic_title'], ' '));

      $row['topic_title'] .= '...';

   }


   // Cenzura:

   $orig_word = array();

   $replacement_word = array();

   obtain_word_list($orig_word, $replacement_word);

   if (count($orig_word)) $row['topic_title'] = preg_replace($orig_word, $replacement_word, $row['topic_title']);


   // Zamiana strony kodowej:

   if (strtolower($charset) == 'windows-1250')

   {

      $row['topic_title'] = strtr($row['topic_title'], "\xA1\xA6\xAC\xB1\xB6\xBC", "\xA5\x8C\x8F\xB9\x9C\x9F");

      $row['forum_name'] = strtr($row['forum_name'], "\xA1\xA6\xAC\xB1\xB6\xBC", "\xA5\x8C\x8F\xB9\x9C\x9F");

   }


   $link = '

’ . htmlspecialchars($row[‘topic_title’]) . ’
‘; echo (!$javascript ? $link . “\n” : addslashes($link)); } if ($javascript) echo "’);"; @ $db->sql_freeresult($result); @ $db->sql_close(); ?>[/code] Ewentualnie można jeszcze wyedytować sekcję oznaczoną jako “SETTINGS”, jeśli nie odpowiadają Ci ustawienia domyślne. Następnie na stronie wstawiasz kod:

[code]<? include “xxx/last.php”; ?>

Gdzie w miejsce xxx wpisujesz ścieżkę do forum.

wielkie dzięki jak wróce do domu to sprawdze :slight_smile:

Aha zapomniałem dodać, że działa to na serwerze z obsługą php.

Raczej logiczne. Jak ma pobrać dane z forum phpbb nawet na innym serwerze to bez PHP się nie obejdzie. :smiley:

PS; Działa bardzo dobrze. :slight_smile:

Nie może być inaczej :wink:

Mam taką małą prośbę do liska , chodzi o to żeby na tym forum zrobić taki plik last.php , bo chętnie dał bym na własną stronę taką wzmiankę. Czekam na odpowiedź (dalej).

Więc jeśli bardzo chcesz, to mogę coś takiego udostępnić w XML-u, odświeżane co jakiś czas. Nie chcę tego wrzucać na “żywca”, żeby ktoś niepotrzebnie nie męczył serwera. Jeśli jesteś zainteresowny, to proponuje na maila lub GG się dogadać.

Witam nie wie ktoś czemu mi to nie działa??

pojawia się:

Warning: include() [function.include]: open_basedir restriction in effect. File(/phpBB/last.php) is not within the allowed path(s): (/home/accounts_b/bartus2003:/tmp) in /home/accounts_b/bartus2003/public_html/portal/main.php(94) : eval()'d code on line 1


Warning: include(/phpBB/last.php) [function.include]: failed to open stream: Operation not permitted in /home/accounts_b/bartus2003/public_html/portal/main.php(94) : eval()'d code on line 1


Warning: include() [function.include]: Failed opening '/phpBB/last.php' for inclusion (include_path='.:/usr/share/pear') in /home/accounts_b/bartus2003/public_html/portal/main.php(94) : eval()'d code on line 1

Podałeś pewnie zły adres

nie podawałem raczej dobry…

ten chciałem wziąć ale też mi nie działa…

http://www.phpbb2.pl/download.php?d=42

Więc wziąłem taki:

<? 


// informacje dotyczace bazy danych 

$sql['host'] = 'localhost'; //host 

$sql['login'] = 'krol'; //login do bazy 

$sql['password'] = 'gilbert'; //haslo do bazy 

$sql['db'] = 'krol_forum'; //nazwa bazy danych 


// polaczenie z baza danych 

mysql_connect($sql['host'],$sql['login'],$sql['password']); 

mysql_select_db($sql['db']); 


// nazwa tabeli w ktorej znajduja się tematy 

$tab['forum_topics'] = "phpbb_topics"; 


$limit['forum_topics'] = 10; // ilosc wyswietlanych tematow 

$limit['forum_signs'] = 15; // dopuszczalna ilosc liter 


$path['forum'] = "http://www.kroldawid.szarego.net/forum/"; // lokalizacja katalogu z forum (do linkow) 


// zapytanie do bazy 

$sql_query = "SELECT topic_id, topic_title FROM ".$tab['forum_topics']." ORDER BY topic_id DESC LIMIT ".$limit['forum_topics']."" or die ("Nie można wykonać zapytania"); 

$result = mysql_query($sql_query) or die ("Nie można wykonać wyniku"); 


// wyswietlanie rekordow 

while($row = mysql_fetch_array($result)) 

{ 

$length = strlen($row['topic_title']); // sprawdzanie dlugosci tytulu 

$row['topic_title'] = substr ($row['topic_title'], 0, $limit['forum_signs']); // obcinanie 

?> 
 <?php echo $row['topic_title']; if($length > $limit['forum_signs']) { echo "..."; } ?>


<? 

} 

?>[/code]


Link do tematów

[code]<? include(www.adres.do/pliku.php’); ?>

:?

A na fora.pl też to bedzie działać.

Jak polączyc sie z katologiem forum ?

A na fora.pl masz dostęp do serwera ?

Pomyśl … to nie boli … :roll:

Niby jak tam wrzucisz ten plik ?

Koniec tematu

Nie potrzebujemy archeologów, a i odpowiedź jest już znana :?