Публикация статей
На данной странице представлены элементы инфоблока статьи, относящиеся к типу Публикации. Статьи опубликованы на странице с помощью комплексного компонента Новостной раздел с указанием параметров инфоблока Статьи. При создании каждой статьи был использован тег <break />, который позволяет осуществить разделение статьи на страницы. В публичном разделе такая статья будет представлена в виде нескольких страниц в зависимости от количества тегов <break />

Комплексные компоненты

01.10.2009
Пример

Расмотрим упрощенный пример работы комплексного компонента новостей. Пусть у нас есть обычные компоненты список новостей и детальной новости (последний принимает во входных параметрах код новости, которую нужно показать).

Раздел новостей можно организовать, например, разместив на странице index.php компонент списка новостей, а на странице news.php - компонент детальной новости. При этом у компонента списка новостей нужно настроить входные параметры так, чтобы он мог формировать ссылки на страницу детальной новости (с кодом новости), а у компонента детальной новости нужно настроить входные параметры так, чтобы он мог формировать ссылку на страницу списка новостей. Для того, чтобы задать ссылку на страницу детальной новости, нужно задать путь к этой странице, а так же название параметра, в котором будет передаваться код новости для показа. То же название параметра нужно задать и во входных параметрах компонента детальной новости, чтобы он знал, где брать код новости для показа. Даже в данном максимально упрощенном случае настройки не так просты. А если это набор из десятков компонентов форума?

Более удобной альтернативой для сборщика сайта будет использование комплексного компонента новостей. Этот компонент, например, можно просто установить на страницу index.php и все. Согласованием ссылок и параметров будет заниматься сам комплексный компонент. От сборщика сайта никаких дополнительных действий не потребуется. Для создания комплексного компонента новостей нам необходимо создать новый компонент, в коде которого проверить, пришел ли в параметрах код новости. Если код новости пришел, то нужно подключить страницу шаблона комплексного компонента, которая предназначена для показа детальной новости, а если не пришел - страницу для показа списка новостей. Страницы шаблона комплексного компонента будут содержать подключение соответствующих обычных компонентов с правильной настройкой их входных параметров. Обычные компоненты будут выполнять свою обычную работу. Им все равно, кто их вызвал и зачем. Для обычных компонентов важна только правильная настройка их входных параметров.

Таким образом реализуется паттерн MVC: на комплексный компонент новостей (controller) приходит HTTP запрос (действия пользователя); комплексный компонент новостей (controller) проверяет, установлен ли через HTTP запрос код новости и подключает из своего шаблона страницу списка новостей или страницу детальной новости (view); подключенная страница в свою очередь подключает соответствующий обычный компонент, устанавливая при этом его входные параметры соответствующим образом; обычный компонент выполняет свою работу: запрашивает данные у ядра (model), форматирует их и выводит посетителю, а так же предоставляет пользователю различные элементы управления (ссылки, формы, кнопки и т.п.); пользователь с помощью каких-либо элементов управления, посылает новый HTTP запрос на комплексный компонент новостей (controller); и далее по кругу.
Страница 2 - 2 из 2
Начало | Пред. | 1 2 | След. | Конец

Количество показов: 499
Автор:  Алексей Кирсанов
Рейтинг:  3.3

Возврат к списку


Материалы по теме:


Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Отправить Отменить
Защита от автоматических сообщений