Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Найти инфоблок по ID компонента, возможно?

07.12.2019, 21:14
Андрей
a-lime

Зарегистрирован:
2019-11-14
Сообщений: 3

Всем привет. Пытаюсь разобраться с NetCat. Решил стандартными средствами сделать web-форму, которая работала бы в любом месте шаблона (сквозные инфоблоки, контентная область).

1. Есть раздел - Веб-форма. В разделе есть инфоблок- это компонент, который я создал на основе компонента "Письмо с сайта". В компоненте есть шаблон "Простая форма".

2. Есть другой раздел "Главная страница". На нем есть сквозной инфоблок "Простая форма".

Значит в шаблоне простой формы я делаю так:

В префиксе списка:

Код:
<?= nc_objects_list( 0, 25, "&my_cc_id=$cc" ); ?> 


Вот 25 - это ID инфоблока в разделе "Веб форма". Ну тоесть понятно, да ? Чтобы заявки со сквозного блока главной страницы попадали в раздел "Веб форма" а не в неизвестность, я вывожу форму этого компонента через шаблон компонента. Вот этот вот ID надо прописывать вручную. Я хочу узнать, можно ли как то получить ID инфоблока раздела в шаблоне компонента.

Вот моя форма:

ТЫК
07.12.2019, 21:30
Андрей
a-lime

Зарегистрирован:
2019-11-14
Сообщений: 3

Есть у меня предположение, что в таблице Sub_Class можно найти инфоблок по Class_ID у которого Subdivision_ID !== 0 и это и будет мой инфоблок. НО меня терзают мысли, что всё это на самом деле можно сделать как-то намного проще ))).
07.12.2019, 22:21
Андрей
a-lime

Зарегистрирован:
2019-11-14
Сообщений: 3

В общем вот такая вот конструкция мою проблему решила:

Код:

$nc_core->db->query("SELECT * FROM Sub_Class WHERE Class_ID=".$current_cc[Class_ID]." AND Subdivision_ID != '0'" );
$arr = $nc_core->db->last_result;
echo nc_objects_list( 0, $arr[0]->Sub_Class_ID, "&my_cc_id=$cc" );


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

И вот этот способ мой, он будет работать только в том случае, если у меня всего один инфоблок собирает заявки с форм. А если их будет несколько то все равно в ручную надо будет прописывать ID...
17.12.2019, 10:52
Игорь
Игорь Мишарин
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 458

В настройках инфоблока в разделе, в Вашем случае "Главная страница", нужно выбрать нужный Шаблон вывода инфоблока.
В самом компоненте в префиксе прописать:
Код:
<?= $addForm ;?>

Больше никаких запросов прописывать не нужно.
198 196 2019-12-17 10:52:04 15166
Описание проекта