Набор скриптов для быстрого старта сайта на Bitrix.
Цель: возможность быстро накатить типовую файловую структуру и ряд сниппетов на свежеустановленный дистрибутив bitrix.
Проект предполагает широкое использование папки /local, в которой расположены все файлы, необходимые разработчику. Папка /bitrix в идеале должна быть полностью занесена в .gitignore, поскольку содержит ядро системы.
auth/
bitrix/
├── php_interface/
├── this_site_support.php
└── include/
└── site_closed.php
favicons/
includes/
└── pages/
│ ├── 404.php
│ ├── main.php
│ └── ui.php
├── favicons.php
├── footer.php
├── header.php
└── html.php
local/
├── assets/
│ ├── backend/
│ │ ├── css/
│ │ ├── images/
│ │ ├── js/
│ │ └── bower_components/
│ ├── css/
│ ├── fonts/
│ ├── frontend/
│ │ └── sass/
│ ├── images/
│ ├── js/
│ ├── lib/
│ └── bower.json
│
├── components/
│
├── gadgets/
├── logs/
├── modules/
├── php_interface/
│ ├── classes
│ │ └── Autoloader.php
│ ├── config
│ │ ├── backend.php
│ │ ├── const.php
│ │ ├── events.php
│ │ └── frontend.php
│ │
│ ├── include
│ │ ├── events/
│ │ └── handlers.php
│ │
│ ├── admin_header.php
│ └── init.php
│
└── templates/
├── .default/
│ ├── components/
│ └── page_templates/
│ └── standard.php
└── rename_me/
personal/
search/
.htaccess_example
404.php
favicon.ico
index.php
robots.txt
Папка, для тех, кто забывает положить форму для восстановления пароля. Ну и авторизация по умолчанию.
- this_site_support.php — Информация о партнёре и техподдержке (нужна по требованиям монитора качества). Отображается внизу формы авторизации в админке. Этот файл не подхватывается из local, возможно со временем это исправят. Информация о поддержке и партнёре
- include/site_closed.php — Красивая заглушка для отключенной публички. К сожалению пока этот файл не подхватывается из папки local.
Папка с различными иконками под все устройства о основные ОС, нужны для красивого отображения сайта при добавлении в закладки, на рабочие столы и т.д.
Для генерации иконок очень хорошо подходит сервис realfavicongenerator.
В этой папке располагаются включаемые области и прочие php-файлы, которые контент-менеджер или клиент может отредактировать через веб-интерфейс битрикса, из публичной части.
В этой папке располагаются свёрстанные страницы проекта. Удобство такого расположения очевидно: файлы можно подключать как включаемые области непосредственно в проект, или просто подглядывать в них в процессе интеграции вёрстки в битрикс.
- 404.php — 404 страничка (не путать с файлом в корне, этот файл — просто вёрстка контента)
- main.php — Главная страница.
- ui.php — UIKit, тут собраны все основные элементы, для удобства проверки и стилизации элементов.
Основная папка проекта.
В этой папке содержатся файлы, относящиеся к фронтенду (стили, скрипты, картинки шаблона), а так же включаемые области и php-файлы, отвечающие на ajax-запросы.
- template_styles.css — Скомпилированный CSS-файл, который подключается в шаблон.
- Так же в эту папку складываем все CSS-файлы, которые не требуется включать с LESS по различным соображениям (к примеру не требующий правок файл какого-нибудь плагина для jQuery). Файлы подключаются в автоматическом через cnAsset.
- В эту папку кладём картинки шаблона.
- Если нужны временные картинки, не нужно копировать их из макета, используйте сервис (и плагин для SublimeText) не захламляйте папку.
- ie_logo.png - не удаляем картинку, она отображается в админке (см раздел про минитор качества)
- Сюда складываем js-файлы и jquery-плагины, необходимые для работы шаблона, которые будут подгружаться через автозагрузчик cnAsset.
- main.js — основной js-файл шаблона.
Папка для конфигураций
- const.php — константы вашего проекта
- events.php — вызовы AddEventHandler для всех возможных кастомных обработчиков событий проекта.
- frontend.php — регистрация js библиотек из /local/assets/lib/frontend/
Не нужно подключать все свои js файлы прямым включением в шапку сайта. Для подключения js файлов в битриксе есть добротный класс CJSCore. Можно зарегистрировать все свои js библиотеки, и подключать их строго на нужных страницах. Для регистрации библиотек используем файл, который должен быть подключен на всех страницах нашего проекта — /local/php_interface/config/frontend.php
Для подключения зарегистрированной библиотеки на какой-то странице сайта, используйте конструкцию:
CJSCore::Init(array('library_name'));
Ваша библиотека будет подключена с использованием AddHeadScript.
Папка для размещения собственных компонентов.
Папка для размещения гаджетов рабочего стола (возможно когда-нибудь мы будем туда класть загортовки гаджетов)
Папка для хранения логов (туда автоматом записывается лог, создаваймый классом CNLog).
Папка для размещения собственных модулей.
- init.php — init.php сайта, в который подключается дефолтный init.php. Так же там присутствуют некоторые, полезные во всех проектах, функции.
- .default — папка с шаблонами компонентов.
- page_templates/standard.php — шаблон для новых страниц (вместо глупой надписи "text here");
- rename_me — папка с шаблоном сайта (не забываем переименовать).
- header.php — шапка сайта.
- footer.php — подвал сайта.
- description.php — описание шаблона.
Папка, отвечающая за поиск по сайту и формирование карты сайта (не sitemap.xml, а непонятная сущность, формирующаяся из меню сайта).
Не забываем удалить этот файл, предварительно прочитав и сделав, как написано. Тут лежит пример правильной склейки зеркал для apache.
404-я страничка.
Автозагрузка классов.
Больше не придется писать CModule::IncludeModule('iblock');
в каждом компоненте или скрипте.
Типовая файловая структура bitrix-шаблона расположена по адресу /local/templates/main
.
Общие рекомендации по шаблонам bitrix:
-
Все представления (
views
), включая шаблоны компонентов, лучше помещать в папку основного шаблона сайта:/local/templates/main/components
. Впоследствии это может упросить жизнь при проведении редизайна сайта. -
Лучше избегать большого количества шаблонов сайта, поскольку сторонний разработчик для внесения минимальной правки в шаблон потратит больше времени на поиск нужного шаблона, нежели на внесение изменений.
-
Избегайте использования автоматически подключаемых файлов style.css в шаблонах компонентов, т.к. это затрудняет внесение изменений. Используйте стандартный автоподключаемый файл styles.css в корне шаблона сайта в качестве единого файла стилей.
-
Клиентскую логику лучше выносить в файлы script.js, которые расположены в шаблонах компонентов и подключаются автоматически. Использовать единый файл с обработчиками событий DOM не возбраняется, но необходимо обязательно комментировать, к какой части страницы относится тот или иной JavaScript-код и где он применяется.
Файл полностью закрывает сайт от индексации поисковиками. Это делается для того, чтобы тестовые площадки, размещенные в сети, не оттягивали на себя трафик, отображаясь в результатах поиска наравне с основным сайтом.
В дальнейшем рекомендуется не отслеживать изменения robots.txt, поскольку последние версии bitrix позволяют контент-редакторам и SEO-специалистам править robots.txt через админку.
Стандартный код от битрикса не отключает обработку PHP, когда оно в режиме FastCGI (специфика режима). Для отключения обработки PHP в режиме FastCGI нужно сперва аннулировать типы.