2010-07-27 34 views
1

我試圖在Symfony中使用CSS類呈現模板來表示它們屬於哪個站點的哪一部分。例如:我在/games我想在網頁看起來是這樣的:如何根據Symfony的導航路徑爲Symfony模板提供CSS類

<div id="wrapper" class="games"> 
<!-- content --> 
</div> 

或者,如果我們表現/home/profile的頁面應該是這樣的:

<div id="wrapper" class="home"> 
<!-- content --> 
</div> 

基本上我找與CodeIgniter的url段方法類似的功能。

回答

3

該類只是模塊的名稱?如果是,這樣做:

<div class="<?php echo $sf_context->getModuleName() ?>"> 

你也可以將其設置爲在請求中的參數在你的路由定義它:

page: 
    url: /page 
    param: { module: default, action: page, section: games } 
    ... 

然後得到它在你的模板的要求:

<div class="<?php echo $sf_request['section'] ?>"> 

最後,如果它的每個模塊相同,但不等同於模塊的名稱,你可以將其設置在preExecute

public function preExecute() 
{ 
    $this->getRequest()->setParameter('section', 'workouts'); 
} 
+0

模塊名稱解決方案非常完美。如果我可以將它放在佈局而不是模板中,它會更加完美,但我不認爲'$ sf_context'可用於佈局。我只是不想在任何地方重複這一點,因爲在佈局中只放一次似乎更好。 – Simon 2010-07-29 03:32:47

+0

$ sf_context在佈局中可用。此外,它應該是「getModuleName」而不是「getModule」 – 2010-07-29 14:31:07

+0

啊!我的錯誤,現在都完美了 - 感謝您的洞察力。 – Simon 2010-07-29 17:29:16