Одним из элементов концепции системы "Битрикс: Управление сайтом" является компонент. В документации компонент определен как "часть модуля, представляющая собой логически завершенный код, хранящийся в одном файле, принимающий ряд параметров, выполняющий ряд действий и выводящий какой-либо результат (например, в виде HTML-кода)". То есть компонент служит для вывода на страницу какого-либо функционально законченного блока, например ленты новостей, формы авторизации пользователя или меню сайта. Использование системы компонентов сводит создание новой страницы сайта к размещению на ней различных компонентов.
Недостатки первой версии компонентов
Основным недостатком первой версии компонентов является совмещение логики и представления в одном файле. Такое решение приводит к увеличению трудоемкости создания новых и модификации существующих компонентов. Требования к квалификации верстальщика также возрастают — кроме знания (X)HTML и CSS, необходимо владение PHP. При желании иметь несколько различных дизайнов одного компонента потребуется создание полной копии компонента для каждого варианта дизайна. Для изменения шаблона требуется изменение PHP-кода компонента.
Кроме того, связанные компоненты (такие, как «форум» или «каталог») сложно создавать, изменять, настраивать и поддерживать. Необходимо знать структуру страниц и принадлежность компонентов страницам. Для изменения дизайна потребуется переработка верстки каждого компонента.
Разбросанность файлов, принадлежащих компоненту, по файловой системе также создает трудности при переносе компонента для повторного использования.
Есть еще один момент, который можно отнести к недостаткам, — верстка стандартных компонентов выполнена с помощью таблиц. Это затрудняет изменение дизайна и противоречит рекомендациям W3C*.
Из вышесказанного видно, что компоненты первого поколения имеют ряд существенных недостатков. Для их устранения компания «Битрикс» разработала новую технологию под названием "Компонент 2.0".
Цели новой технологии
Вот цели, стоявшие перед разработчиками этой технологии:
* облегчить создание сайта;
* снизить требования к квалификации разработчиков сайта;
* облегчить адаптацию системных компонентов под требования конкретного сайта;
* облегчить повторное использование кода;
* увеличить производительность компонентов.