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

Способ определение ID инфоблока по его символьному коду

00 голосов
4
Здравствуйте.
Сейчас определяю ID вот так:
$res = CIBlock::GetList(
Array(),
Array(
'TYPE'=>'xmlcatalog',
'ACTIVE'=>'Y',
"CODE"=>$_REQUEST["IBLOCK_CODE"]
smile;), true
);

while($ar_res = $res->Fetch())
{
$CODE_ID=$ar_res[ID];
}
Правильно ли я делаю ? Или может есть какие-то более оптимальные решения ?
спросил 25 Июль, 13 от Cawka (200 баллов)

4 Ответы

00 голосов
Лучше писать
Код
$strCode = trim($_REQUEST['IBLOCK_CODE']) ; 
if ($strCode) 
{ 
 
...// пошел вызов CIBlock::GetList
"=CODE" => $strCode
 }
ответил 25 Июль, 13 от Pomnep (13,960 баллов)
00 голосов
Помогите, пожалуйста. Аналогичная задача.
НО. Не могу сообразить, почему не выдает результат?

Код
if (CModule::IncludeModule('iblock')){   
   $resc = CIBlock::GetList(Array(), Array('TYPE' => 'domains', 'SITE_ID' => SITE_ID, '=CODE' => $cur_country), false);
   while($arrc = $resc->Fetch())
      $cc_name=$arrc["NAME"];
}


while не отрабатывает, $resc возвращает пустой массив. Хотя в типе domains 100% присутствует передаваемый $cur_country
(он, кстати, тоже передается - без пробелов, лишних символов).
ответил 19 Сен, 13 от Exumer (360 баллов)
00 голосов
Разобралась. Проблема была в правах доступа к инфоблокам. В настройках необходимых инфоблоков выставила для всех пользователей "Чтение" - и все заработало. Вдруг пригодится комуsmile:)
ответил 18 Дек, 13 от Exumer (360 баллов)
00 голосов
Либо в фильтре указывайте 'CHECK_PERMISSIONS' => 'N' (не проверять права). Это убыстрит запрос, если не нужна проверка прав.
ответил 02 Апр, 14 от Pomnep (13,960 баллов)

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

0 голосов
3 ответов
0 голосов
6 ответов
0 голосов
5 ответов
0 голосов
1 ответ
спросил 11 Авг, 14 от beatsspam (440 баллов)
0 голосов
2 ответов