Показаны сообщения с ярлыком CakePHP. Показать все сообщения
Показаны сообщения с ярлыком CakePHP. Показать все сообщения

четверг, 2 апреля 2009 г.

CakePHP и CP1251

На практике выяснил, что CakePHP, по крайней мере, версия 1.2.2 не очень-то дружит с кодировкой cp1251, а больше предпочитает юникод.

Лечится все просто.

/app/config/core.php
Начиная с 42 строки
/**
* Application wide charset encoding
*/
Configure::write('App.encoding', 'windows-1251');

И будет счастье!

среда, 1 апреля 2009 г.

Установка CakePHP в Ubuntu

Развернув фреймворк под Линуксом заметил неприятную неожиданность -- mod_rewirte отказывается работать: не отображаются таблица каскадных стилей и изображения. Решение не очевидное, но простое.

1. Проверяем включенность mod_rewrite в наш Апач
sudo a2enmod rewrite
2. Разрешаем перезапись заголовков. Смотрим файл /etc/apache2/sites-available/default
12. AllowOverride None
заменяем на
12. AllowOverride All
3. Перезапускаем Апача
sudo /etc/init.d/apache2 force-reload
4. Радуемся)

пятница, 20 марта 2009 г.

Мой первый проект на CakePHP

После трех дней курения мануалов по CakePHP и попытки осмыслить, как же это все на самом деле работает родился сайт =)

Сплавы по реке Белой

В целом, на мой взгляд, получилось неплохо. Конечно, на Joomla я бы сделал это в два раза быстрее, а наверное, даже в три, но тут уж дело принципа.

Единственное, что пока смущает, так это CAKEPHP в адресе. Ладно, разберемся =)

четверг, 19 марта 2009 г.

CakePHP 1.1.x и элементы

Долго вчера бился с задачей: как в отображении одного действия отображать результат работы другого, или на каждой странице отображать один и тот же блок, например, последних новостей. Спасибо, хоть на форуме поддержки помогли =)

Оказывается, все намного проще.
В нужном контроллере пишем функцию, которая непосредственно возвращает результат, например так:
function last()
{
return $this->Post->findAll('', array("title", "created", "introtext"), "created desc", 3);
}
Затем создаем элемент для отображения:
$news = $this->requestAction("/posts/last/");

foreach($news as $new) {
echo "
".$new['Post']['created']."
";
echo "
".$new['Post']['title']."
";
echo "
".$new['Post']['introtext']."
";
echo '

';
}
?>
А затем этот элемент просто засовываем в шаблон:
renderElement('news'); ?>
Все оказалось в два раза проще, чем я думал %)