К содержанию
VKengine | Лицензии | Установка | Мануал |
Телефон +7 (916) 478-23-45
|
Как создать сайт-визитку из нескольких страниц с возможностью изменения из админки?
Для того, чтобы создать сайт-визитку из нескольких страниц, нужно проделать несколько действий.
Предварительно необходимо иметь свёрстанный шаблон сайта и список страниц, который будет на сайте. Если Вам требуется изменяющееся меню, читайте об этом на странице Как добавить меню на сайт. Свёрстанный шаблон разбивается на заголовок (хедер, header), хвост (футер, footer) и центральную часть, в которой будут находиться данные. Далее необходимо скопировать себе на компьютер папку engine/templates/common/. Там находится 2 файла: common_header.php и common_footer.php. Придумайте название Вашему шаблону (например, new) и переименуйте папку и файлы (в данном случае будет папка new и в ней файлы new_header.php и new_footer.php). В файле new_header.php необходимо сохранить первые строки: <? //3.0.3 //Файл содержит заголовок всех страниц //Файл подлежит изменению //Учёт статистики и формирование title, keywords и description require_once $root_dir.$engine_path."engine/helper/title_data.php"; //Для того, чтобы вывести перечень переменных, переданных из контроллеров, раскомментируйте следующую строчку //preprint($AllValues); ?> а также
<?//Ниже - важная строчка. Она позволяет поиску по сайту отрезать весь заголовок и не сохранять его в базу для каждой страницы. Не удаляйте её //и используйте в своих шаблонах ?> <!-- end of common header --> Вместо средней части подставьте код хедера Вашего шаблона. При этом имейте в виду, что =$AllValues["site_title"]?> отвечает за вывод title страницы, =$AllValues["site_keywords"]?> - за вывод ключевых слов (keywords), =$AllValues["site_description"]?> - за вывод описания (description). Поэтому Вам нужно будет вставить эти кусочки кода в то место, где Вы хотите видеть вывод соответственно title, description или keywords.
В new_footer.php необходимо сохранить только строчку <!-- start of common footer --> а после неё нужно вставить Ваш код футера. Далее загрузите папку new в папку engine/templates/. Теперь при создании страниц Вы можете выбирать свой шаблон. После этого Вам нужно понять, какова будет структура данных на Вашем сайте. Как правило, данные делятся на две части: 1) данные статичных страниц (центральные тексты всех страниц, которые находятся на сайте-визитке) - там обычно идёт название, текст, возможно, картинка, description, keywords. 2) данные, которые выводятся на всех страницах, но при этом их хотелось бы менять из административной панели; либо данные, которые нужно выводить в каком-то месте определённым образом. Как правило, это контакты внизу страницы, текст копирайта (2007-2010 All Rights Reserved), слоган в верхней части - но зачастую это также на странице контактных данных вывод e-mail со ссылкой (email@email.com), когда пользователь вводит только сам e-mail (email@email.com) в поле в административной панели, а требуется вывести данные в определённом виде. В этом случае Вам потребуется 2 инфоблока: Статические страницы и Контактные данные. Создайте инфоблок "Статические страницы" с полями Название (title) типа Строка, Текст (text) типа Текст, Картинка (picture) типа Фото (default), Ключевые слова (keywords) типа Строка и Описание (description) типа Текст. Создайте в этом инфоблоке один элемент для того, чтобы можно было пользоваться функцией создания страниц. Также этот элемент будет использоваться для текста на главной странице. Напишите название "Главная страница", текст "Текст главной страницы", ключевые слова и описание - "Главная страница", вставьте фотографию, и сохраните элемент нажатием на кнопку "Создать элемент". Далее создайте стандартную страницу "Элемент подробно". Выберите название шаблона static, а название файла - index.php. Также выберите созданный шаблон (new). Таким образом Вы создадите главную страницу для Вашего сайта. На полученной странице переименуйте массив из news_detail в static_detail (заведите себе за правило менять стандартное название массива. Так и Вам будет легче разбираться в данных, и данные не будут перекрываться). Сообщение об ошибке измените на "Страница не найдена." Если пользователь пройдёт по ссылке, которая когда-то вела на статическую страницу, а Вы её удалили, то он получит именно это сообщение. Условие, при невыполнении которого выводится сообщение об ошибке, менять не надо. Условие по умолчанию позволяет включать/отключать показ пользователям в страницы, просто нажав на красную/зелёную точку рядом с названием страницы в админке (точка становится зелёной/красной). Ссылка на список страниц Вам не потребуется, можно её не вводить. По умолчанию у Вас выбраны галочками все нужные данные для вывода. Выберите, какого размера Вы хотите выводить фотографию (закачанный размер, либо автоматически сгенерированные превью-картинки) и нажмите кнопку "Завершить создание". После этого нажмите на кнопку "Просмотреть результат". Страница откроется в новом окне. При этом ссылка будет иметь вид index.php?id=1. В конец подставляется номер последнего введённого в инфоблок элемента, то есть если вы ввели после главной страницы ещё несколько страниц, то показана будет самая последняя. Для того, чтобы увидеть другую страницу данного инфоблока, в конце нужно подставить её номер. Вы видите перед собой страницу с хедером, футером и данными. Теперь Вам следует привести её к виду, который Вам нужен. Обычно для этого нужно проделать три процедуры:
Итак, мы сделали внешний вид страницы. Проверив, что страница работает так, как мы хотим (подставляя разные номера существующих страниц; есть смысл протестировать на нескольких страницах), мы можем заняться остальным. А именно: нам необходимо проставить ссылки в хедере и футере (они лежат в папке engine/gcomponents/нАЗВАНИЕшАБЛОНА, в нашем случае это new), а также добавить те данные, которые мы хотим менять из админки и для которых сделаем второй инфоблок.
Создаём в админке во вкладке "Инфоблоки" инфоблок "Контактные данные" с полями "e-mail", "контактный телефон", "адрес", "карта проезда". Вводим туда один элемент с нужными данными. Запоминаем его номер, он нам понадобится.
Создаём страницу "элемент подробно" для инфоблока "Контактные данные". Название шаблона (например) contacts, название файла (например) test.php (он нам потом не понадобится, и мы его удалим), шаблон страницы new. Дальше меняем имя массива на (например) contacts_detail, оставляем остальные параметры без изменения и нажимаем "Завершить создание". Дальше скачиваем файл test.php и открываем. Допустим, нам нужно добавить контакты часть в шапку сайта, а часть в низ сайта, и ещё карту добавить на страницу Контакты, которая у нас под номером, допустим, 3 в инфоблоке "Статические страницы". В файле test.php подключены два файла: include($root_dir.$engine_path."engine/gcomponents/news_detail/contacts_controller.php"); include($root_dir.$engine_path."engine/gcomponents/news_detail/contacts_template.php"); Контроллер нам будет необходим во всех трёх случаях, поэтому разумно его подключить сразу в файл engine/templates/new/new_header.php в самом начале (то есть вставить в php-код строку
include($root_dir.$engine_path."engine/gcomponents/news_detail/contacts_controller.php"); Дальше нам потребуются три разных темплейта, поэтому можно сделать копии contacts_template.php и назвать их contacts_header_template.php, contacts_footer_template.php и contacts_onpage_template.php (лучше не нумеровать, а называть мнемоническими названиями - потом легче будет искать и легче будет не перепутать). Соответственно, в том месте шапки (хедера), где нам нужно вывести контактные данные, мы вставляем строчку
include($root_dir.$engine_path."engine/gcomponents/news_detail/contacts_header_template.php"); и редактируем этот темплейт нужным образом; в футер мы вставляем в нужное место строчку
include($root_dir.$engine_path."engine/gcomponents/news_detail/contacts_footer_template.php"); и редактируем этот темплейт нужным образом; а в файл engine/gcomponents/news_detail/static_template.php вставляем в нужное место код
<?if($_GET["id"]==3){ //3 - страница "Контакты" include($root_dir.$engine_path."engine/gcomponents/news_detail/contacts_onpage_template.php"); ?> Замечание. Поскольку мы уже подключили engine/gcomponents/news_detail/contacts_controller.php в начало файла engine/templates/new/new_header.php, то он доступен не только в этом файле, но и в файле engine/templates/new/new_footer.php, и во всех темплейтах, которые включены на страницах с шаблоном new. То есть можно не размножать файл contacts_template.php, а просто скопировать код из него в соответствующие места вместо include-директив и исправлять непосредственно там. Иногда это получается более наглядно, чем с такими вот включениями.
Таким образом, сайт-визитка с редактируемыми данными страниц и контактов из админки создан!
Кратко резюмируем этапы деятельности:
1) Разбиение свёрстанного шаблона на хедер и футер. 2) Создание блоков данных. 3) Создание стандартных страниц. 4) Включение стандартных страниц в нужное место. 5) Редактирование внешнего вида в стандартных темплейтах. |