Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Dodatkowa tabela po prawej stronie forum


DawPi

Rekomendowane odpowiedzi

  • Manager

Dodanie takiej tabeli należy podzielić na dwa etapy:

  1. edycja skina ( bitów )
  2. edycja plików .php

Poniżej zaprezentuję opis jakie zmiany należy wprowadzić by uzyskać boczną tabelę z następującymi informacjami:

  • Ostatnie tematy z forum
  • Ostatnie posty z forum

Podgląd:

dp23_boczna_tabela.png

  • Edycja skina
    • Przejdź do:
      ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > Board Index >> PageTop
      na końcu kodu wstaw:
      <table width="100%" border="0" cellpadding="0" cellspacing="2">
      <tr>
      <td valign="top">


      Zapisz bit.

    • Przejdź do:
      ACP > LOOK & FEEL > ( wybór skina ) > Edit Template HTML > Board Index >> stats_header
      na początku kodu wstaw:
      </td>
      <td valign="top" width='250px'>
      <% DP23BAR %>
      </td>
      </tr>
      </table>


      Zapisz bit.

    [*] Edycja plików .php

    Otwórz plik: sources/classes/class_display.php

    Znajdź:

    		$this->ipsclass->skin['_wrapper'] = str_replace( "<% CHARSET %>"		, $this->ipsclass->vars['gb_char_set'], $this->ipsclass->skin['_wrapper']);

    Dodaj poniżej:

    		//-------------------START----------------------
    	// (DP23) right panel by DawPi
    	//-------------------START----------------------
    
    	#ustawienia start
    	$IleTematow	  = 10; //wpisz ile pokazywac ostatnich tematow
    	$IlePostow	   = 5; //wpisz ile pokazywac ostatnich postow
    	$ZablokowaneFora = array( 1, 2, 3 ); //wpisz ID for z ktorych nie powinno pobierac tematow i postow
    	$TnijNazwe	   = 35; //wpisz dlugosc powyzej ktorej linki beda zastapione przez 'Jakas dluga nazwa...'
    
    	#ustawienia koniec
    
    
    #nie zmieniaj nic ponizej!
    
    	$dp23rmenu = "<div class='borderwrap'><div class='maintitle'>Ostatnie tematy</div>";
    
    	$dp23rmenu .= "<table class='ipbtable' cellspacing='1' width='18%'><tr><th width='100%' colspan='2'>Zobacz ostatnie tematy</th></tr>";
    
    	$this->ipsclass->DB->simple_construct( array( 
    									'select' => 'tid, title, last_post',
    									  'from'   => 'topics',
    						 		'where'  => 'forum_id not in (' . implode(',', $ZablokowaneFora ) . ') AND approved = 1',
    						 		'order'  => 'start_date DESC',
    							  'limit'  => array( 0, $IleTematow )
    									  )   );
    
    $this->ipsclass->DB->simple_exec();
    
    while ($rowrm = $this->ipsclass->DB->fetch_row())
      {
    
    	$dp23rmenu .= "<tr><td class='row1'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic=".$rowrm['tid']."\">" . $this->ipsclass->txt_truncate($rowrm['title'], $TnijNazwe ) . "</a></td></tr>";
    
      }
    
    	$dp23rmenu .= "<tr><td class='catend' colspan='2'><!-- no content --></td></tr></table></div>";
    
    	$dp23rmenu .= "<br /><div class='borderwrap'><div class='maintitle'>Ostatnie posty</div>";
    
    $dp23rmenu .= "<table class='ipbtable' cellspacing='1' width='18%'><tr><th width='120px'>W temacie</th> <th width='65px'>Autor</th> <th width='65px'>Data</th></tr>";
    
    		$this->ipsclass->DB->simple_construct( array( 
    									'select' => 'p.pid, p.author_name, p.post_date',
    									'from'   => array( 'posts' => 'p'),
    						 			'where'  => 'queued = 0',
    						 			'add_join' => array( 0 => array( 'select' => 't.tid, t.title, t.last_poster_id, t.starter_name',
    																'from'	=> array( 'topics' => 't' ),
    																'where'   => 't.tid=p.topic_id AND approved = 1',
    																'type'	=> 'inner' ) ),		
    
    							  'order'  => 'pid DESC',
    								  'limit'  => array( 0, $IlePostow )
    									  )   );
    
    $this->ipsclass->DB->simple_exec();
    
    while ($rowrm2 = $this->ipsclass->DB->fetch_row())
      {
    
    	  $data_rm = $this->ipsclass->get_date( $rowrm2['post_date'] , 'LONG', 0 );
    
    	 	$dp23rmenu .= "<tr><td class='row1'> <a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic={$rowrm2['tid']}&view=findpost&p={$rowrm2['pid']}\">" . $this->ipsclass->txt_truncate($rowrm2['title'], $TnijNazwe ) . "</a></td> \n <td class='row2'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showuser=".$rowrm2['last_poster_id']."\">".$rowrm2['author_name']. "</a></td>\n <td class='row2'>{$data_rm}</td> </tr>";
    
      }
    
    	$dp23rmenu .= "<tr><td class='catend' colspan='3'><!-- no content --></td></tr></table></div>";
    
    	$this->ipsclass->skin['_wrapper'] = str_replace( "<% DP23BAR %>" , $dp23rmenu, $this->ipsclass->skin['_wrapper']);
    
    	//-------------------KONIEC----------------------
    	// (DP23) right panel by DawPi
    	//-------------------KONIEC----------------------

    Zwróć uwagę na tę część powyższego kodu:

    		#ustawienia start
    	$IleTematow	  = 10; //wpisz ile pokazywac ostatnich tematow
    	$IlePostow	   = 5; //wpisz ile pokazywac ostatnich postow
    	$ZablokowaneFora = array( 1, 2, 3 ); //wpisz ID for z ktorych nie powinno pobierac tematow i postow
    	$TnijNazwe	   = 35; //wpisz dlugosc powyzej ktorej linki beda zastapione przez 'Jakas dluga nazwa...'

    W którym zawarte są moje komentarz pomagające ustawić odpowiednio tabelkę. Reszta kodu nie powinna być zmieniana - chyba, że wiesz co robisz i robisz to na własną odpowiedzialność.

