Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: bloki - stała część strony
Forum PHP.pl > Forum > PHP > Object-oriented programming
Apo
Witam

Mam takie dziwne pytanie. Przeglądałem kod kilku frameworków ale nie zwróciłem uwagi na pewną rzecz.
Otórz powiedzmy że mamy jakąś tam strone, która posiada po lewej i prawej stronie menu gdzie są wyświetlane ostatnie newsy, artykuły, posty, oraz kategorie forum, czyli rzeczy z 3 modułów oraz logo i stopke. No i jak dołączyć te elementy w wygodny sposób do strony. Kiedyś pisałem tak:

index.php
  1. <?php
  2.  
  3. include('header.php') // logo, lewe menu
  4. $FrontController->init(); // wyświetlenie odpowiedniej treści strony (akcji)
  5. include('footer.php') // prawe menu i stopka
  6.  
  7. ?>


Pozdrawiam Apo
Ludvik
Szablony - np. Smarty. Mając szablon masz większe możliwości manewru. Twój przykład uzależnia Ciebie od konkretnej struktury kodu.
bigZbig
U mnie tresc strony jest ksztaltowana juz w akcji wywolywanej przez front kotrolera. Dzieki temu moge np. zmieniac naglowek strony w zaleznosci od jej zawartosci. Podobnie z menu i wszystkim co sie znajduje w blokach. U Ciebie prawy margines ma zwsze ta sama zawartosc - u mnie w zaleznosci od tresci "contentu" zalezy zawartosc marginesow. Troszke z tym wiecej pracy ale za to zyskuje sie na elastycznosci.
Apo
@bigZbig właśnie o to mi chodzi tylko nie wiem jak to napisac :/ Jak byś mógł pokazać przykładowy kod, lub wytłumaczyć krok po kroku gdzie i w jaki sposób manipulujesz nagłówkiem i marginesami byłbym wdzięczny smile.gif Myślałem nad dodaniem do klasy Akcji kilku metod: setLogo($data) oraz setLeftMenu($data)
gdzie ustawiałbym wartości w danym bloku (jego nazwa byłaby stała jak i lokalizacja).
Przykładowa metoda:

  1. <?php
  2.  
  3. abstrct class Action {
  4.  
  5. final protected function setLogo($data) {
  6. $this->view->dzial = $data; // przypisanie warotści do szablonu;
  7. $this->view->render('header.tpl'); // przeslanie tresci do kontekstu
  8. }
  9. }
  10. ?>

No i przed wywołaniem akcji sprawdzałbym w konfiguracji danej akcji czy posiada własny header lub menu jeśli tak to metoda setLogo nie wykana sie domyślnie ...
Ale nie wiem czy to jest dobre rozwiązanie.

Cytat
Szablony - np. Smarty. Mając szablon masz większe możliwości manewru. Twój przykład uzależnia Ciebie od konkretnej struktury kodu.
Własnie to są szablony, tylko podałem bardzo uproszczony przykład.
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.