Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [symfony] organizacja widoku
Daniel_K
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.11.2010

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


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
Go to the top of the page
+Quote Post
muody
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.08.2010

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


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





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.11.2010

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


Dzięki wielkie smile.gif Mam jeszcze jedno pytanie. Wiesz może jak przekazać wartość zmiennej z akcji w jakimś module do komponentu?
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #4





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


http://www.symfony-project.org/api/1_4/Par...clude_component
Trzeci parametr
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 19:27