Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [symfony] Komponent dostępny poza modułem
Forum PHP.pl > Forum > PHP > Frameworki
phpion
Witam Was!
Na wstępie nadmienię, że sporo szperałem po manualu i forum Symfony, a także po googlach jednak nie znalazłem odpowiedzi na mój problem.
Otóż mam moduł 'category'. W nim utworzyłem komponent budujący drzewo kategorii i wyświetlający je w postaci listy <select> odpowiednio sformatowanej (wcięcia). Komponent umieściłem w layout.php gdyż chciałbym aby był dostępny zawsze:
layout.php
  1. <?php include_component('category', 'treeSelect', array('parentId' => 0)); ?>

Przy przeglądaniu kategorii wszystko jest ok, lista wyświetla się poprawnie. Problem pojawia się przy użyciu innego modułu (np. przy logowaniu z użyciem sfGuard). Dostaję wówczas błąd:
Kod
[sfRenderException]
The template "/_treeSelectOption.php" does not exist

Rozumiem, że komponent szukany jest w katalogu szablonów dla aktualnie żądanego modułu.
Moje pytanie brzmi: w jaki sposób uczynić komponent dostępny poza modułem, do którego należy? Taki jakby globalny partial.
Pozdrawiam: pion
mike
To że komponent znajduje się w jednym module nie znaczy, że nie możesz go użyć w innym.
Gdyby tak było to po co by był pierwszy parametr w funkcji include_component(), który przecież mówi z jakiego modułu zaciągamy komponent.

Zrób normalnie komponent (umieszczając pliki i nazywając ja w taki sposób jak należy) i będziesz miał do niego dostęp zawsze.
Na przykład w jakimś widoku z, dajmy na to, modułu Photo zawsze możesz napisać:
  1. <?php
  2.  
  3. include_component('category', 'treeSelect', array('parentId' => 0));
  4.  
  5. ?>
i w ten sposób użyjesz komponentu treeSelect z modułu category
phpion
sciana.gif
Ślepy jestem... błąd przecież dotyczył _treeSelectOption, który to jest włączany w samym _treeSelect. W nim brakowało określenia modułu tj. brakło 'category/'. Dupa ze mnie. Sorry za bezsensowny post... i dzięki za pomoc smile.gif
PS: właśnie ten pierwszy parametr nie dawał mi spokoju - po co by był jeśli nie możnaby wykorzystać komponentu poza jego modułem winksmiley.jpg
PS2: a 10 linijek niżej miałem:
  1. <?php include_component('category', 'menu', array('parentId' => null)); ?>

co działało poprawnie. sciana.gif
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.