![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie forumowiczów po dłużej absencji.
Zwracam się do Was z prośbą o pomysł. Chcę stworzyć portal o ścisłej tematyce. Będzie to portal dostarczający informacji z konkretnej dziedziny. Z założenia będzie tam sporo funkcjonalności, dlatego chcę go stworzyć tak aby to miało 'ręce i nogi'. Nie chcę się pchać w jakiś framework z prostych przyczyn: 1. system nie będzie aż tak rozbudowany 2. nie znam po prostu żadnego i nie zamierzam się uczyć Ten portal ma być hobbistyczny, co w połączeniu z pewnymi umiejętnościami programistycznymi może dać fajny efekt. Chciałem zrobić coś na zasadzie takiej struktury: public_html
itd. W każdej z tych podstron chcę mieć konkretne moduły, które mogę włączać / wyłączać wygodnie w panelu admina i przechowywać te dane w bazie. Te moduły to będą proste 'kafelki' z lewej, bądź z prawej strony, w zależności gdzie są ustawione. Mój wybór padł na smarty jako, że trochę na wakacjach w pracy liznąłem tego systemu i całkiem nieźle to wygląda. Jednak o ile się orientuję (może mylnie) to po zainstalowaniu smartów w index.php i podaniu konkretnej ścieżki do templatek będzie to obsługiwało tylko pliki w katalogu głównym. Ja jednak chciałbym móc tworzyć nowe foldery np. public_html/modules/shoutbox/ a w nim struktura odpowiedzialna tylko i wyłącznie za moduł shoutboxa (to tylko czysto teoretyczny przykład). Czy w takim wypadku do każdego modułu powinienem tworzyć index.php który będę includował np. w pliku artykul.php oraz w tym indexie znów instalować jakoś smarty żeby mi pobrało templatkę z podkatalogu np. public_html/modules/shoutbox/templates/ ? Nie mogę tego zbyt dobrze pojąć, stąd moje pytanie - jak Wy byście coś takiego rozwiązali ? Czy są jakieś darmowe systemy które coś takiego podobnego wykorzystują ? szukałem po systemach for, wordpressach i innych takich ale nie znalazłem rozwiązania. Musi to być rozwiązanie proste i spełniające swoją rolę, bo znudziło mi się mieszanie html + php w jednych plikach. Z góry dziękuję za podpowiedzi. Pozdrawiam serdecznie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 884 Pomógł: 231 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Ale przecież możesz sam stworzyć sobie taki prosty system:
index.php szablon.html /moduly/ w szablonie masz zmienne tekstowe np {{Naglowek}}, {{Menu}}, {{ModulA}} itd które potem zamieniasz przy pomocy funkcji z index.php na treść którą umieszczasz gdzie indziej np. odnosisz się do modułów lub bazy danych. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ale przecież możesz sam stworzyć sobie taki prosty system: index.php szablon.html /moduly/ w szablonie masz zmienne tekstowe np {{Naglowek}}, {{Menu}}, {{ModulA}} itd które potem zamieniasz przy pomocy funkcji z index.php na treść którą umieszczasz gdzie indziej np. odnosisz się do modułów lub bazy danych. myślałem o takim rozwiązaniu i wydaje mi się idealne, tylko nie wiem jak zrobić jedną rzecz - jak w katalogu /moduly/shoutbox/ wykorzystać smarty tak, aby po zaincludowaniu /moduly/shoutbox/index.php pobierało mi templatkę z /moduly/shoutbox/templates/index.tpl ? Wtedy system spełniałby swoją funkcjonalność jak dla mnie. Pozdrawiam. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 189 Pomógł: 13 Dołączył: 20.09.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Z mojej strony wydaje się, że nie ma sensu pchać się w smarty. Nie wystarczą ci includowane *.phtml? I tak - sądząc po opisie tego, co robisz - nie zamierzasz stosować się do jakichś poważniejszych zasad. Obsłuż sobie po prostu gdzieś wczytywanie szablonu z PHTML w dowolnym miejscu (dla /moduly/shoutbox/index.php będziesz musiał pobrać nazwę pliku - __FILE__ - a później doklejasz tylko templates i rozszerzenie szablonu).
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
hmm... nie mogę znaleźć nigdzie konkretnej informacji jak wygląda taki plik ... ale z tego co wyczytałem to nie jest jednak dalej pomieszane html z php ? tego jednak chcę uniknąć :/ chciałbym mieć tak jak w smartach - jeden plik odpowiedzialny za logikę - tak jak shoutbox.php oraz w katalogu templates inny, który przechowywałby tylko html - jak np. /templates/shoutbox.tpl . To byłoby idealne rozwiązanie.
Pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
phtml to nic innego ja system szablonów oparty o znaczniki php a nie jakieś nakładki. Krótko to phtml jest skompilowaną wersją innych systemów szablonów typu smarty, twig itp.
Uzywasz znaczników php do wyświetlania, pętli itd. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli de facto tak jakbym stworzył sam plik shoutbox.php i w nim pobierał dane oraz wyświetlał ? Trochę to dziwne według mnie, chyba że czegoś nie rozumiem do końca. Tworzę plik shoutbox.php oraz shoutbox.phtml ? Czy tylko ten drugi ?
@edit: A czy mocno obciążające będzie jeśli w każdym katalogu takiego swojego modułu będę tworzył instancję jakiegoś systemu szablonów ? w sensie includował po prostu smarty z katalogu głównego, tworzył obiekt i to będzie mi obsługiwało templatkę ? (smarty bądź jakieś opt) Pozdrawiam Ten post edytował Mefiuu 22.10.2015, 17:49:53 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 189 Pomógł: 13 Dołączył: 20.09.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Nie, nie musisz w nim pobierać danych. Po prostu includując go, masz do tych danych dostęp. Jeśli includujesz w obiekcie, masz dostęp tylko dodanych dostępnych obiektowi - scope zależny od miejsca includowania.
//edit: Nie polecam tworzyć instancji obiektu obsługującego szablon dla każdego katalogu (przynajmniej w przypadku smarty) - wtedy robi się syf, nad którym w skrajnych przypadkach trudno zapanować. Ten post edytował czychacz 23.10.2015, 11:22:26 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 19:05 |