Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [symfony] organizacja widoku
Forum PHP.pl > Forum > PHP > Frameworki
Daniel_K
Witam serdecznie.
Jestem początkujący z symfony i z jakimkolwiek frameworkiem. Dotychczas sprawnie wykorzystywałem smarty i wszystko ładnie działało. Teraz mam problem z organizacją strony.
Posiadam dwa moduły jeden to menu, drugi to lista informacji pobranych z bazy. No i wszystko spięte w w głównej templatce layout.php jako dwa oddzielne sloty. Chciałbym żeby one wyświetlały się jednocześnie niezależnie od tego do jakiej akcji się odniosę ale żeby zachować ich modularność. Jak to zrobić? Aktualnie wyświetla się albo menu albo lista w zależności do jakiej akcji się odwołam.

Zaznaczam że jestem początkujący. Proszę o pomoc
Pozdrawiam
muody
Żeby zrobić coś takiego musisz utworzyć komponent. Innymi słowy partial który zawiera elemeny logiki.

Tu masz dokumentacje jak to zrobic:

http://www.symfony-project.org/gentle-intr..._sub_components

Utwórz sobie moduł o nazwie np globals i tam bedziesz trzymał wszystkie globalne elementy aplikacji

Następnie w tym module, w katalogu actions w pliku menuComponents.class.php (modules/globals/actions/menuComponents.class.php) tworzysz sobie komponent.

  1. <?php
  2.  
  3. class menuComponents extends sfComponents
  4. {
  5. public function execute()
  6. {
  7.  
  8. // Doctrine
  9. $query = /*zapytanie do bazy */
  10.  
  11. $this->menu = $query->execute();
  12. }
  13. }


Następnie w katalogu templates tworzysz partiala do tego komponentu (modules/globals/templates/_menu.php) :

  1. <div>
  2. <h1>Menu</h1>
  3. <ul>
  4. <?php foreach($menu as $m): ?>
  5. <li>
  6. <?php echo link_to(/*tutaj jakis link */) ?>
  7. </li>
  8. <?php endforeach ?>
  9. </ul>
  10. </div>


I teraz w głównym pliku layout.php wywolujesz


  1. <?php include_component('globals', 'menu') ?>


Analogicznie robisz z listą informacji pobraną z bazą danych
Daniel_K
Dzięki wielkie smile.gif Mam jeszcze jedno pytanie. Wiesz może jak przekazać wartość zmiennej z akcji w jakimś module do komponentu?
Mephistofeles
http://www.symfony-project.org/api/1_4/Par...clude_component
Trzeci parametr
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.