При включенной отладке видим такую картину
и что самое интересное вот этого файла component.php по этому пути нет
/bitrix/components/itbiz/showcase.banner.slider/component.php
По этому пути есть такие файлы
Вот код class.php
а это.parameters.php
Куда мне прописать кеширование и какой вариант кода?
$cache = new CPHPCache();
$cache_time = 3600; как пишут тутhttp://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/index.php
или такой вариант
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
я пытаюсь прописать но пишет синтаксическая ошибка или баннер не показывается.
и что самое интересное вот этого файла component.php по этому пути нет
/bitrix/components/itbiz/showcase.banner.slider/component.php
По этому пути есть такие файлы
Вот код class.php
Скрытый текст |
---|
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); use Itbiz\Project; class ItBizShowcaseBannerSlider extends CBitrixComponent { public function executeComponent(){ /*global $USER; if($USER->isAdmin()){ PR($_SESSION['ITBIZ']['BANNERS']); }*/ if ( !CModule::IncludeModule("iblock") ) return false; $curIblock = (int)$_GET['iblock']; $prMainTypeSid = $this->arParams['M_BANNER_TYPE']; $prSubTypeSid = $this->arParams['S_BANNER_TYPE']; if ( $curIblock <= 0 ) $curIblock = P_IBLOCK_ID_PRODUCTS; if ( !empty($prMainTypeSid) and $curIblock==P_IBLOCK_ID_PRODUCTS ) { // Основные баннеры $cache_time = 3600; $rs = Project\Banner::getList(array( 'type_sid' => $prMainTypeSid, 'limit' => 6 ),array("CONTRACT"=>"DESC","SHOW_COUNT"=>"ASC","WEIGHT"=>"DESC")); foreach ( $rs as $v ) { $banners[$v['fields']['ID']] = array( 'id' => $v['fields']['ID'], 'html' => $v['html'] ); } } // Баннеры для секций... if ( !empty($prSubTypeSid) ) { $rsS = CIBlockSection::GetList( array("SORT"=>"ASC","ID"=>"ASC"), array( 'ACTIVE' => 'Y', 'IBLOCK_ID' => $curIblock, '<=DEPTH_LEVEL' => 1, 'UF_HIDE'=>0 ), true, array('ID') ); while ($rw=$rsS->Fetch()){ if ( !empty($rw['ID']) ){ $rs = Project\Banner::getList(array( 'type_sid' => $prSubTypeSid, 'showcase' => $rw['ID'], 'limit'=>1, ),array("CONTRACT"=>"DESC","SHOW_COUNT"=>"ASC","WEIGHT"=>"DESC")); foreach ( $rs as $v ) { $banners[$v['fields']['ID']] = array( 'id' => $v['fields']['ID'], 'html' => $v['html'], 'showcase' => $v['fields']['SHOWCASE'], 'is_showcase' => 'Y' ); } } } } /*global $USER; if($USER->isAdmin())PR($banners);*/ $this->arResult = array( 'banners' => $banners ); $this->includeComponentTemplate(); } } |
а это.parameters.php
Скрытый текст |
---|
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); if ( !CModule::IncludeModule("advertising") ) return false; $rs = CAdvType::GetList($by, $order, array('ACTIVE' => "Y"), $is_filtered, "Y"); $type = array('Не задан'); while( $rw = $rs->Fetch() ) $type[$rw['SID']] = "[{$rw['SID']}] {$rw['NAME']}"; $arComponentParameters = array( "GROUPS" => array( ), "PARAMETERS" => array( "M_BANNER_TYPE" => Array( "PARENT" => "BASE", "NAME" => 'Тип основного баннера', "TYPE" => "LIST", "VALUES" => $type, "DEFAULT" => "" ), "S_BANNER_TYPE" => Array( "PARENT" => "BASE", "NAME" => 'Тип баннера для разделов', "TYPE" => "LIST", "VALUES" => $type, "DEFAULT" => "" ) ), ); ?> |
Куда мне прописать кеширование и какой вариант кода?
$cache = new CPHPCache();
$cache_time = 3600; как пишут тут
или такой вариант
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
я пытаюсь прописать но пишет синтаксическая ошибка или баннер не показывается.