CakePHP с нуля: вносим изменения в тему. Часть 10 из 10
Продолжим коррекцию шаблона для нашего приложения CakePHP. В предыдущем уроке мы добавили поддержку темы в наш проект и начали корректировать xHTML/CSS код для работы с движком CakePHP. Сегодня мы удалим ненужные элементы и настроим виды CakePHP нашего приложения, чтобы они хорошо выглядели и работали правильно.
Сначала удалим некоторые элементы, открываем /app/views/themed/default/layouts/default.ctp и изменяем его, чтобы он выглядел следующим образом:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php echo $title_for_layout; ?></title> <?php echo $this->Html->css('default'); ?> </head> <body> <!--Header Background Part Starts --> <div id="header-bg"> <!--Header Contant Part Starts --> <div id="header"> <?php echo $html->link($html->image("logo.gif"), array('controller'=>'jobs', 'action' => 'index'), array('escape' => false));?> <br class="spacer" /> </div> <!--Header Contant Part Ends --> </div> <!--Header Background Part Ends --> <?php echo $this->element('menu', array('cache' => true)); ?> <!--Our Company Bacground Part Starts --> <div id="ourCompany-bg"> <!--Our Company Part Starts --> <div id="ourCompany-part"> <?php echo $content_for_layout; ?> <br class="spacer" /> </div> <!--Our Company Part Ends --> </div> <!--Our Company Bacground Part Ends --> <!--Footer Part Starts --> <div id="footer-bg"> <!--Footer Menu Part Starts --> <div id="footer-menu"> <p class="copyright">&
copy
;
Package 2007 All Rights Reserved</p> <p class="copyright topPad">Powered by <a href="http://www.templatekingdom.com/Web-Templates/Web-Design/" target="_blank" title="TemplateKingdom.com">TemplateKingdom.com</a></p> </div> <!--Footer Menu Part Ends --> </div> <!--Footer Part Ends --> </body> </html>
Из шаблона удален раздел, посвященный планам на будущее, поле для логина и список меню в нижнем колонтитуле.
Теперь открываем файл default.css, который размещен в папке /app/views/themed/default/webroot/css/ и находим в нем строки:
div#ourCompany-bg div#ourCompany-part{ width:922px; margin:0 auto; padding:26px 0 28px 0; background:url(../img/our-company-bg-pic.jpg) 606px 0 no-repeat; }
и делаем комментарием строку, определяющую фон:
div#ourCompany-bg div#ourCompany-part{ width:922px; margin:0 auto; padding:26px 0 28px 0; /*background:url(../img/our-company-bg-pic.jpg) 606px 0 no-repeat;*/ }
Мы просто отключили вывод изображения упаковки в правой части элемента div, в котором размещается содержание. Теперь мы можем сделать содержание шире.
Теперь настроим вид index для вакансий (Jobs). Открываем файл /app/views/themed/default/jobs/index.ctp и делаем в нем изменения:
<h2 class="ourCompany-hdr">Вакансии</h2> <div class="jobs index"> <?php if(!empty($jobs)) { $i = 0; echo '<ul class="jobs_list">'; foreach ($jobs as $job): $class = null; if ($i++ % 2 != 0) { $class = ' class="odd"'; } echo '<li'.$class.'>'; echo '<h3>'.$this->Html->link($job['Job']['title'], array('action' => 'view', $job['Job']['id'])).'</h3>'; echo '<div class="details">'; echo '<span class="category">'.$job['Job']['job_type'].'</span>'; echo ' - ' . $job['Job']['company']; echo '<span class="date">' . date('M d', strtotime($job['Job']['created'])) . '</span>'; echo '<div>'; echo '</li>'; endforeach; echo '<ul>'; } else { echo 'Вакансий нет ...'; } ?>
Были удалены ссылки на действия и постраничный вывод, а добавлена разметка HTML для вывода вакансий.
Добавим стили CSS для только что введенной разметки в файл /app/views/themed/default/webroot/css/default.css:
ul.jobs_list { width: 565px; } ul.jobs_list li { margin:10px 0; padding:20px; position:relative; text-shadow:0 0 1px rgba(0, 0, 0, 0.3); -moz-border-radius:4px; -webkit-border-radius:4px; border-radius:4px;} ul.jobs_list li:hover, ul.jobs_list li.odd:hover{ background:#ded698; } ul.jobs_list li.odd{ background:#e4db98; border:1px solid #c7c77c; -moz-box-shadow:0 0 6px rgba(51,51,51,0.1); -webkit-box-shadow:0 0 6px rgba(51,51,51,0.1); box-shadow:0 0 6px rgba(51,51,51,0.1); } ul.jobs_list li h3 { font-size:21px; margin: 0 0 5px 0; text-shadow:0 0 1px rgba(51, 51, 51, 0.1); } ul.jobs_list li h3 a { color: #082733; font-family: "Arial Narrow", Arial, Helvetica, sans-serif; } ul.jobs_list li h3 a:hover { color: #000; text-decoration: underline; } ul.jobs_list li .details { font-size: 13px; } ul.jobs_list li .details .category { font-size: 16px; font-weight: normal; color: #70322C; text-transform: uppercase; font-family: "Arial Narrow", Arial, Helvetica, sans-serif; } ul.jobs_list li .details .date { position:absolute; top:38px; right:20px; }
Хорошо выглядит. Добавьте несколько вакансий с помощью действия add (оно доступно через соответствующий контроллер, например , http://localhost/cake/jobs/add) и перейдите на главную страницу вашего приложения.
Теперь внесем изменения на страницу с подробными сведениями о вакансии. Она открывается, если нажать кнопку мыши на описании вакансии в списке. Изменим разметку. Открываем файл /app/views/themed/default/jobs/view.ctp и делаем его таким:
<h3 class="jobs_view_h3"><?php echo $job['Job']['title']; ?></h3> <div class="jobs view"> <?php echo '<div class="info">'; echo '<span class="category">'.$job['Job']['company'].'</span>'; echo ' - ' . $job['Job']['job_type']; echo '<span class="date">' . date('M d', strtotime($job['Job']['created'])) . '</span>'; echo '</div>'; echo '<div class="job_details">'; echo '<p>' . nl2br($job['Job']['body']) . '</p>'; echo '</div>'; ?>
Также надо добавить стили для детального описания вакансии в файл /app/views/themed/webrot/css/default.ctp:
.job_details { margin:10px 0; padding:20px; position:relative; text-shadow:0 0 1px rgba(0, 0, 0, 0.3); -moz-border-radius:4px; -webkit-border-radius:4px; border-radius:4px; width: 600px; background:#e4db98; border:1px solid #c7c77c; -moz-box-shadow:0 0 6px rgba(51,51,51,0.1); -webkit-box-shadow:0 0 6px rgba(51,51,51,0.1); box-shadow:0 0 6px rgba(51,51,51,0.1); } .job_details p { font-size: 15px; line-height: 21px;} .info { width: 640px; font-size: 13px;} .info .category { font-size: 16px; font-weight: normal; color: #70322C; text-transform: uppercase; font-family: "Arial Narrow", Arial, Helvetica, sans-serif; } .info .date { float:right; } .jobs_view_h3 { font-size:21px; margin: 0 0 5px 0; text-shadow:0 0 1px rgba(51, 51, 51, 0.1); }
Теперь нажимаем кнопку мыши на любой вакансии и смотрим, как выглядит ее подробное описание.
На этом наш краткий экскурс в необъятный мир CakePHP завершен. Для тренировки вы можете исправить стили остальных частей нашего приложения.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/5MDySN3ehzg/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Все мы сидим в сточной канаве, но некоторые при этом смотрят на звезды Уайльд Оскар - (1854-1900) - английский писатель |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.