Wyświetlanie tematów z danego działu forum na stronie...
Wyświetlanie tematów z danego działu forum na stronie...
ZLoMik - 03-15-2009 03:06 PM
Witajcie,
Tworze sobie forum na vB, chce jednak żeby tematy z danego działu wyświetlały się na stronie, dzięki tematowi http://vbhelp.pl/artykua-y-faq-f22/a...cja-t2850.html zrobiłem sobie tabele "ostatnie tematy na forum", próbowałem również przerobić ten skrypt tak aby wyświetlał prócz tytułu tematu również jego treść, jednak w tabeli `thread` nie ma kolumny odpowiadającej za treść posta, natomiast w tabeli `post` nie ma kolumny odpowiadającej za id forum...
Szukałem już praktycznie wszędzie, jednak nie znam się na tym tak dobrze aby napisać swój skrypt od podstaw, bardzo proszę o naprowadzenie mnie na dobrą drogę, lub przedstawienie gotowego skryptu...
Pozdrawiam
falon - 03-15-2009 03:36 PM
użyj vbadvanced
ZLoMik - 03-15-2009 03:56 PM
Nie chce robić strony na vBadvanced ; - )
falon - 03-15-2009 04:34 PM
a to?
http://www.vbulletin.org/forum/showt...ghlight=tabbed
MatKus - 03-15-2009 04:42 PM
a to?
http://www.vbulletin.org/forum/showt...ghlight=tabbed Sorki, ale co to ma wspólnego z własną stroną?
Tak w skrócie skrypcik, który musisz sobie dopracować.
Na początku skryptu :
chdir('./forum');
require_once('./global.php');
require_once('./includes/class_bbcode.php');
chdir('./..');
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
tutaj się gdzieś łączysz z bazą danych. zakładam, że wiesz jak.
No i gdzieś później
$dzial=1; // zmienic na taki, z ktorego to ma sie wyswietlac.
$ilosc=5;
$query="SELECT threadid,title,postusername FROM thread WHERE forumid=$dzial ORDER BY threadid DESC LIMIT $ilosc";
$lista_t=mysql_query($query);
while ($temat=mysql_fetch_array($lista_t))
{
$psql = mysql_query("SELECT pagetext , dateline FROM post WHERE threadid=".$temat['threadid']." ORDER BY postid ASC LIMIT 1");
$post=mysql_fetch_array($psql);
$news['pagetext']=$bbcode_parser->parse($post['pagetext']);
$news['title'] = $temat['title'];
$news['threadid'] = $temat['threadid'];
$news['postusername'] =$temat['postusername'];
$news['date']=date ("d.m.y H:i" ,$post['dateline']);
TUTAJ WYŚWIETLASZ NEWSA CZY DO CZEGO TAM CHCESZ UŻYĆ TEGO SKRYPTU
}
Pisane w zasadzie z pamięci, więc jak jakieś błędy są, to trzeba poprawić :)
można by też to zapewne poprawić tak, żeby szło tylko jedno zapytanie jako całośc zamiast do każdego posta osobno, ale mi się nie chce myśleć teraz :)
ZLoMik - 03-15-2009 04:48 PM
@falon
Niestety z tego co mi się udało "wytestować" to ta modyfikacja to coś w stylu "ostatnie tematy z forum" ; (
@Matkus
Dzięki już sprawdzam ;
@edit
Więc dodałem połączenie z bazą i teraz gdy próbuje odpalić skrypt wywala mi błąd
Unable to add cookies, header already sent.
File: /home/abcd/domains/strona.pl/public_html/newsy.php
Line: 1
falon - 03-15-2009 05:26 PM
Matkus ale ja nie widzę w wątku że to ma być na osobnej strone.
Zlomik to można ustawić na konkretne id for żeby wyświetlało, każdą z zakładek możesz personalizować osobno i nadawac tytuły zakładek oczywiście. Myślę żemożna to zrobić żeby było na osobnej stronie. Ja używam wersji dla vbadvanced i jestem zadowolony. Do tego mam to przerobione ze pokazuje mi wątki w inny lepszy sposób.
Zajrzuj tutaj: http://vbhelp.pl/php-mysql-ajax-f36/...ced-t2946.html
Na pierwszym zdjęciu jest pokazane co to ci daje a na drugim przykład podobny do tego jak mam to przerobione.
MatKus - 03-15-2009 05:31 PM
Więc dodałem połączenie z bazą i teraz gdy próbuje odpalić skrypt wywala mi błąd
Unable to add cookies, header already sent.
File: /home/abcd/domains/strona.pl/public_html/newsy.php
Line: 1 Ten wstęp, co napisalem, czyli includowanie tych 2 pierwszych plików, musi nastąpić zanim choć 1 bajt poleci do klienta, czyli zanim cokolwiek gdziekolwiek wyświetlisz.
falon : napisał, że chce coś z forum mieć na stronie, podał linki do poradnika traktującego o tym, jak zrobić coś we włąsnym skrypcie, więc z tego można wywnioskować, że chce mieć coś na osobnej stronie, własnej. Po za tym potwierdził to kodem błędu :)
ZLoMik - 03-15-2009 06:02 PM
Jeżeli chodzi o php to jeszcze mało co pojmuję, no więc niestety trochę tego nie rozumiem...
Czy mniej więcej tak ma wyglądać mój skrypt? :- /
<?php
chdir('./forum');
require_once('./global.php');
require_once('./includes/class_bbcode.php');
chdir('./..');
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
$polaczenie = @mysql_connect('localhost', 'baza_baza', 'haslo')
or die('Brak połączenia z serwerem mysql. Błąd: '.mysql_error());
$db = @mysql_select_db('baza_baza', $polaczenie)
or die('Nie mogę połączyć się z bazą danych. Błąd: '.mysql_error());
$dzial=3; // zmienic na taki, z ktorego to ma sie wyswietlac.
$ilosc=5;
$query="SELECT threadid,title,postusername FROM thread WHERE forumid=$dzial ORDER BY threadid DESC LIMIT $ilosc";
$lista_t=mysql_query($query);
while ($temat=mysql_fetch_array($lista_t))
{
$psql = mysql_query("SELECT pagetext , dateline FROM post WHERE threadid=".$temat['threadid']." ORDER BY postid ASC LIMIT 1");
$post=mysql_fetch_array($psql);
$news['pagetext']=$bbcode_parser->parse($post['pagetext']);
$news['title'] = $temat['title'];
$news['threadid'] = $temat['threadid'];
$news['postusername'] =$temat['postusername'];
$news['date']=date ("d.m.y H:i" ,$post['dateline']);
TUTAJ WYŚWIETLASZ NEWSA CZY DO CZEGO TAM CHCESZ UŻYĆ TEGO SKRYPTU
}
?>
MatKus - 03-15-2009 06:05 PM
coś w tym stylu powinno zadzialac, o ile ten skypt nie jest włączany z innego, który już coś wyświetlił wcześniej.
Ctrl - 03-15-2009 06:32 PM
$dzial=3; // zmienić na taki, z którego to ma się wyświetlać. Chyba id działu?
ZLoMik - 03-15-2009 07:04 PM
Skrypt nie wyświetla tego błędu: Unable to add cookies, header already sent.
File: /home/abcd/domains/strona.pl/public_html/newsy.php
Line: 1 jeżeli usunie się ten kawałek kodu:
chdir('./forum');
require_once('./global.php');
require_once('./includes/class_bbcode.php');
chdir('./..');
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
Jednak z tego co widzę ten kod odpowiada bbcode, niestety chyba będę musiał sobie poradzić bez niego, co będzie bardzo uciążliwe ale przynajmniej wszystko działa ; - /
Inspiracja - 03-19-2009 10:59 AM
Skrypt nie wyświetla tego błędu: Unable to add cookies, header already sent.
File: /home/abcd/domains/strona.pl/public_html/newsy.php
Line: 1 jeżeli usunie się ten kawałek kodu:
chdir('./forum');
require_once('./global.php');
require_once('./includes/class_bbcode.php');
chdir('./..');
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
Jednak z tego co widzę ten kod odpowiada bbcode, niestety chyba będę musiał sobie poradzić bez niego, co będzie bardzo uciążliwe ale przynajmniej wszystko działa ; - / Upewnij się czy przed rozpoczęciem skryptu nie masz żadnych spacji...
Mi po użyciu tego skryptu wyświetla się natomiast coś takiego:
Fatal error: Call to a member function query_read() on a non-object in /home/****/domains/*****.net/public_html/forum/includes/class_bbcode.php on line 581 Z tego co zauważyłem linijka 581, oraz kilka w dół odpowiada za emotki(?) $smilies Jakieś pomysły?
Inspiracja - 03-20-2009 11:05 AM
Odświeżam!
// we have to get the smilies from the database
DEVDEBUG('querying for smilies');
$this->registry->smiliecache = array();
$smilies = $this->registry->db->query_read("
SELECT *, LENGTH(smilietext) AS smilielen
FROM " . TABLE_PREFIX . "smilie
ORDER BY smilielen DESC
");
while ($smilie = $this->registry->db->fetch_array($smilies))
{
if (!$do_html)
{
$find = htmlspecialchars_uni(trim($smilie['smilietext']));
}
else
{
$find = trim($smilie['smilietext']);
}
// if you change this HTML tag, make sure you change the smilie remover in code/php/html tag handlers!
if ($this->is_wysiwyg())
{
$replace = "<img src=\"$smilie[smiliepath]\" border=\"0\" alt=\"\" title=\"" . htmlspecialchars_uni($smilie['title']) . "\" smilieid=\"$smilie[smilieid]\" class=\"inlineimg\" />";
}
else
{
$replace = "<img src=\"$smilie[smiliepath]\" border=\"0\" alt=\"\" title=\"" . htmlspecialchars_uni($smilie['title']) . "\" class=\"inlineimg\" />";
}
$sc["$find"] = $replace;
$this->registry->smiliecache["$smilie[smilieid]"] = $smilie;
}
}
return $sc;
}
Linijka 581: $smilies = $this->registry->db->query_read("
vDk - 07-23-2009 10:01 AM
Witam, wiem że trochę odkopuje, ale mam ten sam problem co panowie wyżej, mianowicie wywala jeden błąd:
Fatal error: Call to a member function query_read() on a non-object in /forum/includes/class_bbcode.php on line 581 Wie ktoś może co jest jego przyczyną, oraz jakieś naprowadzenie jak mogę to poprawić?