![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Czy istnieje mozliwosc refresh display? Moze ktos juz sie z tym zmierzyl. Tpl'ty wyswietlane sa w kolejnosci np. header, body, footer. W momencie operacji logowania, ktora wykonywana jest przed display body a po display header chcialbym zeby header.tpl sie zmienil (i np. na nim wyswietlac "wyloguj").
[php:1:5bccc585c7]<?php $smarty->display('header.tpl'); // operacje logowania dla body // przypisanie np. loginu (w wyniku bylo by np. "Wyloguj jureusz") $smarty->assign('LOGIN',$userlogin); // refresh header ![]() $smarty->display('body.tpl'); ?>[/php:1:5bccc585c7] |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 21.09.2003 Skąd: Truskaw Ostrzeżenie: (0%) ![]() ![]() |
Miałem duużo podobnych problemów ze smarty np. wstawianie title'a do pliku header.tpl po użyciu display. Przekopałem sie przez cały manual smarty i w końcu zrobiłem własny engine
-------------------- ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Generalnie to juz znalazlem rozwiazanie, nieco toporne ale w moim przypadku sie sprawdzilo.
Kod <script>window.location='*.php'</script>
Refresh ... Jezeli jednak ktos znajdzie inny sposob ... to chetnie skorzystam ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Hey
display jest metoda ktorej z zalozenia powinno sie uzywac na samym koncu skryptu po przetworzeniu wszystkich danych , dlatego najprostszym i poprawnym rozwiazaniem jest przesuniecie wszystkich metod display na koniec skryptu. -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 21.09.2003 Skąd: Truskaw Ostrzeżenie: (0%) ![]() ![]() |
tylko ze przypisuje jakieś dane metodą assign i nazwe szablonu do ktorego przypisuję dane podaje sie dopiero przy display
-------------------- ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Cytat tylko ze przypisuje jakieś dane metodą assign i nazwe szablonu do ktorego przypisuję dane podaje sie dopiero przy display
No tak nazwe szablonu podaje sie przy dislpay (lub fetch ), ale nie rozumiem do czego dazysz ? Masz dane przypisujesz je do szablonu i na koncu go wyswietlasz. SMARTY nie musi wiedziec ktorego szablonu uzyje podczas przypisywania zmiennych przez assign. Jesli odwrocisz kolejnosc to pojawiaja sie wlasnie takie problemy jak w pierwszym poscie. -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 21.09.2003 Skąd: Truskaw Ostrzeżenie: (0%) ![]() ![]() |
a co jak np powtórzą sie nazwy w assignach??
-------------------- ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Cytat a co jak np powtórzą sie nazwy w assignach?? To owszem jest bardzo powazny problem przy budowaniu bardzo rozwinietych stron/systemow. SMARTY niestety jak dotat nie oferuje mozliwosci przypisywania zmiennych bezposrednio do danego obiektu szablonu. Poradzic sobie z tym mozna na wiele sposobow. Najprostszym jest uzywanie prefixow czyli np {$header_title} , {$center_content}, ostatnio sam kombinuje z blokami ktore by pozsiadaly wlasna przestrzen nazw. Jednak wyswietlanie czesci szablonu przed koncemdzialania skryptu zdecydowanie jest zlym nawykiem i powoduje powstawanie wielu uciazliwych niedogodnosci.
-------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Cytat display jest metoda ktorej z zalozenia powinno sie uzywac na samym koncu skryptu po przetworzeniu wszystkich danych , dlatego najprostszym i poprawnym rozwiazaniem jest przesuniecie wszystkich metod display na koniec skryptu.
... a jak to wyglada w przypadku gdy roznorodnosc warunkow powoduje zmiane wyswietlen tpl (body) np.: [php:1:cc49ce0f7f]<?php $smarty->display('header.tpl'); if(isset($_GET['cos'])) { $smarty->display('body.tpl'); } else { $smarty->display('body2.tpl'); } ?>[/php:1:cc49ce0f7f] |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 15.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
[php:1:1e34a2ce70]<?php
//$smarty->display('header.tpl'); najlepiej include przez template w pliku *.tpl if(isset($_GET['cos'])) { $schemat='body.tpl'; } else { $schemat='body2.tpl'; } // .... reszta kodu. $smarty->display($schemat); ?>[/php:1:1e34a2ce70] |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 02:37 |