rpsv
@rpsv
делай либо хорошо, либо никак

Как связать компоненты между собой?

Здрасте!

Вопрос в следующем: создается компонент каталог с фильтром:
- фильтр - формирует условие отбора для списка компонентов
- каталог - соответственно выводит отфильтрованный список

Локальный вопрос: как передать данные от фильтра к каталогу?
Глобальный вопрос: как общаться компонентам между собой?

---

Глобальные переменные не подходят т.к. нельзя заранее сказать какой компонент раньше подключится.

На ум приходит использовать API (модули), но как то меня смущает отдаленность компонента и его API. Все таки в модулях в идеале должна быть только бизнес-логика.

Говорить про стандартные компоненты можно не начинать, потому что пользоваться портянкой которую писал неадекватный маньяк не стоит.
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 3
gangstarcj
@gangstarcj
"Говорить про стандартные компоненты можно не начинать" - чем же вам не нравится работающее решение? Зачем тогда вообще брать битрикс, возьмите фреймворк и делайте на нем.

По стандартному:
Фильтр должен (обязательно) подключаться раньше каталога, поэтому "т.к. нельзя заранее сказать какой компонент раньше подключится." не верно.
Общаются они через глобальную переменную $GLOBALS["arrFilter"].
Лучший пример это посмотреть стандартный комплексный компонент каталога, в нем все вроде ясно. Если не нравится, можете взять хотя-бы за основу и переписать как хотите
Ответ написан
Rad1calDreamer
@Rad1calDreamer
напиши свой компонент, хоть комплексный, хоть простой. Со своими шаблонами и блэкджеком. В чем проблема то?
Ответ написан
rixaman
@rixaman
$GLOBALS["arrFilter"]
Но у компонента "bitrix:catalog" есть параметр "FILTER_NAME" => "arrFilter", ему нужно указать соответствующее значение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы