Как изменить дизайн сайта на 1с битрикс
Перед любым начинающим разработчиком сайтов с использованием системы управления контентом «1С-Битрикс» рано или поздно (скорее всего рано) встанет задача по изменению существующих в «1С-Битрикс» компонентов.
И, вот, наступает этот ответственный момент — потеют ладони, учащается пульс, лоб покрывается холодной испариной, в голове роятся вопросы — как не ошибиться, «не уронить» сайт, «не пролететь мимо» техподдержки «1С-Битрикс»?
Всё вышеперечисленное (и многое другое) действительно мешает сосредоточиться на разработке. Как же не «наломать дров»? Давайте разбираться.
Сперва оговоримся, что речь в данной статье пойдет об изменении («кастомизации») именно шаблона компонента. То есть о преобразовании его визуального представления, а не об изменении логики его работы. «Кастомизацию» самого компонента (как простого, так и комплексного) мы опишем в одной из следующих статей, а сейчас мы обсудим изменение его внешнего вида. Тем более, что подобная задача встаёт перед разработчиками гораздо чаще. А решить её гораздо проще :)
Изменять внешний вид компонентов приходится при интеграции верстки любого сайта. Дизайнер нарисовал сайт, верстальщик создал макет, а разработчику надо заставить всё это работать. Ведь практически в любом сайте есть:
- несколько видов меню,
- строка поиска,
- авторизация
- и много чего ещё.
Для правильного функционирования всех этих элементов в «1С-Битрикс» есть набор различных компонентов (меню, «хлебные крошки», каталог и т.п.), но внешний вид компонентов из коробки будет сильно отличаться от того, что было придумано творческой натурой дизайнера.
Сперва несколько правил
Первое
Свой собственный кастомизированный шаблон сайта мы храним в папке /local/ в корне сайта. Если такой папки там нет — создаем и переносим туда наш шаблон сайта. Битрикс работает таким образом, что у папки /local/ всегда будет приоритет выше, чем у папки /bitrix/, таким образом если в /local/templates/ и /bitrix/templates/ будут лежать шаблоны с одинаковыми названиями будут выполняться шаблоны из /local/templates/. Подобный подход к работе — активное использование папки /local/ — позволяет нам отделить свой код от кода разработчиков «1С-Битрикс».
Второе
Мы не изменяем сам компонент из коробки, да система вам скорее всего не позволит это сделать, мы копируем компонент и будем работать уже с его копией .
Третье
Ни под каким соусом мы не лезем в ядро «1С-Битрикс» ( особенно в папку /bitrix/modules/) — начинающему разработчику (а вы — начинающий разработчик, иначе зачем вы читаете эту статью?) нечего там делать.
Четвёртое
На всякий случай перед кастомизацией делаем бэкап — подробности ниже. Соблюдение всех этих правил позволит нам не «поломать сайт», не остаться без помощи техподдержки и, что очень важно, не потерять все свои разработки при обновлении версии «1С-Битрикс».
Начнём с начала − Бэкап
В режиме Администрирования идём:
Настройки → Инструменты → Резервное копирование → Создание резервной копии
Выбираем место хранения резервной копии. В облаке «1С-Битрикс» предпочтительней, если зарезервированной там памяти хватает для создании копии. Либо в папке сайта − при выборе этого варианта убедитесь, что на хостинге достаточно места для хранения резервной копии и функционирования сайта, иначе сайт просто «ляжет». Жмём кнопку «Создать резервную копию». После этого можно почти безбоязненно экспериментировать с сайтом, по крайней мере если у вас есть к нему доступ по ssh или ftp :)
Начинаем кастомизацию шаблона компонента
Давайте для примера кастомизируем что-нибудь очень нужное и не очень простое. Пожалуй, компонент «Меню» отлично подойдет.
Допустим, меню по задумке дизайнера должно выглядеть так:
Но компонент к которому применен встроенный шаблон может выглядеть, например, так:
Давайте приведем его к требуемому виду. Для этого из публичного раздела создадим тестовую страницу − все эксперименты сперва будем ставить на ней.
Вводим название для заголовка страницы, имени файла, снимаем галку «Добавить пункт меню» и жмём “Готово”:
Оказавшись на нашей тестовой странице, жмём «Изменить страницу» → «В визуальном редакторе»
Появляется окно редактирования страницы. В нем сперва выбираем режим отображения «Визуальный режим» (1), затем в поисковой строке (2) пишем «меню», выбираем компонент «Меню» (3) и, зажав левую кнопку мыши, перетаскиваем его в рабочую область (4):
После этого откроются параметры компонента. Если почему-то не открылись, просто дважды кликните левой кнопкой мыши по выбранному компоненту. Установим стандартные настройки компонента как показано на рисунке:
Дважды жмём «Сохранить» и компонент отображается на нашей тестовой странице:
Для дальнейшей работы в правом верхнем углу окна браузера должен быть включен режим правки:
В режиме правки наводим указатель мышки на наш компонент, в появившемся меню жмём на треугольник рядом с шестерёнкой, затем «Меню (bitrix:menu)» → «Копировать шаблон компонента»:
Придумываем имя для шаблона компонента, выбираем место его хранения и жмём «Сохранить»:
Появится код шаблона компонента:
Как с ним работать? Тут каждый выбирает сам.
Можно, конечно, и данном окне, но это крайне неудобно.
Можно кликнуть на ссылку «Редактировать файл в панели управления» и работать оттуда − тоже так себе вариант.
Можно просто скопировать код и открыть его в своей среде разработки, модифицировать и скопировать обратно.
Наконец, можно подключиться к серверу, на котором лежит сайт по ssh или ftp.
Я предпочитаю использовать среду разработки Visual Studio Code − это достаточно мощный и совершенно бесплатный инструмент. Его фишка (при установке соответствующего плагина) − возможность подключиться к серверу по ssh и работать с файлами сайта напрямую. Но тут каждый поступает, как ему удобнее. В любом случае, вот код шаблона компонента меню:
А вот верстка нашего меню:
Если при просмотре кода страницы возникли проблемы с обнаружением требуемого элемента верстки, то открываем html страницу в браузере и при помощи инструмента разработчика находим искомый элемент кода. Например, в браузере Google Chrome жмём кнопку на клавиатуре F12, потом кликаем на элемент, выделенный на скриншоте ниже красным, затем на меню. После этого нам остаётся найти этот же сегмент в коде:
На первый взгляд, код шаблона компонента меню может показаться страшным и непонятным, но присмотревшись к нему повнимательнее мы замечаем, что его html структура (что неудивительно) довольно похожа на нашу вёрстку.
-
имеет id, а вёрстке нет. Кроме того в вёрстке обернуты тегами с классом "nv_topnav".
Посмотрев на строки таблицы, ещё мы заметим, что в вёрстке, в отличие от шаблона меню, текст внутри тегов обернут в .
-
, обернуть всю таблицу в , добавить в строки таблицы. В результате получим такой код:
Обратите внимание, на то, что в условии "D"):?> мы удалили , т.к. в нашем примере отсутствует проверка на права доступа к элементам меню.
Предполагается, что css файл со стилями нашей вёрстки уже подключен к шаблону нашего сайта, так что мы можем смело удалять css файлы шаблона модифицируемого компонента – они нам не пригодятся.
При кастомизации шаблона компонента таким образом мы просто должны заменить модифицированным компонентом сегмент вёрстки (он приведен выше), отвечающий за меню. Для этого в публичной части жмём «Изменить страницу»:
Затем в открывшемся окне выбираем режим редактирования исходного кода и копируем код вызова компонента:
Нам остаётся только заменить скопированным кодом компонента сегмент кода верстки отвечающем за меню.
После установки системы управления сайтом 1С-Битрикс необходимо выполнить настройку системы. Первым делом - настроить дизайн сайта. Для этого нужно сделать шаблон дизайна и назначить его на все страницы или определённую папку. Разберём подробнее.
Шаблон - это дизайн обрамления страниц сайта. Один шаблон может использоваться для отображения множества страниц. Можно провести грубую аналогию: если картина - это страница сайта, то рамка картины - это её шаблон.
Шаблон сайта на Битриксе
В шаблоне можно использовать PHP код. В реальных проектах к этому часто прибегают для отображения/скрытия элементов шаблона в зависимости от раздела сайта.
Рекомендуем ознакомиться со статьями. описывающими редакторы файлов на сервере: "Средство разработки: Notepad++" или "Средство разработки: Atom"
Установить шаблон для страницы
После создания или изменения шаблона, необходимо установить его для страниц сайта. Можно поставить шаблон для определённой страницы, для всех страниц в папке или даже для параметра в адресе.
Для задания страницам сайта шаблона зайдите в панель администрирования, кликните на пункт "Настройки" в боковом меню. Затем кликните на пункт "Настройки продукта", потому на "Сайты". Кликните на пункт "Список сайтов": Откроется страница, на которой будут перечислены все сайты, которые есть в системе: Если необходимо добавить новый сайт, то кликните на зелёную кнопку "Добавить сайт". Если нужно изменить или удалить существующий сайт, то кликните на кнопку опций, сбоку строки нужного сайта: Прокрутите страницу в самый низ и найдите блок "Шаблон сайта". В этом блоке необходимо выбрать условия применения шаблонов к страницам сайта: Если выбрать опцию [без условия], то выбранный шаблон будет показываться на всех страницах сайта.
Обратите внимание, что этот список применяемых шаблонов работает по такому принципу: условия будут проверяться на "истину", и будет показан первый шаблон и того условия, которое вернёт истину. Поэтому для изменения приоритетов есть поле "Сорт.". Условия проверяются по возрастанию значения этого поля.
Часто требуется изменить или дополнить какие то элементы шаблона, либо переделать шаблон полностью. Обычно для полной смены дизайна на сайте создается тестовый сайт на поддомене и на нем производятся работы по адаптации шаблона. Этот подход не самый простой, так как это может повлечь за собой проблемы с переносом на основной домен. В данный момент мобильные версии сайта требуются не просто для удобства пользователя, поисковые системы все больше отдают предпочтение сайтам имеющим мобильные версии, используя этот метод вы можете легко адаптировать шаблон под мобильные версии без остановки уже действующего проекта.
Поддержка не ограниченного количества шаблонов в 1С-Битрикс.
Всем кто работает на 1С-Битрикс известно, что CMS предоставляет возможность подключать неограниченное количество шаблонов. Для тех кто не в курсе давайте рассмотрим как используется реализация многошаблонности.
Для добавления шаблона необходимо перейти в раздел, в административной части сайта, "Настройки" - "Настройки продукта" - "Сайты" в выпадающем меню в разделе "Сайты" есть два подраздела - "Шаблоны сайтов" и "Список сайтов".
Копируем основной шаблон сайта.
Для начала скопируем шаблон сайта, для этого перейдем в раздел "Шаблоны сайтов" и скопируем шаблон, чтобы в последствии работать с ним. Нажимаем кнопку копировать как показано на скриншоте:
Применяем шаблон к сайту для редактирования.
Нам осталось применить шаблон к сайту, но так как сайт у нас рабочий и на нем могут находится пользователи, и нам не нужно чтобы они видели производимые изменения на сайте мы подключим шаблон по условию - "Параметр в URL". Давайте сделаем это - перейдем в раздел "Список сайтов" и зайдем в настройки сайта для которого требуется изменение. В самом низу страницы настройки сайта есть блок "Шаблон сайта". Выбираем из списка в колонке "Шаблон" копию нашего шаблона, устанавливаем условие "Параметр в URL" и добавляем любое удобное вам условие к примеру test=Y, как показано на скриншоте:
Теперь вы можете редактировать новый шаблон, в то время как ваши посетители будут видеть сайт как обычно. Обратите внимание что все изменения нужно будет производить именно в папке нового шаблона, и если вам необходимо изменить шаблоны компонентов которых нет в папке, вам потребуется скопировать шаблон компонента в папку с новым шаблоном. Ни в коем случае не правьте компоненты в папке /bitrix, это может привезти к критическим последствиям. И всегда делайте бекап в Облаке 1С-Битрикс.
Ну вот собственно и вся методика, надеемся что она поможет вам сэкономить время.
Инструкция будет полезна как пользователям, так и разработчикам.
+ Как вносить изменения в стили
+ Как вносить общие изменения
+ Как нельзя кастомизировать шаблон
Если Вы приняли решение о кастомизации шаблона, крайне важно знать, как делать это правильно и так, чтобы минимизировать проблемы при его обновлении.
Обратите внимание что ни один метод внесения изменений не дает 100% гарантии безпроблемной обновляемости, поэтому прежде чем вносить или заказывать доработки, подумайте, готовы ли Вы к дополнительным временным и денежным затратам на восстановление и поддержку внесенных изменений.
Если Вы все таки решили прибегнуть к изменениям, то покажите эту статью Вашему разработчику сайта и удостоверьтесь что работа делается по этой инструкции. Дополнительно Вы можете запросить у Вашего разработчика список с полными путями измененных файлов
- Перед каждым обновлением необходимо делать полную резервную копию сайта
- Изменения стилей можно вносить в файл styles.css создав его в корневой директории шаблона сайта
- Внося любые изменения в компоненты и файлы решения, копируйте измененные файлы в папку local создав ее в корне сайта.
1) Внесение изменений в стили сайта:
- 1. Создайте файл styles.css по пути:
Для левого меню - /bitrix/templates/dresscode/
Для верхнего меню - /bitrix/templates/dresscodeV2/
После создания файла попасть в него можно нажав на сайте на серой административной панели шаблон сайта- изменить стили САЙТА - 2. Вносите все изменения по стилям в этот файл. Он не затирается при обновлениях.
- 3. Чтобы найти элемент, который Вы хотите изменить кликните на него правой кнопкой мышки и нажмите "просмотреть код" (в браузере Google Chrome)
- 4. Найдите класс или id который Вы хотите изменить
- 5. Скопируйте название , занесите в файл styles.css и переопределите стили
2) Внесение любых изменений через папку Local
Если Вы приняли решения о любых кастомизациях решения, помните, они будут не только влиять на обновляемость шаблона, но также постепенно могут устаревать, т.к. битрикс с некоторой периодичностью обновляет ядро, и изменения ядра сказываются на работе модулей решения, соответственно если меняется принцип работы определенного модуля или компонента, мы это учитываем в обновлениях решения. Поэтому даже ведение кастома через папку local не дает гарантии что Вам не придется переделывать измененные Вами элементы.
Также внесение изменений влияет на оказание технической поддержки решения. Если Вы внесли изменения в шаблон и у Вас после этого перестало что-то работать, что работает стандартно, мы сможем только вернуть Вам работоспособность на стандартных файлах решения. Кастомизация, а также вопросы связанные с кастомизацией, выходят за рамки технической поддержки. Если сотрудник знает, то может дать Вам совет по Вашему вопросу. Но это скорее не правило, а исключение из правил.
Как работает вынесение изменений в папку local
Если Вы копируете файл решения в папку local, на сайте этот файл будет запрашиваться по умолчанию из этой папки. При удалении или переименовывании этой папки все файлы будут запрашиваться из стандартных. т.е. если произошла ситуация, что Вы обновили решение и у Вас перестал правильно работать кастом, Вы можете переименовать папку в local2 и у Вас подтянутся стандартные файлы.
Как работать с папкой local
- 1. Ее необходимо создать в корне Вашего сайта.(лучше делать это через ftp)
- 2. Создать в папке полный путь к файлу (Без начальной папки bitrix), который Вы собираетесь редактировать
- Обратите внимание на пути к файлам
Если было например : bitrix- components-dresscode
то должно стать : local - components- dresscode
т.е. папка local идет не перед, а вместо папки bitrix - 3. Создать сам файл и скопировать его содержимое из одноименной папки в шаблоне
- 4. Внести свои изменения и проверить
- . Если Вы переносите из папки bitrix/components, то сам компонент нужно копировать целиком, иначе он не будет брать из папки local
Например если Вы хотите внести изменения в шаблон корзины, то нужно файл
bitrix/templates/dresscode/components/dresscode/sale.basket.basket/.default/template.php
скопировать в папку local с сохранением пути к файлу но без папки битрикс.
local/templates/dresscode/components/dresscode/sale.basket.basket/.default/template.php
А если Вы вносите изменения в компонент, например
/bitrix/components/dresscode/catalog.item, то нужно перенести ВСЮ папку с комппонентом в :
/local/components/dresscode/catalog.item
Как нельзя вносить изменения в шаблон
Если Вы вносили изменения одним из способов указанных ниже, то обновления будут устанавливаться некорректно, либо затирая Ваши изменения, либо не обновляя шаблон вообще, что в последствии приведет к ошибкам.
1) Не переименовывайте шаблон сайта (например с Dresscode на Dresscode-custom)
если переименовать шаблон и вносить изменения в него, то ни один файл шаблона не будет обновляться вне зависимости от того вносили ли Вы в него изменения. будут обновляться только общие компоненты и модули, что в последствии приведет к ошибкам в связи с устаревшими методами, которые можно будет решить только откатившить на резервную копию или заменив шаблон на стандартный, потеряв все изменения.
2) Не переименовывайте шаблоны компонентов и компоненты (например news на news-custom)
Если Вы переименуете шаблон компонента или компонент, он также перестанет обновляться, т.к. к стандартным файлам решения он уже не будет иметь никакого отношения.
3) Не вносите изменений непосредственно в стандартные файлы решения
Если Вы внесете изменения прямо в файлы шаблона, то они попросту затрутся при обновлениях, и восстановить их можно будет только либо откатившись к резервной копии, либо вручную заменяя файлы из резервной копии. Наша техническая поддержка не сможет Вам помочь в восстановлении изменений.
4) Не выносите в local полностью весь шаблон с сайтом
Если Вы скопируете абсолютно весь шаблон ( bitrix-templates-dresscode ) в папку local, то при обновлениях у Вас обновятся все компоненты, но шаблоны этих компонентов останутся старыми, также не будут обновляться скрипты, что может привести к поломкам функций сайта. Выносите только то, что действительно было Вами кастомизировано.
Пожалуйста, если для Вас не понятно, что описано в этой статье и Вы не знаете как читать и прописывать код, то прежде чем начать, изучите этот вопрос или доверьте внесение корректировок профессоналам
Уважаемый читатель, данная статья является по сути своей продолжением статьи «Как сверстать веб-страницу. Часть 2 — Bootstrap» и здесь мы отойдём от собственно вёрстки, занявшись интеграцией HTML шаблона в CMS 1С-Битрикс.
В предыдущей части Хабраюзер Mirantus сверстал шаблон Corporate Blue от студии Pcklaboratory с помощью Bootstrap 3.
Для данной статьи мы воспользуемся одним из форков репозитория на GitHub, приведённого в конце предыдущей статьи, поскольку в нём были исправлены некоторые баги.
Создание каркаса шаблона
Шаблон сайта с точки зрения 1С-Битрикс – это папка с набором определённых файлов внутри, поэтому шаблон может быть создан как через файловую структуру (инструментами 1С-Битрикс, по FTP или SSH), так и с помощью раздела.
- Первым делом создадим в папке /bitrix/templates/ раздел, название которого в дальнейшем будет использоваться в качестве ID нашего шаблона, например whitesquare-bootstrap (в дальнейшем в рамках статьи мы будем всегда по умолчанию подставлять именно это значение в качестве ID шаблона).
- Перенесём в папку шаблона общие ресурсы (JS, CSS, изображения, шрифты) из шаблона страницы:
- /bitrix/templates/whitesquare-bootstrap/header.php
- /bitrix/templates/whitesquare-bootstrap/footer.php
(это будет пример рабочей страницы на котором мы будем проверять работоспособность нашей рабочей области) в котором помимо Html разметки мы добавим вызов header’а и footer’а (они создадутся автоматически, если создавать страницу средствами 1С-Битрикс):
Элементы 1С-Битрикс
Фактически мы создали статичный HTML каркас с минимальным набором элементов 1С-Битрикс, который уже работает.
Дальнейшая наша задача – перевод отдельных функциональных блоков на работу с компонентами 1С-Битрикс.
Компоненты 1С-Битрикс
В рамках данной статьи мы остановимся только на процессе интеграции вёрстки со стандартными компонентами 1С-Битрикс. Мы не будем создавать свои компоненты и не будем кастомизировать типовые.
Мы создадим отдельную страницу (например, 1.php) на которой будем размещать по 1 компоненту для упрощения работы средствами 1С-Битрикс.
Разместим компонента (например, форму поиска — bitrix:search.form) с помощью визуального редактора:
Используя включенный режим правки скопируем шаблон компонента в шаблон сайта. Для этого наведём курсор мыши на область с компонентом, дождёмся пока появится контекстное меню с шестерёнкой и нажмём на стрелку выпадающего списка:
В появившемся диалоге нам необходимо указать имя шаблона компонента и выбрать шаблон сайта в котором будет хранится шаблон компонента (в нашем случае это whitesquare-bootstrap):
В результате наших действий в Шаблоне компонента /bitrix/templates/whitesquare-bootstrap/ появилась ещё одна папка – components – в ней будут находиться шаблоны всех компонентов, используемых в рамках шаблона сайта.
Первый появившийся шаблон компонента будет расположен по адресу /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/
Опытные разработчики могут сразу создавать шаблон компонента, копируя его в шаблон сайта из компонента.
Иногда для дальнейшей работы больше подходит один из шаблонов компонента, поставляемых вместе с системой. Тогда имеет смысл посмотреть каждый из них в работе. Это можно сделать в визуальном редакторе по нажатию на кнопку шестерёнки:
Включаемые области (лого, копирайт, соц сети)
Компонент включаемой области позволяет вложить внутрь себя любой текст, HTML или php код, а так же другие компоненты и вывести этот контент для определённой страницы, раздела или везде, где вызывается включаемая область.
Для всех указанных выше объектов мы считаем рациональным использование включаемой области с целью вынести эти блоки из шаблона. Т.е. для их редактирования по прежнему необходимо будет владеть минимумом познаний в HTML.
Профессионалы могут возразить, что для блока с кнопками соц сетей следовало бы сделать свой компонент, однако нам это кажется не рациональным. Проще загнать этот блок за 10 минут во включаемую область и отредактировать при необходимости, ведь адрес сообщества Facebook не меняется каждый день!
- /bitrix/templates/whitesquare-bootstrap/include/bottom-logo.php
- /bitrix/templates/whitesquare-bootstrap/include/copyright.php
- /bitrix/templates/whitesquare-bootstrap/include/social-networks.php
- /bitrix/templates/whitesquare-bootstrap/include/top_logo.php
Внутри файла включаемой области просто помещаем кусок HTML кода:
Мы не будем в данной статье рассматривать вопрос интеграции Twitter Ленты, поскольку самое простое решение – положить виджет твиттера во включаемую область, аналогично описанным выше решениям.
Так же в Marketplace 1С-Битрикс хватает компонентов, выводящих твиттер ленту, которыми вы так же можете воспользоваться.
Форма поиска
Мы воспользовались компонентом bitrix:search.form и скопировали suggest шаблон компонента в шаблон сайта.
HTML код шаблона компонента находится в файле /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/template.php
Как видим, у нас не простой, а комплексный компонент (т.е. компонент в состав которого входят другие компоненты). В данном случае это сама форма в которую производится ввод поискового запроса.
Скопируем её шаблон в шаблон сайта.
К сожалению, это не очень красиво – в публичке мы используем 1 компонент, а шаблонов у нас 2. Воспользуемся обычной схемой для комплексных компонентов:
Комплексный компонент
- Создадим в папке /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/ папку bitrix
- Переместим шаблон компонента /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.suggest.input/ в /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/bitrix/. Таким образом получив:
/bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/bitrix/search.suggest.input/top/ - В параметрах компонента bitrix:search.suggest.input укажем шаблон top:
Вернёмся к форме поиска
- /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/template.php
- /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/bitrix/search.suggest.input/top/template.php
- Как вы можете видеть, мы заменили фразы “GO” и “Search” в компонентах на вызов GetMessage – таким образом, мы вынесли фразы в языковые файлы и можем задать разные значения для русского и английского сайтов, использующих общий шаблон и общий компонент.
- /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/bitrix/search.suggest.input/top/lang/ru/template.php
- /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/bitrix/search.suggest.input/top/lang/en/template.php
- /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/lang/ru/template.php
- /bitrix/templates/whitesquare-bootstrap/components/bitrix/search.form/top/lang/en/template.php
Верхнее меню
Для упрощения работы над сайтом перед началом работы над каждым меню мы будем создавать файл меню с актуальным контентом для упрощения работы.
Для создания верхнего меню воспользуемся компонентом bitrix:menu. Скопируем шаблон .default этого компонента в шаблон нашего сайта под именем top. Он практически не содержит ничего лишнего, поэтому мы легко адаптируем его под нашу вёрстку:
Теперь заменим блок верхнего меню в шаблоне на вызов компонента меню:
Левое меню
Аналогично верхнему меню возьмём за основу компонент компонентом bitrix:menu. Скопируем шаблон .default этого компонента в шаблон нашего сайта под именем left.
После правки шаблона получим:
Заменим блок левого меню в шаблоне вызовом компонента:
Пользуясь тем, что в 1С-Битрикс меню наследуется мы можем положить файлы левого меню .left.menu.php во все разделы, где они нужны с разным содержимым, а в корне, например, вовсе убрать. Вёрстка не пострадает, а меню будет отображаться лишь там, где это необходимо.
Нижнее меню
Нижнее меню (в разделе SiteMap) отображается в 2 колонки. Можно конечно сделать универсальный компонент меню в шаблоне которого пункты будут делиться по столбцам (автоматически, либо по наличию какого-либо параметра, установленного для пунктов в режиме расширенного редактирования меню).
Однако, мы понимаем, что подвал – не самая часто редактируемая часть и нет смысла тратить значительные усилия на его разработку.
Поэтому мы пойдём по простому пути (за который любители идеального кода, вероятно, нас проклянут) – мы создадим 2 меню: bottomL и bottomR.
Несмотря на то, что меню будет 2 шаблон мы для них будем использовать 1.
Вновь возьмём за основу компонент компонентом bitrix:menu. Скопируем шаблон .default этого компонента в шаблон нашего сайта под именем bottom.
Шаблон:
Сайдбар – наши офисы
Честно говоря без демо контента не понятно какую функцию оный сайдбар выполняет. Рискнём предположить, что всё-таки в нём показывается не картинка (уж больно несовременно), а полноценная карта Google. Наверное она маловата, чтобы располагать на ней элементы управления, так что она будет манималистичной.
Если же я не прав, то пожалуй один из самых простых способов реализации сайдбара – включаемая область, о которых мы уже говорили.
Возьмём компонент bitrix:map.google.view и скопируем шаблон .default в шаблон сайта, переименовав в sidebar-map.
Мы весь сайдбар сделаем частью компонента, включая заголовок. А значит, чтобы упростить работу редакторов необходимо вынести текст заголовка в параметры компонента.
Создадим в шаблоне компонента файл .parameters.php следующего содержания:
- RU (/bitrix/templates/whitesquare-bootstrap/components/bitrix/map.google.view/sidebar-map/lang/ru/.parameters.php):
- EN (/bitrix/templates/whitesquare-bootstrap/components/bitrix/map.google.view/sidebar-map/lang/en/.parameters.php):
Шаблон компонента в таком случае модифицируется совсем незначительно (поместим карту внутрь сайдбара и добавим заголовок):
Теперь можно поместить вызов компонента сайдбара в шаблон сайта (если он должен выводиться на всём сайте, а лишь в определённых разделах, то достаточно обернуть его во включаемую область):
Теперь пришла пора взяться за рабочую область!
Список членов команды
- Имя
- Фото (миниатюра)
- Должность
- Порядок относительно других членов команды
- Символьный код инфоблока – TEAM
- Символьный код свойства «Должность» — POSITION
Может показаться, что на этом этапе нам подойдёт компонент catalog.section с шаблоном board (этот шаблон генерирует таблицу с заданным количеством столбцов), однако в процессе эксплуатации такое решение весьма вероятно окажется сложнее. Поэтому мы всё же воспользуемся bitrix:news.list (скопировав шаблон .default в шаблон сайта под именем team-list) и допишем немного собственного кода.
Добавим в .parameters.php нашего шаблона новое значение:
Не забудем добавить значения в языковые файлы!
Теперь возьмёмся за шаблон компонента. Тут нам понадобится простенький счётчик, который будет закрывать строчные блоки row и ставить отступ для 2,3,4 и 5 блоков в одной строке.
Помимо счётчика нам понадобится вывести значение нашего свойства «Должность», для которого мы задали код POSITION. В массиве с данными, которые отдаёт компонент это свойство хранится в $arResult[«ITEMS»][«PROPERTIES»][«POSITION»][«VALUE»], поскольку мы будем выводить свойство в перебираемом по ITEMS элементам, то это будет выглядеть:
Сам шаблон тогда будет выглядеть так:
Мы не стали заморачиваться с выносом кода свойства в параметры, а так же с настройкой количества элементов в строке, чтобы не усложнять шаблон компонента.
Как видите, в нём практически ничего не осталось от первоначального шаблона списка новостей (и он гораздо легче громоздкого компонента каталога).
Не забудьте удалить ненужную более папку /bitrix/templates/whitesquare-bootstrap/images/team/ с картинками в шаблоне после перевода блока с персонами на инфоблок!
Текст страницы ABOUT
Поскольку у нас нет понимания какие функции выполняют остальные элементы страницы, должна ли появляться случайная цитата или, скажем, должны ли картинки вести в фотогалерею, мы пойдём по простому пути.
Весь контент останется статичным, мы лишь добавим несколько стилей, чтобы будущие редакторы могли работать со страницей с большим удобством.
Для этого воспользуемся файлом стилей сайта, приложенном к нашему шаблону /bitrix/templates/whitesquare-bootstrap/styles.css (или административным разделом):
Поскольку этот файл используется для применения CSS к контенту в том числе в визуальном редакторе, нам придётся «забыть» о каскадности CSS и прописать стили без учёта вложенности элементов.
Например, цитата станет выглядеть так:
Для того, чтобы редакторы могли сами применить этот стиль с помощью виз редактор необходимо добавить в файл .styles.php в корне шаблона массив стилей:
Или через инструмент редактирования шаблона (вкладка «стили сайта»):
Наводим марафет
С целью немного облегчить работу редакторов можно создать в шаблоне сайта папку /page_templates/, где будут находиться шаблоны страниц, которые можно создавать ан проекте по умолчанию.
Шаблон страницы представляет из себя обычный php файл, идентичный странице в публичной части.
Помимо шаблонов необходимо так же разместить файл .content.php с массивом всех возможных шаблонов страниц. В нашем случае это будет:
- /bitrix/templates/whitesquare-bootstrap/lang/ru/page_templates/.content.php
- /bitrix/templates/whitesquare-bootstrap/lang/ru/page_templates/.content.php
- Описание — description.php в корне шаблона
- Скриншот — screen.jpg в корне шаблона
Вот собственно и всё!
Мы натянули готовую HTML вёрстку Bootstrap на 1С-Битрикс, сверстали страницу и получили полноценный шаблон!
Послесловие
Статья получилась очень длинная, поэтому очень непросто вычитать все неточности и опечатки. Если вы нашли ошибку – напишите мне в личку, и я с удовольствием её исправлю!
Огромное спасибо Mirantus за оригинальную статью и готовую вёрстку, которую я смог взять за основу!
В качестве небольшого бонуса в GitHub проекте помимо собственно шаблона и страниц я разместил папку IMPORT_DATA, в которой содержится дамп демо-данных для единственного инфоблока с членами команды, фигурировавшего в статье. Вы можете импортировать его как XML на странице /bitrix/admin/iblock_xml_import.php?lang=ru
Читайте также: