开发者

How do I give Symfony templates a CSS class based on their navigation path

开发者 https://www.devze.com 2023-01-09 07:43 出处:网络
I am trying to render templates in Symfony wi开发者_Go百科th a CSS class to denote which part of the site they belong to.For example: I am in /games I\'d like the page to look something like:

I am trying to render templates in Symfony wi开发者_Go百科th a CSS class to denote which part of the site they belong to. For example: I am in /games I'd like the page to look something like:

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

Or if we are displaying /home/profile the page would look like this:

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

Basically I am looking for a similar functionality to CodeIgniter's url segment methods.


Is the class simply the name of the module? If it is, do this:

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

You could also set it as a parameter on the request by defining it in your routes:

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

Then get it off the request in your template:

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

Finally, if it's the same for each module but not equivalent to the module name, you could set it in preExecute:

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

精彩评论

暂无评论...
验证码 换一张
取 消