Как сменить стандартный вид CakePhp
Как Вы помните, в одной из последних статей я писал про такой популярный php фреймворк как cakephp. В конце той статьи я привел небольшой пример работы CakePhp (быстрый старт), который просто выводит записи из базы данных.
Меня, как начинающего пользователя CakePHP, сразу заинтересовал один вопрос, ответить на который самостоятельно я не смог. Дело все в том, что записи из БД в том примере выводились по центру экрана, а сверху и снизу этот вывод обрамлялся стандартными шапкой (header) и подвалом (footer) от cakephp. Это меня немного удивило, так как я ожидал что выведены будут только посты (я ведь другого оформления не делал сам). Так вот, возникла проблема – нужно было убрать все лишнее с экрана.
Определившись с задачей, я долго лазил по папкам CakePHP, однако, шаблон со стандартными шапкой и футером так и не нашел. Полез на официальный сайт. Пробежавшись немного по мануалу, нашел все-таки решение.
Оказалось, что все, что находится в папке views Вашего проекта, будет выводиться в указанном месте нужного layout`а. А для задания общего визуального каркаса приложения, нужно создать свой layout. Если его не создать самому, то будет выведен стандартный (откуда он берется до сих пор остается для меня загадкой), что и произошло в моем случае.
Не совсем понятно? Сейчас на примере все покажу.
Вспомним пример из предыдущей статьи про cakephp и дополним его немного. А именно, создадим в папке /app/views/layouts следующий файл:
default.ctp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://www.w3.org/1999/xhtml"> <head> <title><?php echo $title_for_layout?></title> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> </head> <body> <div>Header</div> <h1>Hello, world!</h1> <!-- Здесь будут выводиться "виды" наших элементов из папки views --> <?php echo $content_for_layout ?> <div>Footer</div> </body> </html>
Если теперь выполнить этот пример, то вместо стандартного оформления CakePhp вы увидите наше собственное, из файла default.ctp.
Здесь все очень просто – достаточно указать вывод нужных элементов в нужных местах.
Можете пока поэкспериментировать. Удачи!
а как убрать результат запроса к базе, который ниже?
“(откуда он берется до сих пор остается для меня загадкой)” а откуда берутся все сообщения в кейке? в папке каке\либ\виев\лайот\ мож ошибся по памяти пишу, но где то там. Там прям как зеркало папки апп лежит. Я тоже сначала не мог понять как же он чета выводит на экран если я ничего не писал… =)
Исправьте строчку в файле
app\config\core.php
Configure::write(‘debug’, 0);
Мануалы читать всегда надо) Cake очень грамотно сделан. У меня на работе фреймворк по архитектуре похож очень сильно на cake. И все эти согласования и, казалось бы, жесткие рамки на разработчика которые накладывает cake это очень поможет в будущем)