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

DETAIL_PAGE_URL

00 голосов
6
использую следующую конструкцию:

Код

   $type = "news";
   $TypesInc = $ID;
   $TypesExc = false;
   $arOrder = Array("DATE_ACTIVE_FROM"=>"DESC");
   $cnt = 12;
   $arFilter = array("SECTION_ID" => $SID);
   [B]$arSelectFields =  false;[/B]   $arGroupBy = false;

   $items = GetIBlockElementListEx($type, $TypesInc, $TypesExc, $arOrder, $cnt, $arFilter, $arSelectFields, $arGroupBy);


   while($arItem =  $items->[B]GetNext()[/B])
    {
<a href="<? [B]echo $arItem["DETAIL_PAGE_URL"][/B]?>"><? echo $arItem["NAME"]?></a>
    };



Всё работает замечательно, но стоит указать параметр :

$arSelectFields = Array("NAME", "DATE_ACTIVE_FROM", "PREVIEW_TEXT", "ID", "IBLOCK_CODE", "DETAIL_PAGE_URL", "SHOW_COUNTER", PROPERTY_<PROPERTY_CODE>_VALUE .... );

для вывода некоторых свойств элемента, как результат работы функции этой функции - $arItem["DETAIL_PAGE_URL"] становится не преобразованным в нормальный URL а выводится - #SITE_DIR#/news/detail.php?ID=#IBLOCK_ID#&SID=#ID#&EID=#ID#

Хотя я использую - $arItem = $items->GetNext();

Если не указыввать в массиве $arSelectFields поле DETAIL_PAGE_URL, то функция вообще не возвратит его.
спросил 11 Сен, 13 от Alita (120 баллов)

6 Ответы

00 голосов
Кстати да!
У меня такая же фигня была!
Пришлось отказаться от выбора необходимых мне полей и выбирать все smile:(
ответил 11 Сен, 13 от salo (840 баллов)
00 голосов
Нужно в $arSelectFields добавить поля "LANG_DIR", "IBLOCK_ID", "ID".
ответил 08 Дек, 13 от Kania (5,180 баллов)
00 голосов
Действительно.
Логично.
ответил 22 Март, 14 от salo (840 баллов)
00 голосов
Цитата
Пришлось отказаться от выбора необходимых мне полей и выбирать все


Не вариант, поскольку мне нужно получить свойства элемента а это можно сделать только перечисляя их в $arSelectFields.

Вопрос - как одновременно получать свойства и нормальный URL?

Может есть какая функция которая переделывает
#SITE_DIR#/news/detail.php?ID=#IBLOCK_ID#&SID=#ID#&EID=#ID# у рабочую ссылку?


Поясните
Цитата
Нужно в $arSelectFields добавить поля "LANG_DIR", "IBLOCK_ID", "ID".
ответил 14 Июль, 14 от Alita (120 баллов)
00 голосов
ответил 15 Ноя, 14 от salo (840 баллов)
00 голосов
Спасибо Анатолий, я как раз использую сейчас этот способ, но к сожалению у меня он работает медленней чем GetIBlockElementListEx. Пока для меня это не критично.

Интересно, а что администрация скажет про такие недокументированые особенности работы функции?
ответил 12 Март, 15 от Alita (120 баллов)

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

0 голосов
2 ответов
спросил 28 Окт, 13 от TRIAL (180 баллов)
0 голосов
1 ответ
спросил 18 Май, 13 от Volk123 (200 баллов)