2010-10-18 12 views
6

Ich implementiere derzeit die Navigation der Website (Multilevel-Menü, aktuelle Seite hervorgehoben). Da Navigationsteil für praktisch alle Module enthalten sein wird, habe ich es zuerst zu einem globalen Teil gemacht. Aber Logik für die Auswahl der "aktuellen Seite" ist in einigen Situationen ziemlich kompliziert, ich denke über die Verwendung einer Komponente für die Navigation.Globale Komponente in Symfony

Das Problem ist, dass Symfony globale Partials, aber keine globalen Komponenten haben kann. Also gibt es eine "nette symfony Art und Weise", dies zu tun?

Antwort

6

Dafür gibt es keinen Mechanismus. Normalerweise erstelle ich ein leeres Modul namens default und setze sowas dort hinein.

+0

sollten Sie mindestens vermeiden, "global" als Modulname verwenden, es ist reserviertes Wort für globale Teiltöne. –

+0

stimmt, ja. bearbeitet. – benlumley

0

Was ist los mit:

<?php include_component('someModule', 'navigationComponent') ?> 

... wo Sie es in einigen allgemeinen Modul speichern (zum Beispiel „Allgemein“) und nennen es, wo immer Sie wollen, einschließlich Ihrer Layouts. Ist das nicht global genug?

0

Das ist Ihre Lösung:

Erstellen Sie die IhrProjekt/yourapp/templates/_globalpartial.php mit diesem Inhalt:

<?php include_component('yourmodule', 'yourcomponent'); ?> 

und benutzen Sie diesen globalpartial.php in IhrProjekt/yourapp/templates/Layout. php