![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 0 Dołączył: 13.02.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Oto mój problem : mam klasę strona.inc
pozniej plik index.php
funkcja wyswietl body na podstawie urla includuje opowiedni plik, co onzacza, ze zawsze operujemy na pliku index.php i teraz moj problem, mamy np. podstrona.php, ktora jest includowana do czesci body i chcemy w niej zmienic pole tytul
rzeczywiscie po wpisaniu echo $this ->tytul, tytuł rzeczywiście jest zmieniony, ale w gornym pasku przegladarki pozostaje poprzedni. Czy mozna cos na to poradzic z poziomu strony "podstrona.php", czy jedyne wyjscie to odpowiedni kod w pliku index.php, ktory bedzie dawal konstruktorowi opcjonalny parametr tytul ? Mam nadzieje, ze to w miare jasno wytlumaczylem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Z gory dzieki |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
protected $tytul
zamień na public $tytul |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
bim2 - nie w tym rzecz. Przecież ta klasa może korzystać z własnego pola protected.
Analizowałem Twój kod, angerthor i dochodzę do wniosku, że z ogólną koncepcją jest coś nie tak: wyświetlasz stronę nadając jej tytuł w konstruktorze, potem wyświetlasz title za pomocą metody wyswietl() a potem tresc w body. Ale jeżeli w tej tresci body zmienisz title to żeby go wyświetlić w pasku przeglądarki, musiałbyś ponownie wyświetlić fragment kodu z <title>. Ale jeżeli przeładujesz stronę - cały proces powtórzy się od nowa i znowu będziesz miał domyślnie przydzielony title w konstruktorze + zmienną ustawioną na nowy tytuł ale niewyświetloną. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 0 Dołączył: 13.02.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
No właśnie tak samo myślę. Zastanawiałem się tylko czy to można jakoś obejść (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) , ale jak się nie da to trudno.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 23.12.2008 Skąd: Radzionków Ostrzeżenie: (0%) ![]() ![]() |
renderowanie kodu powinno byc na koncu - robienie takiego spaghetti jest zlym pomyslem, oczywiscie jak sie upierasz przy tym rozwiazaniu mozna
napisac funkcje wyswietlbody ktora podmienia title i zwraca string (kod html) przypisac go do zmiennej $body a potem dopiero wyswietlic wszystko w templatce |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 0 Dołączył: 13.02.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
oky, to proszę napiszcie, czy moja koncepcja jest optymalna:
Opierajac sie na formie strony z pierwszego postu doszedlem do wniosku, ze aby zmieniac temat zamieszcze odpowiedni kod w pliku index.php, tam gdzie jest wywolywany konstruktor. Mój problem: mam stronę z różnymi podstronami, m.in. z artykułami. Na wszystkich podstronach chce mieć title="moja www", na stronie z artykułami chcę mieć title="tytuł" pobrany z bazy danych. Rozbijając urla mogę się dowiedzieć, czy ten url prowadzi do artykułu, czy do jakiejś innej podstrony, i modyfikując plik index.php mam :
czy taka koncepcja jest w miarę wydajna ? Pytam bo dopiero nie dawno przestawiłem się ze strukuralnego php, na obiektowy i do konca nie jestem pewien czy moj kod jest wydajny ;P |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 0 Dołączył: 13.02.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
fakt, wielki dzięki,
a jeszcze takie pytanie ogólne: czy lepiej jest tworzyć wszystkie settery (np. setTitle, setDesciption, setSth itd.), czy stworzyc jedna funkcje __set ?
i pozniej juz tylko
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli __set() ma tak wyglądać to lepiej go nie robić.
|
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Przenoszę na PHP.
Pozdrawiam! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 23:14 |