Метод плагина переопределения CakePHP

Я использую плагин CakeDC Tags в своем проекте CakePHP. Я использую TagCloudHelper для вывода списка ссылок. но этот помощник не форматирует ссылки так, как мне хотелось бы. В частности, метод _tagUrl($tag, $options) создает ссылки с именованными параметрами вместо использования строки запроса.

Вместо

$options['url'][$options['named']] = $tag[$options['tagModel']]['keyname'];

Я получаю желаемое поведение со следующим изменением

$options['url']['?'][$options['named']] = $tag[$options['tagModel']]['keyname']; 

как лучше всего переопределить этот метод? Нужно ли мне создавать еще один класс, расширяющий TagCloudHelper? Как тогда мне сказать CakePHP использовать мой класс вместо плагина?


person Devin Crossman    schedule 29.04.2014    source источник


Ответы (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 позволяет вам использовать псевдоним имени помощника

person Devin Crossman    schedule 29.04.2014