Шаблонизация в PHP
Шаблонизация — это работа по интеграции готовой, статичной вёрстки на сайт.
Ведя работу над сайтом, написанном на PHP, мы разрабатываем логику, которая управляет представлением. Логика — это PHP-сценарии, где происходит объявление переменных, функций, использование массивов и циклов, получение и обработка информации.
Представление — это внешний вид сайта. Сюда входят страницы, которые содержат общие элементы оформления (шапка, меню, подвал) и контент (страницы, статьи и тому подобное).
Имея на руках готовую вёрстку, надо правильно её внедрить в работающий сайт, чтобы в определённых местах страниц информация выводилась динамически, под контролем PHP-сценариев.
Что такое «шаблон» и при чём здесь рыба?
Шаблон — это готовая вёрстка страницы или блока, которая состоит только из оформления, и не содержит никакого контента (полезной информации).
Шаблон по своей сути — это обычный PHP-сценарий, который на 90% состоит из HTML-кода и только на 10% из PHP-конструкций. Основная задача программиста в процессе работы над сайтом — это превратить статичные HTML-страницы в динамичные PHP-шаблоны, которые будут использоваться для показа итоговых страниц.
Но если статичная вёрстка страниц не содержит динамического контента, то что будет на его месте до начала внедрения этих страниц? Когда дизайнер или верстальщик хотят показать, как будет выглядеть страница на сайте, то вместо реального контента используется так называемая рыба. Рыба — это заполнитель. Бессмысленный текст, который используется в вёрстке, чтобы показать, как будет выглядеть страница, наполненная контентом.
Проблемы типичного процесса вёрстки
Когда верстальщик работает над несколькими страницами, ему приходится копировать бол́ьшую часть HTML-кода между страницами, так как эти страницы содержат много повторяющихся элементов: подключение стилей, шапка сайта с логотипов, футер сайта, различные меню и тому подобное.
В результате когда дело доходит до правок, то при необходимости поменять что-нибудь в той же шапке, это изменение нужно будет сделать во всех HTML-файлах, чтобы они выглядели одинаково. Конечно, такой напрасный труд никому не понравится.
Общие фрагменты страниц сайта
Взглянув на страницы практически любого сайта, можно заметить их сходство друг с другом. Ведь все страницы состоят из общих частей, которые не меняются, а также из областей с уникальным содержимым. И как было бы удобно редактировать общие блоки, вроде шапки сайта, отдельно, а затем вкладывать их во все страницы. Тогда при смене логотипа потребуется внести изменение только в одном месте, а все страницы сайта обновятся автоматически.
Шаблонизация — это и есть деление всей вёрстки на независимые шаблоны и дальнейшее их подключение и вкладывание друг в друга.
Сбор страницы из частей
Если поделить всю вёрстку сайта на отдельные, небольшие шаблоны мы получим сразу несколько преимуществ. Станет легче следить за единообразием интерфейса. Выделив представление сайта в шаблоны, мы также существенно упростим PHP-сценарии, ведь в них останется только PHP-код. Можно даже доверить верстальщику редактировать шаблоны, так как в них почти нет программного кода, а тот, что есть, очень простой.
Потренируйтесь собирать страницы из фрагментов, выполнив это задание.
Термины шаблонизации
В разговоре о шаблонизации очень важно придерживаться определённых терминов, чтобы всегда было понимание, о чём идёт речь. Договоримся использовать следующую терминологию:
Лейаут — это шаблон, который содержит HTML-код, общий для всех страниц сайта. В нём могут содержаться подключение стилей, метатеги, шапка, подвал. Также лейаут содержит область для вставки уникального содержимого каждой страницы.
Шаблон страницы — это шаблон с уникальным для одной страницы HTML-кодом. Например, для главной страницы там может быть список новостей. Также шаблон страницы может включать в себя блоки.
Блок — это шаблон очень небольшого блока страницы. Например, это может быть один элемент списка новостей. Удобство блоков в том, один блок могут включать разные страницы.
Содержимое шаблона
Что же находится внутри шаблона? Вы уже знаете, что шаблон почти полностью состоит из HTML-кода. Но помимо HTML-тегов, там также лежат данные и простая логика.
Данные в шаблоне
Шаблон показывает динамическую информацию. Прилагательное «динамическая» означает, что эти данные могут меняться и показываться в зависимости от различных условий. Сама информация, как правило, хранится в базе данных, а PHP-сценарий извлекает её оттуда и передаёт в шаблон.
Вне зависимости от источника информации есть строгое правило: любой шаблон (лейаут, шаблон страницы, блок) должен иметь доступ только к тем данным, которые ему явно передали.
Такую изоляцию данных обеспечивает специальная функция-шаблонизатор, о которой пойдёт речь далее.
Логика шаблона
В шаблоне должна находиться только несложная логика. Иными словами, шаблоны не содержат «тяжёлого» PHP-кода, а только простые конструкции.
Так, в шаблоне можно показывать переменные, использовать условия, циклы, обходить массивы, вызывать функции и подключать файлы. Всё другое запрещено. Оставшаяся бизнес-логика остаётся в PHP-сценариях, которые вызывают шаблоны и передают в них информацию.
Функция-шаблонизатор
Шаблонизатор — это функция, которая подключает файл шаблона, передаёт ему данные и возвращает сгенерированный HTML.
Именно шаблонизатор является тем клеем, что скрепляет воедино отдельные шаблоны в итоговую страницу. Работает он следующим образом: PHP-сценарий страницы выполняет все действия для подготовки необходимой информации, к примеру, запрашивает записи из базы данных. Эти записи в виде массива отправляются шаблонизатору вместе с именем шаблона страницы.
Шаблонизатор подключает указанный файл шаблона и передаёт туда всю информацию. Но, вместо вывода на экран содержимого этого шаблона, он захватывает получившийся HTML-код и возвращает его. Затем сценарий вызывает шаблонизатор ещё раз, но теперь с его помощью подключает общий лейаут, куда отправляется общая информация, а также содержимое страницы, полученное из предыдущего шага. Весь результат работы выводится на экран.
Пример использования
Посмотрим на примере, как это всё работает. Начнём с того, что определим три шаблона: лейаут, шаблон страницы и какой-нибудь блок.
Напоминаю, что в лейаут выносим общий HTML-код.
Дневник погоды
Теперь очередь за шаблоном страницы: [main.php]
Последние записи Добавить новую =renderTemplate('inc/item.php', ['item' =>$item]);?>
Здесь обратите внимание, что шаблон страницы, помимо итерации по массиву, для каждого его элемента вызывает функцию-шаблонизатор. Шаблонизатор получает контент из шаблона блока и показывает его внутри списка.
А вот и шаблон блока для показа одной записи: [inc/item.php]
">
Так выглядели три шаблона. Все они примут участие в формировании итоговой страницы. Соберёт эти шаблоны и выведет страницу на экран наш сценарий — index.php:
$items_list]); // окончательный HTML код $layout_content = renderTemplate('layout.php', ['content' => $page_content, 'title' => 'Дневник наблюдений за погодой']); // вывод на экран итоговой страницы print($layout_content);
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
HTML Адаптивный
Адаптивный веб дизайн — это создание веб страниц, которые хорошо смотрятся на всех устройствах!
Адаптивный веб дизайн автоматически настраивается для различных размеров экрана и видовых экранов.

