2009-03-04 15 views
16

Symfony'de farklı modüller için farklı şablon düzenleri nasıl ayarlanır?Symfony'de farklı modüller için farklı şablon düzeni nasıl ayarlanır

Giriş ekranı ve üye bölümünden oluşan bir bankacılık uygulamasına sahibim. Bir kullanıcı siteme gittiğinde, bir giriş ekranı ile sunulacak. Giriş yaptıktan sonra üye bölümüne, bankacılık gereksinimlerini ne olursa olsun yerine getirebileceği yönlendirilecektir.

Oturum açma ekranı ve üye bölümündeki sayfalar için farklı düzenler nasıl ayarlanır? Symfony, ALL sayfaları için şablon olarak frontend/templates/layout.php'u kullanıyor. Farklı düzenleri tanımlamak mümkün mü?

cevap

42

Evet, görünüm başına ayrı düzenler tanımlayabilirsiniz (ya da düzeni tamamen devre dışı bırakabilirsiniz). Bunu yapmak için, modülünüzün/config dizinindeki view.yml dosyasını oluşturmalısınız (veya eğer varsa). Modülün tüm görünümleri için kullanılacak düzeni veya her bir görünüm için ayrı ayrı tanımlayabilirsiniz. Örneğin: Her durumda

#in /apps/my_app/modules/my_module/config/view.yml 

#this will apply custom_layout to all views of the module 
all: 
    layout: custom_layout 

#this will apply login_layout to the loginSuccess view 
loginSuccess: 
    layout: login_layout 

#disable layout for this view 
homeSuccess: 
    has_layout: false 

, düzen (eklenen .php ile) uygulamanızın/şablonlar dizininde dosyasıdır. Modülün görünüm yapılandırma dosyasında herhangi bir düzen yönergesi tanımlamazsanız, varsayılan düzen kullanılır.

$this->setLayout('name_file_layout_without_extension'); 

Ve sen modülünün içinde kullandığınız şablona çalışabilir sonra: İçinde eylemler ise

-1

Veya sadece kullanabilirsiniz.

İlgili konular