Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Księga gości OOP
Forum PHP.pl > Forum > PHP
gorky_park
Witam,
mój problem jest dość specyficzny i nie zadałem sobie trudu w przeszukiwaniu tego forum gdyż odpowiedź jakiej poszukuje jest mocno skonkretyzowana.
Jako pierwszą w pełni obiektową aplikację do napisania wybrałem sobie księgę gości. Będzie ona napisana w konwencji MVC. Problemem, jak sie okazuje, nie do przejścia okazał się system wyświetlania treści. Zaprojektowałem prosta klasę, która ładuje plik o rozszerzeniu tpl i parsuje go w taki sposób, że zamienia napisy umieszczone w nawiasach klamrowych "{}" na treść odpowiadającą im w tablicy asocjacyjnej, będącą zbiorem wyników zapytania do bazy danych. Skoro księga gości jest dajmy na to jednym "divem - kontenerem" a wszystkie wpisy wyświetlają się w mniejszych divach, to jakiego algorytmu użyć aby każdy wpis pobierany z bazy umieszczać w osobnym, "mniejszym" bloku. Zdaje sobie sprawę iż to co napisałem jest mało zrozumiałe winksmiley.jpg więc postaram sie opisać mój sposób myślenia:

1. Pobierany jest plik index.tpl
2. Klasa szuka wszystkich słów w nawiasach klamrowych takich jak np: {AUTOR}{DATA}{TRESC}
3. Jeśli w bazie danych jest więcej niż jeden wpis to w takim wypadku powyższe tagi powinny się znaleźć więcej niż jeden raz i w większej ilości divów
4. Jak wiadomo plik index.tpl jest "sztywny" czyli wyświetli sie tylko ten ostatni pobrany wpis, który nadpisze pozostałe

Co chcę osiągnąć:
Funkcja która zgromadzone wpisy (ilość nieokreślona) będzie wyświetlać każdy w osobnym divie, które będą składową jednego dużego bloku tekstowego. Uważam problem za dosyć interesujący ale jeśli ktoś zna inny sposób rozwiązania tego problemu to bardzo chętnie go wysłucham.
Zdaję sobie sprawę, że coś tak trywialnego można napisać w jednym pliku ale pamiętać należy, że jeśli chcemy się rozwijać to należy poprzeczkę stawiać wysoko i nie iść na łatwiznę ale starać się podnosić kwalifikacje i dążyć do profesjonalizmu.

PS: wiem co to Smarty(i cała reszta Frameworków winksmiley.jpg ale gdybym chciał ich używać to tematu na tym forum bym nie zamieścił.
Exek
taa... dużo, niby mądrze, ale za cholerę nie wiadomo o co dokładnie chodzi.

Zrozumiałem, że po prostu chcesz zrobić odpowiednik foreach dla swojego tpl?
VGT
po mojemu musisz po prostu nauczyc swoj silnik obslugi petli

szablon.tpl:
  1. <div class="ksiega">
  2. {foreach}
  3. <div class="wpis">
  4. <strong>{autor}</strong>
  5. <p>{tresc}</p>
  6. </div>
  7. {/foreach}
  8. </div>


tyle ze wtedy zaczyna powstawac z tego kolejny silnik szablonow typu smarty.

Ja sama skladnie php'a uznaje za dobry system do szablonow wiec w moim przypadku realizacja wyglada tak:

  1. <div class="ksiega">
  2. <? foreach ($oKsiega as $oWpis) {?>
  3. <div class="wpis">
  4. <strong><?=$oWpis->getAutor();?></strong>
  5. <p><?=$oWpis->getTresc();?></p>
  6. </div>
  7. <? } ?>
  8. </div>
gorky_park
Bonastick...bardzo dziękuję Ci za pomoc...z tego co widać wyjście z sytuacji jest bardzo proste i rozwiązanie cały czas leżało przed moimi oczyma. Widać, że warto zasięgnąć opinii kogoś ze "świeżym" spojrzeniem na sytuację.
Oczywiście klikam "Pomógł" winksmiley.jpg
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.