ďťż

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ć?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • showthemusic.xlx.pl
  • Copyright (c) 2009 iza7845 | Powered by Wordpress. Fresh News Theme by WooThemes - Premium Wordpress Themes.