Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности как шаблон очень и очень сложно. Исходя из этого я решил выделить несколько правил создания шаблонов для 1с-Битрикс, которые призваны облегчить жизнь при поддержке сайта. Однако я не претендую на абсолютную истину и все нижеописанные рекомендации складываются исключительно из личного опыта.
Логика и представление.
Необходимость разделять процессы формирования и вывода результа нужно запомнить как аксиому. Архитектура системы Битрикс дает нам возможность изменять результаты работы компонента (если по каким-либо причинам не хочется его копировать) на этапе вывода — в файле result_modifier.php его шаблона. Следует помнить, что он кешируется наряду с template.php, т.е. допускает использование в разумных пределах дополнительных выборок через API системы. Разумеется, это справедливо только при включенном кешировании в настройках компонента.
Некоторые сложности использования дополнительных файлов шаблона компонента (script.js, result_modifier.php, component_epilog.php) создает сам Битрикс — во-первых, из административной части в 1 клик невозможно создать обычный файл, без подключенного хедера и футера. Во-вторых, неплохо бы добавить кнопки «Создать result_modifier.php» и «Создать component_epilog.php» из меню компонента.
Лишняя информация
В процессе интеграции мы чаще всего копируем стандартные шаблоны компонентов. Они, в свою очередь, почти всегда выводят максимум доступной информации. Если вывод какого-либо блока не подразумевается совсем, не стоит оставлять кусок кода, отвечающий за его показ.
Например, вывод дополнительных полей в news.list. Код шаблона компонента при невыбранных полях в настройках ничего не выводит, но по сути он там лишний! Если в ТЗ и макете нет упоминания об этих полях, код лучше удалить. При этом улучшится читабельность (чтобы понять насколько все может быть запутано, загляните в стандартный шаблон форума или блога) и снизится порог вникания в шаблон. В любом случае, при необходимости недостающие части легко добавить.
То же самое касается файлов. Из скопированного комплексного компонента можно и нужно удалять ненужные шаблоны компонентов, вместо них автоматически подключатся стандартные.
Система шаблонов в Битрикс допускает формулировку «а вдруг где-нибудь используется», поэтому лучше сразу удалить лишнее, чем копить как снежный ком ненужную информацию.
Проектирование шаблона
Если Вы делаете шаблон с «нуля», сразу продумывайте его структуру — где будут храниться изображения, шаблоны компонентов, включаемые файлы. Тут наиболее распространены 2 варианта:
1. Вся информация внутри шаблона. Этот вариант следует использовать когда точно известно, что шаблон сайта будет один или когда все они радикально отличаются друг от друга. Плюсом такого размещения являяется возможность скачать шаблон сайта целиком. К слову, для больших сайтов необходимость этого стремится к нулю в силу сильной интеграции с инфоблоками, форумами и другой информации из БД.
2. Шаблоны компонентов, картинки, скрипты, включаемые файлы вынесены за пределы шаблонов сайта. Такой вариант позволяет быстро изменить данные во всех шаблонах разом. Например, обновленный дизайн формы поиска или картинка логотипа гарантированно изменится на всем сайте.
Выполнение этих несложных правил позволяют без труда в короткие сроки возращаться к старым и забытым проектам. А главное, улучшение качества кода и интеграции в целом поднимут вашу ценность как разработчика!
Больше статей и материалов по web-разработке в tg-канале - подписывайтесь!
Подписаться в telegram
Правильно ли я понял, что рекомендаций всего 2:
1. удалять из шаблона все, что вам не требуется
2. определиться, где хранить файлы стилей и картинки и хранить их в этом месте всегда
Мы, например, именно так и делаем:
1. шаблон делаем на основе верстки, а не переделываем стандартный
2. все стили всегда храним вне шаблона, в одном месте сайта
рекомендация про result_modifier.php конечно полезна, но, боюсь, без дополнительных комментариев начинающий разработчик ее не поймет.
Роман, спасибо за комментарий!
По пункту 1 я имел ввиду шаблоны компонентов. Например, скопированный дефолтный шаблон комплексного catalog очень объемный и в 90% случаев полностью не используется, в этом случае из него можно многое удалить.
По пункту 2 — тут не только стили, еще и картинки, включаемые файлы, скрипты. Шаблоны компонентов тоже допускают хранение или в шаблоне сайта .default или в текущем шаблоне. В особо запущенных случаях вовсе не разобраться, откуда что подключается:) Я предлагаю выбирать единую схему хранения еще на этапе проектирования.
Result_modifier.php — это основы битриксошаблоностроения:) Надо бы ссылок на официальную докуметацию добавить..
Да, порой правда ужасно ковырять чужие шаблоны.
Я бы добавила рекомендацию — комментировать свой код в обязательном порядке.
УТ, что менее всего вероятно, либо проверить доступ к приемнику, может быть все работает, но просто не передается?