Do pliku functions.php na koncu wstaw:
Kod:
if ( !function_exists('file_get_contents') )
{
function file_get_contents($filename)
{
$file = @fopen($filename, 'rb');
if ( $file )
{
if ( $fsize = @filesize($filename) )
{
$data = @fread($file, $fsize);
}
else
{
$data = '';
while (!@feof($file))
{
$data .= @fread($file, 1024);
}
}
@fclose($file);
}
return $data;
}
}
function pobierz_wystawy($text)
{
$adres = 'http://adres.pl/wyniki.php?wystawa=';
$num = preg_match_all('#\[w\](.*?)\[/w\]#is', $text, $matches);
for($i=0; $i<$num; $i++)
{
if ( is_numeric($matches[1][$i]) )
{
$text = str_replace($matches[0][$i], file_get_contents($adres . $matches[1][$i]), $text);
}
}
return $text;
}
A potem w viewtopic.php zamien
Kod:
'MESSAGE' => $message,
na:
Kod:
'MESSAGE' => pobierz_wystawy($message),
I teraz uzywasz tego w poscie poprzez: [w]32[/w] czyli ID 32 wystawy. W funkcji masz zdefiniowac adres: $adres = 'http://adres.pl/wyniki.php?wystawa='; gdzie musisz podac prawidlowy adres do pliku ktory generuje tabele html z podanego ID to juz jest banalne do zrobienia. Jezeli tego nie zrobisz i uzyjesz tego co napisalem w poscie zostanie wyswietlona cala strona wyniki.php?wystawa=32
Troche lepiej by bylo gdyby te wystawy byly w tej samej bazie danych co phpBB wtedy zamiast funkcji: file_get_contents dalbys funkcje ktora wykonuje zapytanie do tabeli wystaw, pobiera dane i generuje tabelke HTML.
Jednak oba rozwiazania moga troche obciazyc forum gdy w jakims poscie/temacie bedzie bardzo duzo tych wystaw. Innymi slowy jesli mielibysmy uznac takiego moda jako profesionalnego nalezalo by go zmienic - najpierw pobrac tekst wszystkich postow wyswietlanych na stronie, funkcja wyciagnac wszystkie ID wystaw jakie sa uzyte w temacie, pobrac jednym zapytaniem wszystkie dane, wpisac do pamieci (tablicy) i dopiero potem przetwarzac tak kazdy post, zeby zamienial ID na tabele HTML z wystawa. Ale oczywiscie jesli nei masz bardzo duzego forum lub nie bedzie duzo tych wystaw w temacie to nikt nie zauwazy zadnej roznicy w szybkosci.
Autor postu otrzymał pochwałę
phpBB modified by Przemo