Rss | Кирилл Павлюков
Мар 21

Когда я начал писать очередной проект, в качестве платформы выбрал фреймворк CakePHP 1.2. Но позже пришлось об этом несколько раз пожалеть. Проблема крылась в том, что новая версия, хоть и называется beta2, просто кошмарно документирована. Некоторые разделы в руководстве вообще не написаны, некоторые - написаны с ошибками.
Вот над одной из ошибок в документации мне пришлось потрясти больше часа бубном. Речь идет о хелпере HTML и его методе meta(). Судя по руководству, одна из функций этого метода - добавление тега <link> для RSS-каналов. Эта ссылка указывает всякого рода поисковикам и браузерам на то, что контент сайта доступен в альтернативном оформлении (в виде RSS-потока).
Вот пример из официальной документации по CakePHP версии 1.2, который вы можете :

1
2
3
4
5
6
<?php
echo $html->meta(
    'Comments',
    '/comments/index.rss',
    array('type' => 'rss'));
?>

Но этот пример в реальности (в самом последнем snapshot CakePHP 1.2) работал совсем не так, как нужно.

Как я и говорил, пришлось потратить больше часа на танцы с бубном, но проблема не решалась. Пришлось лезть в исходный код фреймворка, чтобы понять, почему метод работает не так, как ожидается. После небольшого исследования, стало понятно, что в текущем коде метода meta() был абсолютно изменен порядок принимаемых методом аргументов.
Вот правильный пример использования этого метода:

1
2
3
4
5
6
<?php
echo $html->meta(
    'rss',
    '/comments/index.rss',
    array('title' => 'Comments'));
?>

ЗЫ: Если кто не в курсе, то этот код нужно вставлять в верстку (layout) внутри тега <head>

Автор: Кирилл Павлюков \\ Метки: , ,