![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 4.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Piszę bardzo łatwy system szablonów, taki najprostszy. Ogólnie koncepcja jego działania polegała by na: - sprawdzenie wybranego języka (w wersji uproszczonej na potrzeby pewnego projektu wczytywany będzie za pomocą include polski język) - wczytywanie configa, etc. - jeśli $_GET['strona'] != null includuje stronę o nazwie $_GET['strona'].php - jeśli $_GET['strona'] == null pobiera treść "powitania" na stronie i includuje plik news.php i przypisuje wszystko do tablicy $tresc np. $tresc['powitanie'] (tu zaczną się schody, opiszę to dalej) - jeśli $raporter != null usuwa poprzednie wartości tablicy $tresc i nadpisuje ją treścią raportera (raporter - system wyświetlania wiadomości - np. "Pomyślnie dodałem newsa do bazy danych" albo "Błąd podczas łączenia się z bazą danych".) W taki mniej więcej sposób działał będzie system php, który będzie umieszczony w pliku index.php Poniżej znajduje się funkcja, która pobierze odpowiedni szablon z folderu tpl. Mój problem polega na tym, że wiem jak wyświetlać zwykłą treść, np powitanie będzie miało postac $tresc['powitanie'] i tyle, ale jak wyświetlić cały system newsów? newsy w pliku news.php odczytywane są za pomocą pętli, więc nie bardzo wiem jak przyporządkować je do jednej zmiennej. Poza tym w starym systemie strony w pliku news.php są divy pomagające wyświetlić w ładny sposób newsy. To zadziała gdy szablon strony się nie zmieni. A co jeśli styl narzucony przez news.php nie będzie pasował do całego tpl? Poza tym news.php będzie zawierał w sobie stronicowanie. Może wydawać się to trochę skomplikowane dlatego wrzucę kod
Jak widać w linijce np. 8 został użyty div "news_tytul". Resumując - jak umieszczać system newsów za pomocą zmiennej $tresc['...']? To samo pytanie można by zadać jeśli chodzi o logowanie includowane z pliku logowanie.php (ale tu już łatwiej - jeśli nie zalogowany $tresc['logowanie'] to formularz, a jeśli zalogowany to np. Witaj $_SESSION['nick']) Jeśli macie jakieś rady, ciekawe "sztuczki" odnośnie systemu szablonów to poradźcie mi ![]() -------------------- Blog |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
piszesz system szablonów, to może zobacz najpierw jak takie najprostsze działają; to co teraz wysłałeś to mieszanie logiki z widokiem, a w to się nie baw, bo do niczego dobrego Cie to nie doprowadzi.
popatrz na ten prosty przykład:
w pliku sciezka/do/pliku/szablon.php: tutaj piszemy tabelkę z wynikami: (pamiętaj o zagnieżdzaniu PHP w HTML, nie odwrotnie)
jak taka najprostsza klasa systemu szablonów powinna wyglądać ? mniej-więcej tak:
mam nadzieję, że choć trochę pomogłem w zrozumieniu ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 4.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
A strukturalnie się jakoś tego nie da? :/
Patrzyłem jak takowe działają, myślę, że rozumiem, ale to wszystko to obiektówka (niestety) Ten post edytował ZuyPan 20.07.2010, 09:25:39 -------------------- Blog |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Taką klasę możesz wykorzystać w strukturalnym kodzie, nie musisz używać pełnego OOP, po prostu włączasz ją do projektu i używasz w sposób jaki zaprezentowałem. Dlaczego niestety obiektówka ?
![]() Ten post edytował Quantum 20.07.2010, 09:31:02 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 4.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Niestety ponieważ ten sposób programowania jest dla mnie jak gonitwa po całym kodzie. Nie potrafię go zrozumieć, jak dla mnie wymaga on znajomości ogromu funkcji, które ja pierwszy raz widzę. Najprościej w świecie nie rozumiem tego sposobu i raczej już tak pozostanie.
Co do wykorzystania tego u mnie no to ok, ale jeśli zaczął bym używać tego w jednym miejscu, to cały skrypt w końcu by się od tego uzależnił. Poza tym nie muszę chyba mówić, że skoro to jest obiektówka to: a - nie rozumiem tego b - nie umiał bym tego stosować a na dokłądkę (ale to już ode mnie) c - kiepski ze mnie programista Co do systemów takich jak smarty etc. Daj spokój... Gubię się w takich kombajnach, 5 minut temu pobrałem otp i stwierdziłem "Boże co za idiotyzm" - kosz. Jak na 3 lata programowania (oczywiście nie regularnie) nie umiem praktycznie nic. Nie winie tu nikogo bo pretensje mogę mieć jedynie do siebie, no ale cóż... Tak czy siak choćbym chciał to pewnie tego nie dam rady zrobić Ten post edytował ZuyPan 20.07.2010, 09:38:37 -------------------- Blog |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Również nie używam OPT czy Smarty, mają własne pseudo-języki, na które nie opłaca mi się tracić czasu, a jeżeli zwykły PHP zagnieżdzony w widoku spełnia swoją rolę - kompletnie nie widzę takiej potrzeby. Co do obiektówki - jeżeli ją zrozumiesz powiesz to samo o strukturalnym co przed chwilą powiedziałeś o OOP. Jest dużo łatwiej zarządzać projektem, który ma rozdzielone zadania na kilka mniejszych klas spełniające jedną rolę. W strukturalnym odwrotnie - totalny bałagan w kodzie. Po kilku dniach przerwy wracasz do kodu i nie masz pojęcia jak to napisałeś, że działa (lub już nie)
![]() pozdrawiam. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Programujesz 3 lata w php i celowo unikasz obiektówki? Lepiej, dla własnego dobra, jak najszybciej opanuj chociaż podstawy programowania obiektowego, a szybko zauważysz same zalety.
Kto chce - dąży do rozwiązania problemu, kto nie chce - wymyśla przeszkody. Ty należysz raczej do tej drugiej grupy. Pozostawię bez komentarza nazywanie czegokolwiek idiotyzmem, tylko dlatego, że się tego nie rozumie (i nie chce zrozumieć). -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 4.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czyli Wasza rada to: powtórzyć kurs php a potem obiektówka? Nie powiem aby mi się to specjalnie uśmiechało, ale cóż...
-------------------- Blog |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Czyli Wasza rada to: powtórzyć kurs php a potem obiektówka? Nie powiem aby mi się to specjalnie uśmiechało, ale cóż... Szybko docenisz zalety oop. Powodzenia i owocnej nauki. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 10:41 |