
В этом посте я бы хотел поговорить про комплексные компоненты 2.0.
Что такое комплексные компонент? Это наша мечта!

Да, действительно, можно сказать, что мы с Юрой Тушинским, нашим техническим директором, мечтали несколько лет назад, что надо сделать такие инструменты, чтобы любой пользователь мог визуально положить на страницу, например, форум, и он заработал бы сразу, и все 10-20 страниц были бы уже согласованы между собой, все бы работало, ЧПУ бы настраивался быстро, и параметры представления менялись визуально...
И вот наши мечты сбываются. Комплексные компоненты 2.0 делают возможным то, о чем мы раньше только мечтать могли.
Комплексный компонент представляет собой по сути законченную бизнес-логику готовую к использованию конечными пользователями.
Давайте попробуем воспользоваться одним из комлексных компонентов, как раз форумом, чтобы понять, что же это такое.
Для этого я воспользую пробной версией продукта, Windows-инсталлятом, которая установлена у меня на машине.
Предварительно установлю на сайт все обновления, включу установку бета-версий и подниму продукт до версии 5.9.
Да, не забывайте пожалуйста, что пока это старый дистрибутив, SEF URL или иначе говоря ЧПУ будет работать только если вы выполните инструкции:
(У кого нет доступа в закрытый форум, рекомендуется посмотреть документацию по Компонентам 2.0
или подождать недельку, пока выйдет новый дистрибутив)
Если у вас своя пробная версия или вы уже обновили свой сайт (как мы свой) до верси 5.9, то можно будет дальнейшие действия выполнять непосредственно у себя на сайте.
Итак, будем считать, что у вас все готово для теста, как и у меня.
1. Создадим новую страницу в разделе "О Компании".
Если вы не знаете как это делать одним действием, смотрите первый демо-ролик "Создание новой страницы"
Я предпочитаю, в отличии от ролика, работать с визуальным редактором на весь экран.
2. На чистую страницу размещаем комплексный компонент форума. Для этого справа откройте «Общения-Форум-Форум.Комплексный компонент»
Поместите компонент на страницу перетаскиванием. Обратите внимание на свойства компонента, которые открываются в нижнем окне визуального редактора.
Все свойства объединяются в секции которые открываются и закрываются "+".
Пока мы не будем ставить никаких параметров, оставим все по-умолчанию.

3. Выйдем с сохранением страницы и одновременным добавлением новой страницы в левое меню.
Имя документу дадим components2.php
В левом меню представим страницу как пункт "Компонент 2.0"

И вот оно чудо!

И при этом мы ничего особенного не делали, как обычно поместили на страницу компонент и сохранились.
Ну что, все отлично работает. Я проверил, послал тестовые сообщения в форум, удалил тему, поискал… все отлично.
Вот только смущают пока страницы вида:
…
Как мы понимаем, комплексный компонент сам по имени переменной PAGE_NAME определяет какой простой компонент стоит выполнять и с какими параметрами.
Можем ли мы избавиться от лишних переменных и сделать URL-ы удобными для поисковиков?
Давайте попробуем еще один тест сделать.
1. Давайте еще раз откроем нашу тестовую страницу в режим визуального редактирования.
(Верхняя панель управления, "Публичный раздел"-"Редактировать текущую страницу".
2. Выбираем компонент форума на страницу редактирования и еще раз возвратимся к параметрам компонента, в нижней области визуального редактора.
Давайте включим в секции свойств "Управление адресами страниц" галочку "Включить поддержку ЧПУ"
Откроется список дополнительный параметров для ЧПУ, в которых мы поправим только одно свойство, страницы, на которой расположен наш компонент.
Имя страницы index.php заменим на components2.php

3. Выйдем из редактора с сохранением.
Форум работает, но что изменилось? Изменились как раз урлы. Теперь я вижу у себя урлы новые урлы вместо тех что указаны выше:
Кстати, правила написания URL-ов тут же в параметрах можно и менять как вам нравится, мы даем только пример.
Вот это мечта оптимизатора

И хоть страниц и разделов указанных в урле нет, компонент форума отлично работает.
Это как раз работает новый механизм SEF URL продукта.
Если разработчики заглянут в систему обработки адресов, то увидят правило, созданное комплексным компонентом:
Условие: #^/about/#
Компонент: bitrix:forum
Файл: /about/components2.php
И этого достаточно, для работы целого компонента форума.
Технические аспекты по вторым компонентам смотрите в документации:
В следующих постах я расскажу о других комплексных компонентах, о модели MVC, о том как просто поменять внешний вид новых компонет, не затронув при этом бизнес-логику и о том как делать скины…
Но вы, уже, я полагаю, понимаете, к чему мы ведем продукт

Новые комплексные компоненты 2.0 фактически представляют собой комплексное законченное решение, готое к использованию конечным клиентом. В поставке продукта уже сейчас выйдет целый ряд готовых полнофункциональных компонент: блоги, новостные разделы, каталоги товаров, каталоги сайтов, доски объявлений, отзывы, фотогалереи, техподдерка, обучения и другие. Но мы уверены, что партнеры воспользуются возможностью и будут выпускать свои комплексные компоненты, которые позволят им значительно сократить цикл и стоимость разработки сайтов, а их клиентам позволят управлять сайтами быстро и просто. Ну и не за горами купля продажа комплексных компонент

ДА будет так!
p.s. Сергей, очень понравилась идея новых разработок, компонентам 2.0 и комплексным компонентам - быть!
Одна проблема - параметры компонента не отображаются.
Есть только один параметр - выбор шаблона.
Подскажите, в чем проблема.
Нужно приписать сюда что-то или как?
При вводе пользователем /tratata.html я хочу чтобы по условию
#^/content/faq/(.+?)\.html#
срабатывало правило
CODE=$1
Можно ли такое реализовать? Другими словами, tratata - это символьный код на последней вкладке "Дополнительные параметры элемента". Согласен на "подстановку из других, но прописанных МНОЮ" доп.свойств элемента.
P.S. Сайт редактирую, ставил не с самого начала, может, компонент криво поставили или обновления не хватает?
лучше в личку)