Gotowe! :blush:

Autorem tutoriala jest DawPi. Zabrania się kopiowania, powielania. W szczególności na inne fora bez zgody autora.

Tutorial wykonany dla www.forum.invisionize.pl

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 50
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

  • 2 miesiące temu...

Witam

Mam mały problem, otóż po wrzuceniu kodu do pliku class_display i wgraniu go na serwer, forum zgłasza następujący komunikat:

Parse error: syntax error, unexpected '(', expecting '}' in /home/virtualki/38330/forum/sources/classes/class_display.php on line 390

Błąd ten jest wynikiem jest wynikiem tego kodu (od razu zaznaczam, że jestem zielony w php...):

$dp23rmenu .= "<tr><td class='row1'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic=".$rowrm['tid']."\">{$this->ipsclass->txt_truncate($rowrm['title'], $TnijNazwe )}</a></td></tr>";

oraz

$dp23rmenu .= "<tr><td class='row1'> <a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic={$rowrm2['tid']}&view=findpost&p={$rowrm2['pid']}\">{$this->ipsclass->txt_truncate($rowrm2['title'], $TnijNazwe )}</a></td> \n <td class='row2'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showuser={$rowrm2['last_poster_id']}\">{$rowrm2['author_name']}</a></td>\n <td class='row2'>{$data_rm}</td> </tr>";
Edytowane przez whan86
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Spróbuj zamienić to:

$dp23rmenu .= "<tr><td class='row1'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic=".$rowrm['tid']."\">{$this->ipsclass->txt_truncate($rowrm['title'], $TnijNazwe )}</a></td></tr>";

Na:

$dp23rmenu .= "<tr><td class='row1'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic=".$rowrm['tid']."\">" . $this->ipsclass->txt_truncate($rowrm['title'], $TnijNazwe ) . "</a></td></tr>";

I to:

$dp23rmenu .= "<tr><td class='row1'> <a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic={$rowrm2['tid']}&view=findpost&p={$rowrm2['pid']}\">{$this->ipsclass->txt_truncate($rowrm2['title'], $TnijNazwe )}</a></td> \n <td class='row2'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showuser={$rowrm2['last_poster_id']}\">{$rowrm2['author_name']}</a></td>\n <td class='row2'>{$data_rm}</td> </tr>";

Na:

$dp23rmenu .= "<tr><td class='row1'> <a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic={$rowrm2['tid']}&view=findpost&p={$rowrm2['pid']}\">" . $this->ipsclass->txt_truncate($rowrm2['title'], $TnijNazwe ) . "</a></td> \n <td class='row2'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showuser=".$rowrm2['last_poster_id']."\">".$rowrm2['author_name']. "</a></td>\n <td class='row2'>{$data_rm}</td> </tr>";

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

A mi się marzy tabela po lewej.

Pierwsza pozycja to pierdolety z panela kontrolnego.

Druga pozycja to dowolnie wybrana aktualna ankieta z forum.

Pozycja trzecia "własna treść" np. buttony, bannerki, linki textowe ^_^

Odnośnik do komentarza
Udostępnij na innych stronach

