Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHPBB PRZEMO] Dodanie elementu na końcu tematu
Forum PHP.pl > Forum > PHP
Mody23
Witam!

Wiem, że to nie support phpbb by przemo, ale myślę, że to nie ma znaczenia.
Chodzi o to, że od tygodnia zmagam się z problemem. Otóż chcę dodać pewien element na końcu każdego tematu, więc wykorzystałem Panią Reklamę, która dodaje dany tekst na końcu tematu. Ale jest jeden problem. Jeśli temat jest duży i zawiera paginację strony to wtedy dany element wyświetla się, np. na stronie 1, 2 i 3. Jak zrobić aby wyświetlał się tylko na trzeciej (ostatniej) ? ohno-smiley.gif

Pozdrawiam!
Michał,
markonix
No widzisz sam napisałeś że to nie support PHPBB BY PRZEMO tak więc albo licz, że ktoś się w tym bawił albo wrzuć kod, który jest odpowiedzialny za Panią reklamę (głównie za jej wstawienie).
Mody23
Kod jest nie ważny. Chodzi o to, że co dodasz w pliku viewtopic_body.tpl po znacznkiku <!-- END postrow --> zostanie wyświetlone pod ostatnim postem, ale na każdej stronie (jeśli występuje paginacja). I trzeba by coś wykombinować, aby występowało tylko na ostatniej stronie. Zrobiłem coś takiego i wrzuciłem w viewtopic.php:
  1. if($i == 1 - 1) {
  2. } elseif($forum_topic_data['topic_last_post_id'] == $postrow_post_id || ($i + 1) % $board_config['posts_per_page'] == 0) {
  3.  
  4. $template->assign_vars(array(
  5. 'LPOST' => TRUE
  6. ));
  7. }


A teraz w viewtopic_body.tpl:

  1. <!-- BEGIN LPOST -->
  2. MOJ KOD
  3. <!-- END LPOST -->


Niestety. Teraz nic się nie wyświetla.

Ma ktoś jakiś pomysł? :/
markonix
Jeśli jest to system szablonów typu SMARTY to posiada on obsługę instrukcji warunkowych, czy nawet PHP.
Wyłap sytuacje gdy to nie jest ostatni page.

Ostatecznie i tak sądzę, że "Pani reklama" to nie jest na sztywno dodany post w templacie, bo za każdym razem przy zmianie grafiki musiałbyś to modyfikować.
Mody23
http://www.przemo.org/phpBB2/forum/viewtop...t=77177,start,0

Zwykły HTML :/ Właśnie przeszukałem cały support, żeby to wyciągnąć z czegoś i za cholerę :/

EDIT:

Mam! Jest coś takiego jak szybka odpowiedź. Pole z wpisaniem wiadomości występuje ZAWSZE na ostatniej stronie. Tylko teraz nie wiem za bardzo jak wyciągnąć ten kawałek kodu, który za to odpowiada.
wujek2009
Kod
    $template->assign_vars(array(
        'LPOST'    =>    TRUE
    ));


jak już stosujesz taki zapis, to używasz w widoku:
Kod
<!-- IF LPOST -->
warunek spełniony
<!-- ENDIF -->


na BEGIN jest inna funkcja
Mody23
Zgadza się, jednak mój kod jest zły. Nie należę do wymiataczy jeśli chodzi o PHP i na bank coś tam jest nie tak :/ Bo teraz jak dodałem z IF LPOST to nic się nie zmienia. Wiadomość zostaje wyświetlana na każdej stronie, tak jak było.
wujek2009
Dzisiaj mam po prostu pustkę w głowie i nie potrafię napisać również warunku, który spełni Twoje wymagania. Twój problem nie należy do najtrudniejszych, ale po prostu mam chwilowe zaćmienie.

  1. viewtopic.php
  2.  
  3. if ( $all_pages != $current_page )
  4. {
  5. $template->assign_vars(array(
  6. 'LAST_POST_BANNER' => TRUE
  7. ));
  8. }


dodaj przed:
  1. if ( $show_reject_panel && $forum_topic_data['forum_moderate'] && $is_auth['auth_mod'] )


użycie:
Kod
<!-- IF LAST_POST_BANNER -->
tylko na ostatniej stronie
<!-- ENDIF -->
Mody23
Cholera nadal występuje wszędzie. Cache poczyściłem. Ale dzięki za chęci =*

A może powodem jest to, że ja to umieszczam pod <!-- END postrow --> questionmark.gif

Jest tak:

<!-- END postrow -->
<!-- IF LAST_POST_BANNER -->
MOJ TEKST
<!-- ENDIF -->
wujek2009
dobra, łap pełną instrukcje u mnie działa;

  1. // viewtopic.php
  2.  
  3. find:
  4. $all_pages = ceil($total_replies / $user_posts_per_page);
  5.  
  6. after add:
  7.  
  8. if ( $current_page == $all_pages ) {
  9. $template->assign_vars(array(
  10. 'POMPA' => TRUE
  11. ));
  12. }


Kod
// viewtopic_body.tpl
// @use:

<!-- IF POMPA -->
    <h1>POMPA!</h1>
<!-- ENDIF -->
Mody23
Nie no, jesteś wielki...Dzięki stary ! =*
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.