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

Запутался с CIBlockType::GetList

00 голосов
6
Хочу вывести названия типов инфоблоков, с фильтром по ID
этот код работает, выводит название типа по ID = info_center_1
Код
$db_iblock_type = CIBlockType::GetList(Array(),   Array("ID" => "info_center_1"));
while($ar_iblock_type = $db_iblock_type->Fetch()){
echo $ar_iblock_type["ID"]."<br>";
   if($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG))
   {
      echo htmlspecialcharsex($arIBType["NAME"])."<br>";
   }
}


а это выводит все названия, а не по ID = info_center_1 и info_center_2
Код
$ar_IBLOCK_TYPE_a = array("info_center_1","info_center_2","info_center_3");
$db_iblock_type = CIBlockType::GetList(Array(),Array("ID" => $ar_IBLOCK_TYPE_a));
while($ar_iblock_type = $db_iblock_type->Fetch()){
   if($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG))
   {
      echo htmlspecialcharsex($arIBType["NAME"])."<br>";
   }
}

Может я что то упустил?
спросил 20 Окт, 13 от malagoi (380 баллов)

6 Ответы

00 голосов
$ar_IBLOCK_TYPE_a = array("info_center_1","info_center_2","info_center_3");
$db_iblock_type = CIBlockType::GetList(Array());
while($ar_iblock_type = $db_iblock_type->Fetch()){
if($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG) && in_array($arIBType["ID"], $ar_IBLOCK_TYPE_a))
{
echo htmlspecialcharsex($arIBType["NAME"])."<br>";
}
}
ответил 14 Ноя, 13 от NitroGeN (2,840 баллов)
00 голосов
Цитата
Евгений Малков пишет:
Код $ar_IBLOCK_TYPE_a = array("info_center_1", "info_center_2","info_center_3");

Да, спасибо, я заметил, что вставил сюда не тот кусок кода, уже поправил, но эффект тот же - выводится все
ответил 22 Фев, 14 от malagoi (380 баллов)
00 голосов
Евгений, результат с приведенным вами кодом вообще нулевой
ответил 13 Июнь, 14 от malagoi (380 баллов)
00 голосов
Прошу прощения, наверно всетаки вот так:
Код
$ar_IBLOCK_TYPE_a = array("info_center_1","info_center_2","info_center_3"); 
$db_iblock_type = CIBlockType::GetList(Array()); 
while($ar_iblock_type = $db_iblock_type->Fetch()){ 
if($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG) && in_array($ar_iblock_type["ID"], $ar_IBLOCK_TYPE_a)) 
{ 
echo htmlspecialcharsex($arIBType["NAME"])."<br>"; 
} 
}
ответил 12 Окт, 14 от NitroGeN (2,840 баллов)
00 голосов
Так тоже пробовал, результат нулевой.
Будем думать дальше. Спасибо за помощь.
ответил 12 Фев, 15 от malagoi (380 баллов)
00 голосов
Код
$db_iblock_type = CIBlockType::GetList(Array(),   Array("ID" => "info_center_%")); 
while($ar_iblock_type = $db_iblock_type->Fetch()){ 
echo $ar_iblock_type["ID"]."<br>"; 
   if($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG)) 
   { 
      echo htmlspecialcharsex($arIBType["NAME"])."<br>"; 
   } 
}

По идее так.
ответил 24 Май, 15 от Inabikari (100 баллов)

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

0 голосов
4 ответов
спросил 04 Апр, 13 от Gladiator (160 баллов)
0 голосов
2 ответов
спросил 06 Янв, 14 от PowerTrip (100 баллов)
0 голосов
4 ответов
спросил 19 Дек, 13 от ister14ka (160 баллов)
0 голосов
7 ответов
спросил 13 Авг, 13 от wokmon300 (180 баллов)
0 голосов
7 ответов
спросил 01 Авг, 13 от lkdsjfosd (160 баллов)