Что такое адаптивный веб дизайн?
Адаптивный веб дизайн — это использование HTML и CSS для автоматического изменения размера, скрытия, сжатия или увеличения, веб сайт, чтобы он хорошо выглядел на всех устройствах (настольных компьютерах, планшетах и телефонах):
Настройка видового экрана
Чтобы создать адаптивный веб сайт, добавьте следующей тег для всех ваших веб страниц:
Пример
Это позволит установить окно просмотра вашей страницы, которое даст браузеру инструкции о том, как управлять размерами и масштабированием страницы.
Вот пример веб страницы без мета тега viewport и той же веб страницы с мета тегом viewport:

Без мета тега viewport:

С помощью мета тега viewport:
Совет: Если вы просматриваете эту страницу на телефоне или планшете, вы можете нажать на две ссылки выше, чтобы увидеть разницу.
Адаптивные изображения
Адаптивные изображения — это изображения, которые хорошо масштабируются, чтобы соответствовать любому размеру браузера.
Используя свойство width
Если свойство CSS width установлено на 100%, изображение будет реагировать и масштабироваться вверх и вниз:

Пример

style=»width:100%;»>
Обратите внимание, что в приведенном выше примере изображение может быть увеличено до размера, превышающего его первоначальный размер. Лучшим решением во многих случаях будет использование свойства max-width .
Использование свойства max-width
Если свойству max-width присвоено значение 100%, изображение будет уменьшаться, если это необходимо, но никогда не будет увеличиваться до размера, превышающего его исходный размер:

