Сегодня: Вторник, 19.03.2024, 05:57 (МСК)| Здравствуйте, Гость| Мой профиль | Регистрация | Вход | RSS

Работаем с VirtualDub

Спецэффекты в Cinema4D

Роботы и экзоскелеты

Новинки в области цифровых камер

Программы — виртуальные гитаристы
Главная » WEB

Несколько слов о Битрикс и доработке сайтов на его базе

11.05.2013
К Битрикс можно относиться по-разному. Так получилось, что и мне пришлось столкнуться с этим CMS-семейством по реальной работе, причем в сжатые сроки нужно было освоить несколько разновидностей «Управления сайтом» и «Корпоративный портал» для того, чтобы можно было создавать новые ресурсы на их базе и корректировать старые сайты, сделанные на них же. В принципе, кроме неуклюжего с моей точки зрения редактора кода с подсветкой синтаксиса, серьезных минусов на первом этапе освоения я не нашел. Плюсов гораздо больше. И об этом мы поговорим подробнее чуть позже.   



Документации и материалов в интернете много. Но стоит отметить и некоторые отличия. Среди веб-разработчиков под Битрикс можно выделить две группы, а именно: 
  • Люди, которые стартовали свою карьеру с его изучения и мыслят сугубо представлениями Битрикс.
  • Опытные программисты/веб-разработчики, которые перешли на Битрикс в какое-то время. 
Естественно, и смотрят они на все происходящее по-разному, и советы по решению задач также иногда отличаются. 

Если опытный программист знает пять и более вариантов решения какой-нибудь типовой ситуации (или как минимум два:)), узкоспециализированный Битрикс-специалист пытается решить все в рамках того, что предлагает система, описывает документация, либо ищет готовые решения/модули/компоненты на Marketplace (каталог решений для Битрикс). Согласитесь, что это специфично не только для Битрикс, а, вообще, в рамках любых узких специализаций по CMS, тем же Drupal, Wordpress, Joomla и т.п. 


Битрикс. Плюсы и минусы


Сама система Битрикс сейчас распространяется очень динамично, в рейтинге CMS Magazine она занимает первое место среди всех систем управления контентом, причем со значительным опережением. Авторы Битрикса выпускают множество вариантов версий для типовых веб-проектов (интернет-магазинов, сайтов для различных учреждений (медицинских, образовательных), порталов и так далее). То есть в типовом случае достаточно скачать/установить нужную версию, настроить, как требует техническое задание, оплатить, и запустить сайт в работу. 

Среди плюсов Битрикса можно выделить высокое качество исполнения и стабильность работы, причем мы говорим об очень хорошей работе проектировщиков и программистов со стороны авторов этой системы. Достаточно сказать, что вся разработка сайтов на Битриксе ведется в веб-среде в окне браузера, и в отличие от других SaaS здесь реализованы такие интересные вещи как использование двойного клика левой кнопки мыши, либо специализированные контекстные меню по нажатию правой кнопки мыши. Довольно удобно распределена функциональность и логика GUI администраторской части.  

В принципе, многим знакомы такие термины как «визуальное программирование» либо «модульно-ориентированное программирование» или же «компонент-ориентированное программирование». Битрикс довольно сильно напоминает визуальные конструкторы для создания мультимедийных презентаций и казуальных игр. Для веб-разработчиков начального уровня, обычных пользователей, которые хотят научиться, контент-менеджеров и части администраторов работа с Битрикс основывается на визуальном проектировании. Поэтому для них является важным выбор конкретной версии продукта, для того, чтобы она была максимально приближена к тому сайту, который они хотят сделать. Это актуально и для сложных ресурсов, потому как в специализированных версиях есть хорошо сделанные уникальные решения, обычная разработка которых заняла бы много человекочасов опытных программистов. 

Стандартные «прошитые» блоки имеют и свои минусы, потому как при визуальном проектировании имеют мало альтернатив. Например, в Битрикс используется только один вариант CAPTCHA, который при современных условиях довольно легко обойти роботом. В некоторых случаях определенные элементы нельзя удалить (например, те же группы пользователей, которые не нужны), и они только загромождают администраторскую часть.

Но, в целом, это незначительные минусы, которые можно исправить, обойти или игнорировать.  
Также довольно «интересно» работает преобразование из Word при вставке текста в визуальном редакторе. Такая вставка подразумевает удаление ненужной информации форматирования и т.п., и превращение нужных тегов Word в теги HTML. В ряде случаев теги могут неадекватно преобразовываться, поэтому вставку лучше производить известным всем стандартным образом — через текстовый редактор. На самом деле ситуация типична для многих WYSIWYG-редакторов и именно вставки из Word. 


Доработка Битрикс с точки зрения программирования


С точки зрения программирования сайты на Битрикс можно дорабатывать довольно свободно. 

Есть возможности:
  • изменения стандартных компонентов системы;
  • создания своих собственных компонентов, как с нуля, так и с вариантом копирования/изменения стандартных компонентов;
  • создания новых модулей;
  • использования инфоблоков;
  • вставки PHP-кода на любых страницах, 
  • использования сниппетов;
  • создания собственной взаимосвязанной структуры из PHP-файлов;
  • вставки JavaScript;
  • изменения HTML в шаблонах компонентов и т.п.;
  • изменения CSS;
