Имеется стандартный компонент photo.random, необходимо переделать его так чтобы он выводил все фотографии.
поидее надо поменять 2 строки кода. где я ошибся?
Что имеем:
$rsIBlockElement = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect);
$rsIBlockElement->SetUrlTemplates($arParams["DETAIL_URL"]);
if($arResult = $rsIBlockElement->GetNext())
{
$arResult["PICTURE"] = CFile::GetFileArray($arResult["PREVIEW_PICTURE"]);
if(!is_array($arResult["PICTURE"]))
$arResult["PICTURE"] = CFile::GetFileArray($arResult["DETAIL_PICTURE"]);
$this->SetResultCacheKeys(array(
));
$this->IncludeComponentTemplate();
}
else
{
$this->AbortResultCache();
}
Меняем if на while
while ($arResult = $rsIBlockElement->GetNext())
{
$arResult["PICTURE"] = CFile::GetFileArray($arResult["PREVIEW_PICTURE"]);
if(!is_array($arResult["PICTURE"]))
$arResult["PICTURE"] = CFile::GetFileArray($arResult["DETAIL_PICTURE"]);
$this->SetResultCacheKeys(array(
));
$this->IncludeComponentTemplate();
}
//else
//{
// $this->AbortResultCache();
//}
но в этом случае он инклудит каждый раз шаблон. (поиедее должен перебрать все элементы а потом 1 раз инклудить шаблон)
если же вынести строку $this->IncludeComponentTemplate(); за пределы цикла то в шаблон ничего не выводится.
я видимо логику тут какую-то не понимаю. в чем ошибка?
поидее надо поменять 2 строки кода. где я ошибся?
Что имеем:
$rsIBlockElement = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect);
$rsIBlockElement->SetUrlTemplates($arParams["DETAIL_URL"]);
if($arResult = $rsIBlockElement->GetNext())
{
$arResult["PICTURE"] = CFile::GetFileArray($arResult["PREVIEW_PICTURE"]);
if(!is_array($arResult["PICTURE"]))
$arResult["PICTURE"] = CFile::GetFileArray($arResult["DETAIL_PICTURE"]);
$this->SetResultCacheKeys(array(
));
$this->IncludeComponentTemplate();
}
else
{
$this->AbortResultCache();
}
Меняем if на while
while ($arResult = $rsIBlockElement->GetNext())
{
$arResult["PICTURE"] = CFile::GetFileArray($arResult["PREVIEW_PICTURE"]);
if(!is_array($arResult["PICTURE"]))
$arResult["PICTURE"] = CFile::GetFileArray($arResult["DETAIL_PICTURE"]);
$this->SetResultCacheKeys(array(
));
$this->IncludeComponentTemplate();
}
//else
//{
// $this->AbortResultCache();
//}
но в этом случае он инклудит каждый раз шаблон. (поиедее должен перебрать все элементы а потом 1 раз инклудить шаблон)
если же вынести строку $this->IncludeComponentTemplate(); за пределы цикла то в шаблон ничего не выводится.
я видимо логику тут какую-то не понимаю. в чем ошибка?