Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Księga gości OOP
gorky_park
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 8.07.2007

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ale gdybym chciał ich używać to tematu na tym forum bym nie zamieścił.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Exek
post
Post #2





Grupa: Zarejestrowani
Postów: 120
Pomógł: 10
Dołączył: 16.08.2007

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
VGT
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 9
Dołączył: 19.11.2004
Skąd: Iława

Ostrzeżenie: (0%)
-----


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>


Ten post edytował Bonastick 15.09.2008, 08:01:40
Go to the top of the page
+Quote Post
gorky_park
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 8.07.2007

Ostrzeżenie: (0%)
-----


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ł" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 05:44