Bitrix Intranet Portal  9.0

DETAIL_PAGE_URL

Search  Users  Rules 
Close
Login:
Password:
Forgot your password?
Register
Login
 
Pages: 1
DETAIL_PAGE_URL, Глюк?
использую следующую конструкцию:

Code


   $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, то функция вообще не возвратит его.
------------------------------------------------------------------------------
Недвижимость в Болгарии: квартиры, дома, земля, бизнес
http://bgural.ru
Кстати да!
У меня такая же фигня была!
Пришлось отказаться от выбора необходимых мне полей и выбирать все smile:(
студия Leveret
Нужно в $arSelectFields добавить поля "LANG_DIR", "IBLOCK_ID", "ID".
Действительно.
Логично.
студия Leveret
Quote
Пришлось отказаться от выбора необходимых мне полей и выбирать все


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

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

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


Поясните
Quote
Нужно в $arSelectFields добавить поля "LANG_DIR", "IBLOCK_ID", "ID".
------------------------------------------------------------------------------
Недвижимость в Болгарии: квартиры, дома, земля, бизнес
http://bgural.ru
Quote
pine2000 пишет:
Не вариант, поскольку мне нужно получить свойства элемента а это можно сделать только перечисляя их в $arSelectFields.

Мне на моем проекте нужно было выбирать около 6-7 свойств.
Я это сделал приведенным выше методом и немного ошалел от времени выполнения скрипта.
Тогда я сделал по другому, а именно:

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

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


while($arItem = $items->GetNext())
{
$arItem = GetIBlockElement($item["ID"]);
"><? echo $arItem["NAME"]?>
};

и скрипт забегал в 2 раза быстрее!!!

Quote
pine2000 пишет:
Поясните

В вашем коде сюда вот добавить эти поля
$arSelectFields = Array("NAME", "DATE_ACTIVE_FROM", "PREVIEW_TEXT", "ID", "IBLOCK_CODE", "DETAIL_PAGE_URL", "SHOW_COUNTER", "IBLOCK_ID", "LANG_ID" PROPERTY_<PROPERTY_CODE>_VALUE .... );
студия Leveret
Спасибо Анатолий, я как раз использую сейчас этот способ, но к сожалению у меня он работает медленней чем GetIBlockElementListEx. Пока для меня это не критично.

Интересно, а что администрация скажет про такие недокументированые особенности работы функции?
------------------------------------------------------------------------------
Недвижимость в Болгарии: квартиры, дома, земля, бизнес
http://bgural.ru
Pages: 1
Partner Program
Free Online Training
Subscribe to Bitrix News