Cake PHP | Кирилл Павлюков
Мар 24

В CakePHP RSS-каналы создаются не просто, а очень просто: нужно только отредактировать 2 файла и создать еще один.
Как это сделать – читайте ниже.
Если вы до сих пор не знаете, что такое RSS и для чего этот формат создан, прочитайте эту статью из Википедии.
А по этому адресу вы можете найти полную спецификацию формата RSS на русском языке.
Читать запись полностью »

Share

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

Мар 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>

Share

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