tu peux essayer avec c'est code :)
menu.ctp
<?php $pages = $this->requestAction(array('controller'=>'pages','action'=>'menu','admin'=>false)); ?>
<?php if(isset($this->Session->read('active')) && !empty($this->Session->read('active'))){
$active=$this->Session->read('active');
}else
$active=null;
?>
<ul>
<li>
<?php if($active == 'Articles'): ?>
<?php echo $this->Html->link('Articles',array('controller'=>'posts','action'=>'index')
,array('class'=>'active')); ?>
<?php else: ?>
<?php echo $this->Html->link('Articles',array('controller'=>'posts','action'=>'index')); ?>
<?php endif ; ?>
</li>
<?php foreach($pages as $k=>$v): $v = current($v); ?>
<li>
<?php if($active == 'P'.$v'id']): ?>
<?php echo $this->Html->link($v'name'],$v'link'],array('class'=>'active')); ?>
<?php else: ?>
<?php echo $this->Html->link($v'name'],$v'link']); ?>
<?php endif ; ?>
</li>
<?php endforeach; ?>
</ul>
est dans Postecontroller action index ajoute
public function index()
{
$this->Session->write('active', 'Articles');
........
est dans Postecontroller action show ajoute
function show($id=null,$slug=null){
if(!$id || !is_numeric($id)){
throw new NotFoundException('Aucun page ne correspond à cet ID');
}
$this->Session->write('active', 'P'.$id);
............