Как загрузить пользовательские плагины в CakePHP? - PullRequest
0 голосов
/ 23 января 2011

Я пишу плагин для веб-сайта на основе CakePHP.Плагин работает хорошо, если я обращаюсь к нему с его собственного URL (например, myapp.com/plugin/controller), но мне нужно вызывать его с разных страниц.Я хотел бы включить его в качестве виджета на каждую страницу.

Я ищу метод типа $myplugin->renderPoll($pollId);, но я действительно не нашел никакой информации о том, как создать экземпляр класса Опросы.Я попытался с App::import и ClassRegistry::init без удачи.

Есть какие-нибудь предложения?Спасибо

Ответы [ 2 ]

0 голосов
/ 30 мая 2011

Используйте элементы! Это небольшие блоки кода представления, которые нужно повторять со страницы на страницу, иногда в разных местах макета.

Проверьте эту ссылку: http://book.cakephp.org/view/1081/Elements

Полагаю, эта ссылка объясняет все, что вам нужно.

0 голосов
/ 23 января 2011

Похоже, вы пытаетесь создать что-то вроде Helper для создания перекрестных просмотров опросов?Я бы предложил создать Helper для этого конкретного класса.Просто создайте помощника в plugins/plugin_name/views/helpers/foo.php, и в каждом контроллере (или в app_controller.php), который вам нужен, включите помощники как $helpers = array("PluginName.Foo");, и внутри вашего представления вы сможете использовать методы, определенные в foo.phpпозвонив $foo->renderPoll($pollId).

//app/plugins/plugin_name/views/helpers/foo.php
class FooHelper extends AppHelper {
    var $name = "Foo";

    function renderPoll($id=0) {
        //...
    }
}
...