A mi się marzy tabela po lewej.

Pierwsza pozycja to pierdolety z panela kontrolnego.

Druga pozycja to dowolnie wybrana aktualna ankieta z forum.

Pozycja trzecia "własna treść" np. buttony, bannerki, linki textowe ^_^

Jeżeli interesuje Cię zwykła tabelka po lewej to zapraszam do tematu:

http://forum.invisionize.pl/index.php?showtopic=1626

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...
  • Manager

primo: to jak to chcesz mieć w końcu? Na forum czy na oddzielnej stronie? Bo teraz nie wiem czy pytasz o to w nawiązaniu do swojego poprzedniego tematu czy już nie.

Kolejność zmieniasz w pliku. Rozciągnięcie - ja nie wiem, to naprawdę jakieś przesilenie wiosenne. Nie tak dawno kris2005a założył temat o tym i tam mu pomagałem.

Panowie - naprawdę jest tak źle? :unsure:

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

primo: to jak to chcesz mieć w końcu? Na forum czy na oddzielnej stronie? Bo teraz nie wiem czy pytasz o to w nawiązaniu do swojego poprzedniego tematu czy już nie.

Kolejność zmieniasz w pliku. Rozciągnięcie - ja nie wiem, to naprawdę jakieś przesilenie wiosenne. Nie tak dawno kris2005a założył temat o tym i tam mu pomagałem.

Panowie - naprawdę jest tak źle? :unsure:

UPS, to ja już nic się nie odzywam.

baner_dolny.png
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Nie chodzi o nieodzywanie bo nie taka jest idea forum tylko się zastanawiam, zakładasz nowy temat, podaję Ci link do tego, to Ty piszesz, że nie o to chodzi, za chwilę piszesz tutaj i pytasz co i jak. Chyba rozumiesz, że mogę nie wiedzieć o co Ci chodzi?

Może umówmy się - założyłeś temacik to tam mi napisz co Ty byś chciał. :unsure:

P.s. podtrzymuję myśl, że ktoś inny pisze z Twojego konta. ;)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie chodzi o nieodzywanie bo nie taka jest idea forum tylko się zastanawiam, zakładasz nowy temat, podaję Ci link do tego, to Ty piszesz, że nie o to chodzi, za chwilę piszesz tutaj i pytasz co i jak. Chyba rozumiesz, że mogę nie wiedzieć o co Ci chodzi?

Może umówmy się - założyłeś temacik to tam mi napisz co Ty byś chciał. :unsure:

P.s. podtrzymuję myśl, że ktoś inny pisze z Twojego konta. ;)

Ok. Wielce spodobała mi się ta modyfikacja i postanowiłem ją u siebie odpalić i stąd pytanie w tym temacie co do tego, bo narazie uruchamiam to na forum.

Czy to ten fragment odpowidada z wpisy Ostatnie posty:

$dp23rmenu .= "<br /><div class='borderwrap'><div class='maintitle'>Ostatnie posty</div>";

$dp23rmenu .= "<table class='ipbtable' cellspacing='1' width='18%'><tr><th width='120px'>W temacie</th> <th width='65px'>Autor</th> <th width='65px'>Data</th></tr>";

$this->ipsclass->DB->simple_construct( array(

'select' => 'p.pid, p.author_name, p.post_date',

'from' => array( 'posts' => 'p'),

'where' => 'queued = 0',

'add_join' => array( 0 => array( 'select' => 't.tid, t.title, t.last_poster_id, t.starter_name',

'from' => array( 'topics' => 't' ),

'where' => 't.tid=p.topic_id AND approved = 1',

'type' => 'inner' ) ),

'order' => 'pid DESC',

'limit' => array( 0, $IlePostow )

) );

$this->ipsclass->DB->simple_exec();

while ($rowrm2 = $this->ipsclass->DB->fetch_row())

{

$data_rm = $this->ipsclass->get_date( $rowrm2['post_date'] , 'LONG', 0 );

$dp23rmenu .= "<tr><td class='row1'> <a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic={$rowrm2['tid']}&view=findpost&p={$rowrm2['pid']}\">" . $this->ipsclass->txt_truncate($rowrm2['title'], $TnijNazwe ) . "</a></td> \n <td class='row2'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showuser=".$rowrm2['last_poster_id']."\">".$rowrm2['author_name']. "</a></td>\n <td class='row2'>{$data_rm}</td> </tr>";

}

$dp23rmenu .= "<tr><td class='catend' colspan='3'><!-- no content --></td></tr></table></div>";

$this->ipsclass->skin['_wrapper'] = str_replace( "<% DP23BAR %>" , $dp23rmenu, $this->ipsclass->skin['_wrapper']);