Пример

Пример

Адаптивный размер шрифта
Размер текста можно задать с помощью единицы измерения «vw», что означает «ширина видового экрана».
Таким образом, размер текста будет соответствовать размеру окна браузера:
Привет мир
Измените размер окна браузера, чтобы увидеть, как масштабируется размер текста.
Пример
Привет мир
Видовой экран — это размер окна браузера. 1vw = 1% от ширины видового экрана. Если видовое окно имеет ширину 50cm, то 1vw составляет 0.5cm.
Медиа запросы
Помимо изменения размера текста и изображений, также часто используются медиа запросы на адаптивных веб страницах.
С помощью медиа запросов вы можете определить совершенно разные стили для разных размеров браузера.
Например: измените размер окна браузера, чтобы увидеть, что три элемента div ниже будут отображаться горизонтально на больших экранах и вертикально сложены на маленьких экранах:
Пример
.main float: left;
width: 60%; /* Ширина по умолчанию составляет 60% */
>
/* Использовать медиа запрос, чтобы добавить точку останова на 800 пикселей: */
@media screen and (max-width: 800px) .left, .main, .right width: 100%; /* Ширина составляет 100%, когда видовой экран составляет 800 пикселей или меньше */
>
>
Совет: Чтобы узнать больше о медиа запросах и адаптивном веб дизайне, прочтите раздел RWD Учебник.
Адаптивная веб страница — полный пример
Адаптивная веб страница должна хорошо смотреться на больших экранах настольных компьютеров и на небольших мобильных телефонах.
Адаптивная веб страница — frameworks
Существует множество существующих CSS фреймворков, предлагающих адаптивный дизайн.
Они бесплатны и просты в использовании.
Используя W3.CSS
Отличный способ создать адаптивный дизайн, использовать адаптивную таблицу стилей, например W3.CSS
W3.CSS позволяет легко разрабатывать сайты, которые хорошо выглядят при любом размере; рабочий стол, ноутбук, планшет или телефон:
W3.CSS демо
Измените размер страницы, чтобы увидеть отзывчивость!
Лондон
Лондон является столицей Англии.
Это самый густонаселенный город в Соединенном Королевстве, с пригородами свыше 13 миллионов жителей.
Париж
Париж — столица Франции.
В Париже находится один из крупнейших центров населения в Европе, с более чем 12 миллионов жителей.
Токио
Токио — столица Японии.
Это центр большого Токио и самый густонаселенный мегаполис в мире.
Пример
W3.CSS Демо
Изменить макет на отзывчивый!
Лондон
Лондон является столицей Англии.
Это самый густонаселенный город в Соединенном Королевстве,
с пригородами свыше 13 миллионов жителей.
Париж
Париж — столица Франции.
В Париже находится один из крупнейших центров населения в Европе,
с более чем 12 миллионов жителей.
Токио
Токио — столица Японии.
Это центр большого Токио
и самый густонаселенный мегаполис в мире.
Чтобы узнать больше о W3.CSS, читайте W3.CSS Учебник.
Bootstrap
Еще один популярный фреймворк Bootstrap, он использует HTML, CSS и jQuery для создания адаптивных веб страниц.
Пример
!DOCTYPE>
Моя первая Bootstrap страница
Чтобы узнать больше о Bootstrap, перейдите Bootstrap Учебник.
Мы только что запустили
SchoolsW3 видео
курс сегодня!
Сообщить об ошибке
Если вы хотите сообщить об ошибке или внести предложение, не стесняйтесь отправлять на электронное письмо:
Ваше предложение:
Спасибо Вам за то, что помогаете!
Ваше сообщение было отправлено в SchoolsW3.
Schoolsw3 оптимизирован для бесплатного обучения, проверки и подготовки знаний. Примеры в редакторе упрощают и улучшают чтение и базовое понимание. Учебники, ссылки, примеры постоянно пересматриваются, чтобы избежать ошибок, но не возможно гарантировать полную правильность всего содержания. Некоторые страницы сайта могут быть не переведены на РУССКИЙ язык, можно отправить страницу как ошибку, так же можете самостоятельно заняться переводом. Используя данный сайт, вы соглашаетесь прочитать и принять Условия к использованию, Cookies и политика конфиденциальности.
Адаптивная вёрстка сайта, урок первый. Вёрстка главной страницы