То есть, по существу, вы можете менять абсолютно все по своему усмотрению. Единственное, что не рекомендуют авторы и опытные специалисты по Битрикс — это обращение напрямую к БД. В самом коде Битрикс вы такого также не увидите, поскольку там используются обертки, превращающие высокоуровневую логику в запросы. Работа с системными таблицами БД ведется только через API системы, можно, конечно, создавать и пользовательские таблицы. Лично я на этапе работы с локальной копией, установленной на Windows, даже использовал вариант дополнительного подключения к сторонней БД, с кэшированием результатов, помещением частых однотипных запросов в cron с последующим кэшированием результатов и т.п. Все-таки не очень привычно работать с БД не видя ни её, ни самих запросов к базе. 

Сам «движок» Битрикса довольно тяжел, в нем применяется сразу несколько собственных технологий для ускорения работы. Это и кэширование, и внутренняя оптимизация запросов, и т.п. В эти вопросы следует внедряться только со знанием дела. 

Кстати, в Битрикс и своя собственная внутренняя альтернатива cron’у, а именно, агенты, которые быстро создаются в панели настроек (закладка «Инструменты»). Агенты применимы для не ресурсоемких операций. 

Теперь перейдем к небольшому примеру, который должен развеять мифы о том, что «работа с Битрикс — это как езда на танке по узким улочкам». 


Простой пример программирования


В принципе, многим вполне достаточно того, что предлагает Битрикс, но нередко приходится допиливать сайт доступными средствами. Программистам иногда проще просто выходить на PHP-код и использовать возможности конкретно PHP. Есть несколько типовых ситуаций, в которых удобнее так и делать. 

Допустим нам нужно расширить функционал для каждого зарегистрированного посетителя. Например, отслеживать/фиксировать его последние действия, отображать или не отображать для него определенные блоки кода внутри страницы, менять классы CSS и т.п. 

Мне недавно попалась интересная задачка схожей тематики. Требовалось для каждого зарегистрированного пользователя завести отдельную папку, в которую он может загрузить свои файлы (любые). То есть не «документооборот с распределенными правами доступа», а тупо кнопка «Загрузить файл» внизу страницы. PHP-скрипт непосредственно аплоуда файлов на сервер довольно стандартен, его без труда можно найти в интернете. Нужно было привязаться к уникальному свойству пользователя (это может быть ID, логин), при попытке загрузки файла создать для него одноименную папку где-нибудь на сервере, если ее нет, например, в какой-нибудь собственный специальный каталог (user_uploads) и загрузить туда файл. 

Итак, самый ключевой вопрос для всех задач, описанных выше: как нам получить свойства пользователя? Можно обратиться как напрямую к БД, но, в принципе, есть вариант и решения данного вопроса через API. В его рамках для этого необходимо использовать метод GetList класса CUser. В приведенном коде мы выводим на отображение свойство LOGIN (логин, под которым пользователь авторизировался). 

global $USER;
$arFilter = array("ID" => $USER->GetID());
$arParams["SELECT"] = array("LOGIN");
$arRes = CUser::GetList($by,$desc,$arFilter,$arParams);
    if ($res = $arRes->Fetch()) {
        echo $res["LOGIN"];
    }

Теперь имея в арсенале уникальное свойство пользователя, и создав для него отдельную одноименную папку, наполнение которой мы можем реконфигурировать по своему усмотрению, можно производить любые действия в PHP-коде, связанные непосредственно с конкретным пользователем. Вплоть до того, чтобы реализовывать простую БД на текстовых файлах в его папке, вместо того, чтобы городить множество «Дополнительных свойств» для него же в панели Администрирования (Настройки->Пользователи…). И так далее.   


Вместо завершения


В принципе, меня, как и многих моих знакомых программистов, система Битрикс при первоначальном знакомстве несколько насторожила. При близком же рассмотрении она оказалась довольно гибкой, то есть, владея PHP/JS/CSS/XHTML, в ней можно реализовывать практически все, что угодно, даже особенно не зацикливаясь на версиях. Приведу простой пример, в недорогой версии мне было необходимо написать небольшой ротатор баннеров, которого не было в комплекте поставки. Я его реализовал стандартной врезкой PHP-кода, а управление этим ротатором вывел на отдельной странице/пункте меню фронт-энда, которая доступна для просмотра только администраторам ресурса. Другими словами, на базовом комплекте можно делать все, что угодно, и даже писать свою собственную CMS с отдельными пунктами меню администрирования на фронт-энде с разграниченными правами доступа:). 

Работа с CMS Битрикс оставляет хорошие впечатления. Для специалистов начального уровня я бы рекомендовал стартовать со стандартного программирования, а уже потом включать Битрикс в свои бонусы. 


Кристофер
Сертифицированный специалист «Разработчик Bitrix Framework»




Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ассоциация боевых роботов
Рекомендуем...
Новости

Разделы

Опросы

Какой язык программирования вы считаете наиболее актуальным сегодня?
Всего ответов: 329

Друзья

3D-кино






Найти на сайте:








Об авторе       Контакты      Вопрос-ответ        Хостинг от uCoz