To jego powinienem dać na sam początek?

Ad. P.S. - 4 tydzień nie ruszam się z domu. Brak świeżego powietrza i 16h dziennie przy kompie przestają mi służyć. Wybacz mi moje potknięcia.

baner_dolny.png
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Tylko ten fragment:

$dp23rmenu .= "<br /><div class='borderwrap'><div class='maintitle'>Ostatnie posty</div>";

$dp23rmenu .= "<table class='ipbtable' cellspacing='1' width='18%'><tr><th width='120px'>W temacie</th> <th width='65px'>Autor</th> <th width='65px'>Data</th></tr>";

$this->ipsclass->DB->simple_construct( array(
'select' => 'p.pid, p.author_name, p.post_date',
'from' => array( 'posts' => 'p'),
'where' => 'queued = 0',
'add_join' => array( 0 => array( 'select' => 't.tid, t.title, t.last_poster_id, t.starter_name',
'from' => array( 'topics' => 't' ),
'where' => 't.tid=p.topic_id AND approved = 1',
'type' => 'inner' ) ),

'order' => 'pid DESC',
'limit' => array( 0, $IlePostow )
) );

$this->ipsclass->DB->simple_exec();

while ($rowrm2 = $this->ipsclass->DB->fetch_row())
{

$data_rm = $this->ipsclass->get_date( $rowrm2['post_date'] , 'LONG', 0 );

$dp23rmenu .= "<tr><td class='row1'> <a href=\"{$this->ipsclass->vars['board_url']}/index.php?showtopic={$rowrm2['tid']}&view=findpost&p={$rowrm2['pid']}\">" . $this->ipsclass->txt_truncate($rowrm2['title'], $TnijNazwe ) . "</a></td> \n <td class='row2'><a href=\"{$this->ipsclass->vars['board_url']}/index.php?showuser=".$rowrm2['last_poster_id']."\">".$rowrm2['author_name']. "</a></td>\n <td class='row2'>{$data_rm}</td> </tr>";

}

Reszta jest odpowiedzialna za wyświetlanie na forum.. :unsure:

Tylko pamiętaj o zmianie:

$dp23rmenu .= "<br /><div class='borderwrap'><div class='maintitle'>Ostatnie posty</div>";

Na:

$dp23rmenu = "<br /><div class='borderwrap'><div class='maintitle'>Ostatnie posty</div>";

I odpowiednio odwrotnie przy tematach.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Przy widoku tematu bardziej polecam moduł 'Podobne tematy'.

Choć może ja nie wiem o co chodzi - w którym dokładnie miejscu byś to chciał?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Przy widoku tematu bardziej polecam moduł 'Podobne tematy'.

Choć może ja nie wiem o co chodzi - w którym dokładnie miejscu byś to chciał?

Dokładnie w tym samym co jest i na stronie głównej, ale to tylko niewinne pytanie, bo może i masz rację, że jest to kompletnie zbędne.

baner_dolny.png
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Hm, wiesz, mogę Ci napisać, jak zrobić by było na każdej stronie, ale zauważ, że to dodatkowe dwa zapytania do każdego otwarcia jakiejkolwiek strony. Chcesz bardziej obciążać maszynę?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Hm, wiesz, mogę Ci napisać, jak zrobić by było na każdej stronie, ale zauważ, że to dodatkowe dwa zapytania do każdego otwarcia jakiejkolwiek strony. Chcesz bardziej obciążać maszynę?

I tym mnie przekonałeś :unsure:

Dygresja.

Dziś rano patrzę w staty. Patrzę a moja baza danych to 280MB!! Szok do kwadratu. Zaczynam szukać, patrzeć, sprawdzać stare serwisy i odnajduję. Czyszczę w aniatualnym serwisie spam, a tu 100MB mniej ;)

pozostanę przy tym co jest.

Dzięki.

baner_dolny.png
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Proszę.

Odnośnie czyszczenia bazki to jest dość fajny tutorial w dziale z tutorialami. Na co zwrócić uwagę etc. Spójrz na to przy wolnej chwili.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...
A dało by się tą tabele umiescić na dole forum tak jak jest w vB ?

Gdzie na dole ? Chodzi ci o to by pasek nie konczyl sie Przed Oknem ze statystykami ?

Jeżeli o to ci chodzi to poprostu ten kod :

</td>
<td valign="top" width='250px'>
<% DP23BAR %>
</td>
</tr>
</table>

zamiast dawać na początku w Board Index >> stats_header daj na samym koncu w Board Index >> Stats_footer ;)

EDIT: Sorki dopiero teraz zrozumialem dokladnie o co ci chodzi - Skasujcie ten post.

Edytowane przez C4M3L3ON
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.