0

こんにちは、cakephp 2 のウェブサイトに次のようなメニューがあります。

<ul class="nav">
<li><?php echo $this->Html->link('Home', array('controller' => 'posts', 'action' => 'index')); ?></li>
<li><?php echo $this->Html->link('Add post', array('controller' => 'posts', 'action' => 'add')); ?></li>
<li><a href="#contact">Contact</a></li>
</ul>

メニューリンクに class="selected" を追加するページにいるかどうかを確認する必要があります。これどうやってするの?

ありがとう

4

2 に答える 2

1

ビューファイルでは、次のこともできます。

$this->request->params

HtmlHelper::link と同じ引数を持つメソッドを実装し、HtmlHelper を内部的に呼び出して返す独自のヘルパーを作成することをお勧めしますが、その前に $this->request->params を最初の引数の渡された配列と比較します。一致する場合は、3 番目の引数にクラス名を挿入できます。

このようなものは、自分で実装してください:

class MyHelper extends AppHelper {
    public $helpers = array('Html');
    public function link($title, $url, $options) {
    /** 
     * if ($this->View->request->params ...
     * do your matching logic here
     * and if it matches: $options['class'] = 'active';
     */
    return $this->Html->link($title, $url, $options
}
于 2012-05-25T10:08:56.983 に答える
0

しばらく前に、これを自動的に行う (CakePHP 1.2) ヘルパーを作成しました。

http://richardathome.com/blog/cakephp-smarter-links

2.0に移植するのはかなり簡単なはずです

于 2012-05-25T10:42:25.170 に答える