Адаптивная вёрстка сайта позволяет веб-страницам автоматически подстраиваться под экраны планшетов и смартфонов. Мобильный интернет-трафик растёт с каждым годом и чтобы эффективно обрабатывать этот трафик, нужно предлагать пользователям адаптивные сайты с удобным интерфейсом.
Поисковые системы используют ряд критериев для оценки адаптивности сайта при просмотре на мобильных устройствах.
Google старается упростить пользование Интернетом для владельцев смартфонов и планшетов, отмечая в мобильной выдаче адаптированные под мобильные устройства сайты специальной пометкой mobile-friendly.
В Яндексе также работает алгоритм, который отдает предпочтение сайтам с мобильной/адаптивной версией для пользователей в мобильном поиске.
Проверить отображение страницы на мобильных устройствах можно на сервисах Яндекс.Вебмастер и Google Developers.

Что такое адаптивная вёрстка
Адаптивная вёрстка предполагает отсутствие горизонтальной полосы прокрутки и масштабируемых областей при просмотре на любом устройстве, читабельный текст и большие области для кликабельных элементов. С помощью медиазапросов можно управлять компоновкой и расположением блоков на странице, перестраивая шаблон таким образом, чтобы он адаптировался под разные размеры экранов устройств.
Основные приёмы создания адаптивного сайта приведены в статье Отзывчивый и адаптивный дизайн сайта. Для отзывчивого дизайна ширина основного контейнера сайта задаётся в % , при этом она может быть равна как 100% ширины окна браузера, так и меньше. Ширина столбцов сетки также задаётся в % . В адаптивном дизайне ширина основного контейнера и столбцов сетки фиксируется с помощью значений в px .
Рассматриваемый в данном уроке приём адаптивной резиновой вёрстки отлично сработает на двухколоночном шаблоне, сделав сайт адаптивным и удобным для просмотра на мобильных устройствах. Шаблон предполагает различную компоновку основного содержимого страниц, в этом уроке будет разобрана вёрстка главной страницы.
Вёрстка главной страницы
Страница состоит из трёх основных блоков: верхний колонтитул (шапка), контейнер-обёртка для основного содержимого и сайдбара, и нижний колонтитул (футер). В качестве переломных точек дизайна возьмём 768px и 480px .
В первой точке скроем верхнее меню и переместим сайдбар под контейнер с постами. Во второй точке изменим расположение элементов шапки, отменим позиционирование кнопок социальных сетей в постах и отменим обтекание столбцов подвала страницы.

1. Метатеги и раздел
Добавим в раздел необходимые файлы — ссылку на используемые шрифты, библиотеку jQuery, а также плагин prefixfree (чтобы не писать для свойств браузерные префиксы):
Адаптивная вёрстка сайта
2. Шапка страницы
В шапке страницы поместим следующие элементы-контейнеры:
- логотип ;
- кнопку для показа/скрытия главного меню ;
- главное меню
- ;
- форму поиска по сайту .
3. Блок с кратким содержанием статьи
Анонс статей обернём элементом :
ДизайнВесна
Очень богат русский язык словами, относящимися к временам года и к природным явлениям, с ними связанным.
Продолжить чтение. 4. Боковая колонка
В боковую колонку добавим список категорий, последние записи и форму подписки на рассылку:
5. Нижний колонтитул
В подвале страницы разместим информацию о копирайте, кнопки социальных сетей и ссылку на электронную почту:

