<?php
require_once($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/prolog_before.php");
$ban_id = (int )$_REQUEST[ 'id' ];
$cache_time = (int )$_REQUEST[ 'cache_time' ];
if( $ban_id < 1 or $ban_id > 10 ) {
$ban_id = 1;
}
$ban_type_sid = "OTP_BAN_PAGE_".strval($ban_id);
if( CModule::IncludeModule("advertising") ) {
$obCache = new CPHPCache;
// время кеширования - 30 минут
// $cache_time = 30*60;
// формируем идентификатор кеша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = 'tabbed_banners'.$ban_type_sid;
$cache_path = "/".SITE_ID."/alexm/tabbed_banners/";
// если кеш есть и он ещё не истек то
if( $obCache->InitCache( $cache_time, $cache_id, $cache_path ) ) {
$vars = $obCache->GetVars();
$ar = $vars[ "ar" ];
} else {
$rs = CAdvBanner::GetList( $by="s_weight",
$order="asc",
array( "TYPE_SID" => $ban_type_sid,
"TYPE_SID_EXACT_MATCH" => "Y",
"SITE" => SITE_ID ),
$if_filtered,
"N" );
if( $rs ) {
$ar = Array();
$arr = Array();
$cdt = date("Ymd");
while( $arr = $rs->Fetch() ) {
if( $arr['ACTIVE'] != "Y" )
continue;
if( ! empty( $arr['DATE_SHOW_FROM'] ) ) {
$yyy = substr( $arr['DATE_SHOW_FROM'], 6, 4 );
$mmm = substr( $arr['DATE_SHOW_FROM'], 3, 2 );
$ddd = substr( $arr['DATE_SHOW_FROM'], 0, 2 );
$dt_beg = $yyy . $mmm . $ddd;
if( $dt_beg > $cdt )
continue;
}
$ar []= $arr;
}
}
if( $obCache->StartDataCache() ) {
// записываем в файл кеша переменные
$obCache->EndDataCache( array( "ar" => $ar ) );
}
}
if( $ar && count( $ar ) > 0 ) {
$r_i = array_rand( $ar );
$i_color = stripos( $ar[$r_i]['NAME'], "color" );
if( $i_color > 0 )
$str_color = "#".substr( $ar[$r_i]['NAME'], $i_color + 6, 6 );
else
|