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

Проблема с CIBlockElement::GetList

00 голосов
7
Добрый день!
Возникла такая проблема (или странный глюк) - имеется инфоблок "Производители" елементы коротого имеют привязку к разделам инфоблока "Товары" (link to section, свойство - множественное).
В каталоге имеется меню - которое формируется из елементов инфоблока "Производители" в котором на главной странице віводятся ВСЕ производители а далее когда захожу в конкретный раздел каталога -  выводятся уже те которые привязаны конкретно к разделу. Проблема в следующем - когда я работаю в режиме разработки (захожу под именем и паролем своим) - то все работает ок. Как только я выхожу из админки - начинает все работать криво - производители выводятся правильно, но когда я нажимаю на конкретный елемент - ссылки формируются неправильно. Глюки начинаются только когда я выхожу из админки. Пишет "доступ запрещен" когда я подвожу мышку к названию производителя. 
Вот код который выводит меню из инфоблока -

Код
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

global $APPLICATION;

    if(CModule::IncludeModule("iblock"))
        {

$IBLOCK_ID = 32;        // указываем из акого инфоблока берем элементы

$arOrder = Array("NAME"=>"ASC");    // сортируем по свойству SORT по возрастанию
$arSelect = Array("ID", "NAME", "IBLOCK_ID", "DETAIL_PAGE_URL");
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y", "PROPERTY_razdel"=> $_REQUEST["SECTION_ID"]);
$res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);

    while($ob = $res->GetNextElement())
    {
    $arFields = $ob->GetFields();            // берем поля
//        echo $arFields['NAME']." - arFields['NAME']<br>";
/*        echo '<pre>';
        print_r($arFields);        // 
        echo '</pre>';        */

    // начинаем наполнять массив aMenuLinksExt нужными данными
    $aMenuLinksExt[] = Array(
                $arFields['NAME'],
                $arFields['DETAIL_PAGE_URL'],
                Array(),
                Array(),
                ""
                );
    
    }        //     while($ob = $res->GetNextElement())
    
        }    //     if(CModule::IncludeModule("iblock"))

/*    echo "<br>Массив <b>aMenuLinksExt</b> - дополнительный";
    echo '<pre>';
    print_r($aMenuLinksExt);    
    echo '</pre>';            */

 $aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
// $aMenuLinks = array_merge($aMenuLinks);

?>
Есть сильное подозрение что косяк где-то в этом участке кода

Код
$arOrder = Array("NAME"=>"ASC");    // сортируем по свойству SORT по возрастанию
$arSelect = Array("ID", "NAME", "IBLOCK_ID", "DETAIL_PAGE_URL");
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y", "PROPERTY_razdel"=> $_REQUEST["SECTION_ID"]);
$res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
У кого будут какие-то идеи ? В чем может быть глюк?
спросил 13 Авг, 13 от wokmon300 (180 баллов)

7 Ответы

00 голосов
Права для группы "Все пользователи" на инфоблок производителей проверьте. Скорее всего стоит - "доступ запрещен". Нужно "чтение".
ответил 13 Авг, 13 от Pomnep (13,960 баллов)
00 голосов
уже проверял, там все ок
стоит For Everyone - READ
ответил 19 Окт, 13 от wokmon300 (180 баллов)
00 голосов
вот адрес страницы с каталогом
http://www.is2.rivne.com/catalog/
если пройтись по разделам то видно что формируются абсолютно неправильные ссылки в верхнем меню - повторяю, только в режиме просмотра. в режиме админки - все ок...
может ли быть проблема связана с тем что разделам назначены индексы сортировки?
ответил 22 Янв, 14 от wokmon300 (180 баллов)
00 голосов
Мне кажется, что у вас просто проблема с кеширование, или, старые неверные результаты закешировались, до того как Вы все написали.Сейчас зашел на сайт, вроде все корректно работает. 
В чем неправильность формирования ссылки?
ответил 10 Май, 14 от Almarea (3,760 баллов)
00 голосов
Сейчас автокеширование ОТКЛЮЧЕНО в настройках битрикса.
зайдите на страницу www.is2.rivne.com/catalog/
Выбирите к примеру - "ХОЛОДИЛЬНЕ ОБЛАДНАННЯ" - там сверху в меню отсортируются производители только для данного раздела.
дальше из производителей выберите, допустим, "ТЕХНОХОЛОД" - оно перепрыгнет на совсем другого производителя....причем  в разных браузерах прыгает на разного производителя ))))
уже 2 дня мучаюсь не знаю в чем проблема... (
ответил 06 Сен, 14 от wokmon300 (180 баллов)
00 голосов
а почему у вас разные идентификаторы у производителей получаются в каталоге и на странице производителей?Вот ссылка из каталога http://www.is2.rivne.com/catalog/index.php?SECTION_ID=84 
на Технохолод Украина http://www.is2.rivne.com/catalog/authors/detail.php?AUTHOR=560

Вот ссылка из http://www.is2.rivne.com/catalog/authors/ 
на Технохолод Украина http://www.is2.rivne.com/catalog/authors/detail.php?AUTHOR=600

Что-то у вас намудрено в списке производителей.
ответил 13 Янв, 15 от Almarea (3,760 баллов)
00 голосов
Смотрите компонент, генерирующий это меню. Где-то явно ошибка.
ответил 29 Апр, 15 от Pomnep (13,960 баллов)

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

0 голосов
7 ответов
спросил 01 Авг, 13 от lkdsjfosd (160 баллов)
0 голосов
4 ответов
спросил 26 Янв, 14 от Eoling (140 баллов)
0 голосов
2 ответов
спросил 22 Июль, 13 от Cmeptb (160 баллов)
0 голосов
6 ответов
спросил 26 Апр, 13 от MadHatter (260 баллов)
0 голосов
1 ответ