Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Включение bitrix:catalog дважды на одной странице

+11 голос
7
Описание задачи:
Существует 2 информационных блока, которые являются товарными каталогами: мужская обувь и женская обувь.
Они соответственно отображаются по адресам:
http://site.com/shop/shoes/men/index.php
и
http://site.com/shop/shoes/women/index.php
с помощью компонента Битрикс:Каталог.
Я хочу собрать эти 2 каталога на одной странице(http://site.com/shop/shoes/index.php) с помощью include.
Вот сам код:
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
include($_SERVER["DOCUMENT_ROOT"]."/shop/shoes/men/index.php");
include($_SERVER["DOCUMENT_ROOT"]."/shop/shoes/women/index.php");
$APPLICATION->SetTitle("Обувь");
?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

При это выводится только первый каталог, а именно: include($_SERVER["DOCUMENT_ROOT"]."/shop/shoes/men/index.php");
Одновременно оба выводиться не хотят почему-то, хотя отдельно друг от друга выводятся на "ура". Подскажите, пожалуйста, как это реализовать.
Такой заковыристый пусть был выбран из-за ЧПУ, которое начинает работать именно так, как хочется, при такой структуре сайта. %)
спросил 20 Июнь, 13 от Krestof (170 баллов)

7 Ответы

00 голосов
Советую решить вопрос размещением 2-х catalog.top на странице http://site.com/shop/shoes/index.php.
ответил 20 Июнь, 13 от Miso (740 баллов)
00 голосов
Цитата
Maxim Smirnov пишет:
Советую решить вопрос размещением 2-х catalog.top на странице http://site.com/shop/shoes/index.php.

К сожалению, этот вариант не подходит. Как я понимаю, catalog:top выводит модели из определённых инфоблоков, а сам структуру - нет. Нужно сделать реализацию именно по типу основного каталога.
ответил 10 Июль, 13 от Krestof (170 баллов)
00 голосов
Тогда catalog.section.list
ответил 14 Окт, 13 от Miso (740 баллов)
00 голосов
Всё-таки не могу понять, почему не отрабатывается и не выводится второй каталог? Что ему мешает?
ответил 15 Янв, 14 от Krestof (170 баллов)
00 голосов
Цитата
Дмитрий Белоконь пишет:
Всё-таки не могу понять, почему не отрабатывается и не выводится второй каталог? Что ему мешает?

как минимум параметры передаваемые в url
у данных компонентов есть привязка к секциям
потому, находясь на одной и той же странице, они просто обязаны будут глюковать.
Лишь в частном случае (когда секция не задана в url) можно увидеть их содержимое благодаря установке галки "показывать все элементы если не задана секция", но стоит вырать секцию и все...
ну и отсюда могут возникать и проблемы с отображением обоих каталогов
т.е. теоретически должен работать только один, а второй либо выдавать, что секция не найдена либо показывать пустоту.

это конечно мое мнение, проверить не смог, ссылки не открылись
но советую обратить на это внимание.
ответил 03 Май, 14 от jenia (1,500 баллов)
00 голосов
Дмитрий, ничего не понятно из того, что вам нужно.

Может так?
Код
<?$APPLICATION->IncludeComponent("bitrix:catalog.section.list", ".default", array(
   "IBLOCK_TYPE" => "shoes",
   "IBLOCK_ID" => "33",
   "SECTION_ID" => $_REQUEST["SECTION_ID"],
   "SECTION_URL" => "men/index.php?SECTION_ID=#SECTION_ID#",
   "DISPLAY_PANEL" => "N",
   "ADD_SECTIONS_CHAIN" => "N"
   ),
   false
);?>
<br />

<br />
<?$APPLICATION->IncludeComponent("bitrix:catalog.section.list", ".default", array(
   "IBLOCK_TYPE" => "shoes",
   "IBLOCK_ID" => "34",
   "SECTION_ID" => $_REQUEST["SECTION_ID"],
   "SECTION_URL" => "women/index.php?SECTION_ID=#SECTION_ID#",
   "DISPLAY_PANEL" => "N",
   "ADD_SECTIONS_CHAIN" => "N"
   ),
   false
);?>
ответил 29 Авг, 14 от Miso (740 баллов)
00 голосов
Можно скопировать нужный вам компонент в другую папку. тогда у вас получится два разных компонента, одинаковых по функционалу. например, bitrix:catalog и mycomp:catalog. копировать советую не в папку /components/bitrix, а в соседнюю, например, /components/mycomp.

Потом подключаете на одну страницу два эти компонента и все работает :) Для битрикса они разные, для вас - одинаковые :)
ответил 04 Янв, 15 от Alder (100 баллов)

Похожие вопросы

0 голосов
3 ответов
0 голосов
1 ответ
0 голосов
3 ответов
0 голосов
3 ответов
0 голосов
0 ответов
спросил 11 Ноя, 13 от Jlollipop (100 баллов)