компоненте в файле detail.php - есть вызов bitrix:news.detail и после него bitrix:news.list.
Проблема состоит в том что в шаблоне bitrix:news.list - попадает только 3 элемента, даже если в настройках указать 6 или более (нужно 3 рандомно...).
Где может быть проблема?
news.list.
<?$APPLICATION->IncludeComponent( "bitrix:news.list", "interesting_list", array( "IBLOCK_TYPE" => "-", "IBLOCK_ID" => $arParams["IBLOCK_ID"], "NEWS_COUNT" => "12", "SORT_BY1" => $arParams["SORT_BY1"], "SORT_ORDER1" => $arParams["SORT_ORDER1"], "SORT_BY2" => $arParams["SORT_BY2"], "SORT_ORDER2" => $arParams["SORT_ORDER2"], "FIELD_CODE" => array( 0 => "", 1 => $arParams["LIST_FIELD_CODE"], 2 => "", ), "PROPERTY_CODE" => array( 0 => "", 1 => $arParams["LIST_PROPERTY_CODE"], 2 => "", ), "DETAIL_URL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["detail"], "DISPLAY_PANEL" => $arParams["DISPLAY_PANEL"], "SET_TITLE" => "N", "SET_STATUS_404" => "N", "INCLUDE_IBLOCK_INTO_CHAIN" => "N", "CACHE_TYPE" => "A", "CACHE_TIME" => $arParams["CACHE_TIME"], "CACHE_FILTER" => "N", "CACHE_GROUPS" => "N", "DISPLAY_TOP_PAGER" => "N", "DISPLAY_BOTTOM_PAGER" => "N", "PAGER_TITLE" => $arParams["PAGER_TITLE"], "PAGER_TEMPLATE" => $arParams["PAGER_TEMPLATE"], "PAGER_SHOW_ALWAYS" => "N", "PAGER_DESC_NUMBERING" => "N", "PAGER_DESC_NUMBERING_CACHE_TIME" => $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"], "PAGER_SHOW_ALL" => "N", "DISPLAY_DATE" => "N", "DISPLAY_NAME" => "Y", "DISPLAY_PICTURE" => "N", "DISPLAY_PREVIEW_TEXT" => "N", "PREVIEW_TRUNCATE_LEN" => $arParams["PREVIEW_TRUNCATE_LEN"], "ACTIVE_DATE_FORMAT" => $arParams["LIST_ACTIVE_DATE_FORMAT"], "USE_PERMISSIONS" => $arParams["USE_PERMISSIONS"], "GROUP_PERMISSIONS" => $arParams["GROUP_PERMISSIONS"], "FILTER_NAME" => $arParams["FILTER_NAME"], "HIDE_LINK_WHEN_NO_DETAIL" => "N", "CHECK_DATES" => "N", "COMPONENT_TEMPLATE" => "interesting_list", "AJAX_MODE" => "N", "AJAX_OPTION_JUMP" => "N", "AJAX_OPTION_STYLE" => "Y", "AJAX_OPTION_HISTORY" => "N", "AJAX_OPTION_ADDITIONAL" => "", "SET_BROWSER_TITLE" => "Y", "SET_META_KEYWORDS" => "Y", "SET_META_DESCRIPTION" => "Y", "SET_LAST_MODIFIED" => "N", "ADD_SECTIONS_CHAIN" => "Y", "PARENT_SECTION" => "", "PARENT_SECTION_CODE" => "", "INCLUDE_SUBSECTIONS" => "Y", "STRICT_SECTION_CHECK" => "N", "PAGER_BASE_LINK_ENABLE" => "N", "SHOW_404" => "N", "MESSAGE_404" => "" ), false );?>
т.к. у вас вызов компонента идет следом за другим, да еще внутри компонента, то массив $arResult и $arParams вполне может использоваться из настроек другого компонента
напоминаю, что в чатике настоятельно не принято выкладывать куски кода таких размеров. просим вас использовать пастебин и иже с ним.
есть идея сделать выборку всех элементов чтобы попали в $arResult news.list - только правильно ли это будет?
зачем всех? примени фильтр вместо "FILTER_NAME" => $arParams["FILTER_NAME"],
в вызове news.list?
я это делаю так $GLOBALS['arrFilter'] = array('ID' => $arrResult["UF_SECTION_ELEMENT"]); и в вызове "FILTER_NAME" => "arrFilter",
получается в detail.php идет вызов bitrix:news.detail, затем сформировать фильтр и потом вызов bitrix:news.list - его передать
агась, и в фильтре передать требуемые условия выборки
а как правильно сформировать его? нашел Пример 4 в документации (можно получить рандомные записи) https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php
сортировка RAND и ограничить вывод 3
и постраничную навигацию отключить не забудь
"PAGER_SHOW_ALWAYS" => "N", - так будет отключена постраничная навигация?
"NEWS_COUNT" => "3", "SORT_BY1" => "RAND", "DISPLAY_BOTTOM_PAGER" => "N", "DISPLAY_TOP_PAGER" => "N",
если я я так пропишу фильтр: $GLOBALS['arrFilter'] = array('IBLOCK_ID' => "12"]); - это правильно будет?
обычно в фильтр применяют какие-то особые требования, например пользовательское свойство, а IBLOCK_ID можно и в компоненте вызываемом указать "IBLOCK_ID" => "12"
вроде бы что то похожее получилось (с параметрами только "SORT_BY1" => "RAND", "SORT_ORDER1" => "RAND", "SORT_BY2" => "RAND", "SORT_ORDER2" => "RAND", ) но в шаблон не попадает анонс текста
значит нужно указать ))
Обсуждают сегодня