RequestHandler позволяет вам использовать URL-адрес, такой как /posts/index.rss, автоматически загружает помощник RSS и отправляет вывод в /views/posts/rss/index.ctp и использует макет в / views / layouts / Новости / default.ctp.
Но если вы хотите использовать RSS Helper самостоятельно, вам необходимо:
1) включи контроллер
var $helpers = array('Rss');
2) в действии вашего контроллера необходимо указать, куда выводится вывод, поэтому
$this->render('/posts/rss/index','/rss/default');
В этом случае я также указал, какой макет использовать во втором аргументе. Первый аргумент - расположение файла index.ctp относительно вашей директории views /. Второй аргумент - компоновка относится к вашей директории views / layouts /.
Итак, у меня есть метод в моем posts_controller, который я использую, чтобы определить, какой канал нужен (через переданную переменную), а затем находит сообщения и отправляет их в правильные представления и макеты:
function rss(){
if (!empty($this->params['pass'])){
$ops=array(
'conditions'=>'where feedname_id=' . $this->params['pass'][0],
'order' => 'Post.created DESC',
'limit' => 10
);
$this->set('posts', $this->Post->find('all',$ops));
$this->render('/posts/rss/index','/rss/default');
} else {
$this->redirect(array('controller'=>'feednames','action'=>'index'));
}
}
Возможно, есть лучшие способы закодировать это - если так, пожалуйста, дайте мне знать.