我在CakePHP项目中使用CakeDC标签插件。我使用TagCloudHelper输出链接列表,但是这个帮助器不是按照我想要的方式格式化链接。具体而言,方法_tagUrl($tag, $options)
正在生成具有命名参数的链接,而不是使用查询字符串。
而不是
$options['url'][$options['named']] = $tag[$options['tagModel']]['keyname'];
我通过以下更改获得了所需的行为
$options['url']['?'][$options['named']] = $tag[$options['tagModel']]['keyname'];
覆盖此方法的最佳做法是什么?我是否创建了另一个扩展TagCloudHelper的类?那么我怎么告诉CakePHP使用我的类而不是插件?
答案 0 :(得分:1)
我能够用我自己的
覆盖帮助器// app/View/Helper/MyTagCloudHelper.php
App::uses('TagCloudHelper', 'Tags.View/Helper');
class MyTagCloudHelper extends TagCloudHelper {
protected function _tagUrl($tag, $options) {
$options['url']['?'][$options['named']] = $tag[$options['tagModel']]['keyname'];
return $options['url'];
}
}
然后在控制器中
public $helpers = array('TagCloud' => array('className'=>'MyTagCloud'));
className选项让您为帮助者的名称添加别名