На практике выяснил, что CakePHP, по крайней мере, версия 1.2.2 не очень-то дружит с кодировкой cp1251, а больше предпочитает юникод.
Лечится все просто.
/app/config/core.php
Начиная с 42 строки
/**
* Application wide charset encoding
*/
Configure::write('App.encoding', 'windows-1251');
И будет счастье!
Показаны сообщения с ярлыком CakePHP. Показать все сообщения
Показаны сообщения с ярлыком CakePHP. Показать все сообщения
четверг, 2 апреля 2009 г.
среда, 1 апреля 2009 г.
Установка CakePHP в Ubuntu
Развернув фреймворк под Линуксом заметил неприятную неожиданность -- mod_rewirte отказывается работать: не отображаются таблица каскадных стилей и изображения. Решение не очевидное, но простое.
1. Проверяем включенность mod_rewrite в наш Апач
1. Проверяем включенность mod_rewrite в наш Апач
sudo a2enmod rewrite2. Разрешаем перезапись заголовков. Смотрим файл /etc/apache2/sites-available/default
12. AllowOverride Noneзаменяем на
12. AllowOverride All3. Перезапускаем Апача
sudo /etc/init.d/apache2 force-reload4. Радуемся)
пятница, 20 марта 2009 г.
Мой первый проект на CakePHP
После трех дней курения мануалов по CakePHP и попытки осмыслить, как же это все на самом деле работает родился сайт =)
Сплавы по реке Белой
В целом, на мой взгляд, получилось неплохо. Конечно, на Joomla я бы сделал это в два раза быстрее, а наверное, даже в три, но тут уж дело принципа.
Единственное, что пока смущает, так это 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'); ?>Все оказалось в два раза проще, чем я думал %)
Подписаться на:
Сообщения (Atom)