Exemplo n.º 1
0
 public function loadConfig()
 {
     //todo fix empty config caching
     $cache = new \CPHPCache();
     $cacheFile = $_SERVER['DOCUMENT_ROOT'] . "/bitrix/cache/" . $cache->GetPath(__CLASS__);
     // проверяем, обновлялся ли конфиг
     $cacheWritten = filemtime($cacheFile);
     $configWritten = filemtime($this->configFile);
     // устаревший кеш или неудачно начатый кеш перезаписываем
     if ($configWritten > $cacheWritten || !$cache->InitCache(self::TTL, __CLASS__, '/')) {
         $cache->Clean(__CLASS__, '/');
         try {
             parent::loadConfig();
             if ($cache->StartDataCache(self::TTL, __CLASS__, '/')) {
                 $cache->EndDataCache(array('config' => $this->config));
             } else {
                 _log('Caching failed', 'widgets');
             }
         } catch (Exception $e) {
             _log('loading config error: ' . $e->getMessage(), 'widgets');
         }
     } else {
         $vars = $cache->GetVars();
         $this->config = $vars['config'];
     }
 }
Exemplo n.º 2
0
 public function get($typeSID)
 {
     // ƒл¤ показа баннера одного типа только 1 раз на странице
     if (!empty($this->_typeSids[$typeSID])) {
         return false;
     }
     if (!empty($_SESSION['SESS_SHOW_INCLUDE_TIME_EXEC'])) {
         $debugKey = $_SESSION['SESS_SHOW_INCLUDE_TIME_EXEC'];
         $_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"] = 'N';
     }
     $cacheBlock = new CPHPCache();
     $url = CAdvBanner::GetCurUri();
     if (($pos = strpos(CAdvBanner::GetCurUri(), '?')) !== false) {
         $url = substr($url, 0, $pos);
     }
     $cacheId = $typeSID . '-' . $url;
     if ($cacheBlock->StartDataCache($this->_cacheTime, $cacheId, $this->_cacheDir)) {
         $result = CAdvBanner::Show($typeSID, '', '');
         $cacheBlock->EndDataCache(array('VARS' => $result));
     } else {
         $vars = $cacheBlock->GetVars();
         $result = $vars['VARS'];
     }
     if (!empty($_SESSION['SESS_SHOW_INCLUDE_TIME_EXEC'])) {
         $_SESSION['SESS_SHOW_INCLUDE_TIME_EXEC'] = $debugKey;
     }
     /*ѕодсчЄт показов*/
     if (empty($this->_typeSids[$typeSID])) {
         $this->_typeSids[$typeSID] = 1;
     } else {
         $this->_typeSids[$typeSID] = $this->_typeSids[$typeSID] + 1;
     }
     /**/
     return $result;
 }
Exemplo n.º 3
0
Arquivo: CInc.php Projeto: Tvaruga/ae
 public static function getJobName($id)
 {
     if (empty($id)) {
         return false;
     }
     $result = false;
     $obCache = new CPHPCache();
     $dir = '/companies/names';
     if ($obCache->InitCache(9999999999, md5($id), $dir)) {
         $result = $obCache->GetVars();
     } elseif ($obCache->StartDataCache() && \Bitrix\Main\Loader::includeModule('iblock')) {
         if ($result = CIBlockElement::GetByID($id)->Fetch()) {
             if (defined('BX_COMP_MANAGED_CACHE')) {
                 $GLOBALS['CACHE_MANAGER']->StartTagCache($dir);
                 $GLOBALS['CACHE_MANAGER']->RegisterTag('iblock_id_' . $result['IBLOCK_ID']);
             }
             $result = $result['NAME'];
             if (defined('BX_COMP_MANAGED_CACHE')) {
                 $GLOBALS['CACHE_MANAGER']->EndTagCache();
             }
         }
         $obCache->EndDataCache($result);
     }
     return $result;
 }
Exemplo n.º 4
0
 public static function getPropertyFieldSections($linkIblockId)
 {
     $linkIblockId = (int) $linkIblockId;
     if ($linkIblockId <= 0) {
         return false;
     }
     $ttl = 10000;
     $cache_id = 'catalog_store_sections';
     $cache_dir = '/bx/catalog_store_sections';
     $obCache = new CPHPCache();
     if ($obCache->InitCache($ttl, $cache_id, $cache_dir)) {
         $res = $obCache->GetVars();
     } else {
         $res = array();
     }
     if (!isset($res[$linkIblockId])) {
         $res[$linkIblockId] = array();
         $sections = \CIBlockSection::GetTreeList(array("IBLOCK_ID" => $linkIblockId));
         while ($row = $sections->Fetch()) {
             $res[$linkIblockId][] = $row;
         }
         if ($obCache->StartDataCache()) {
             $obCache->EndDataCache($res);
         }
     }
     return $res[$linkIblockId];
 }
Exemplo n.º 5
0
 /**
  * @return bool true if some mandatory UF exists for TASKS
  */
 public static function isMandatoryUserFieldExists()
 {
     /** @var $CACHE_MANAGER CCacheManager */
     global $CACHE_MANAGER;
     $isFieldExists = null;
     // unknown yet
     $obCache = new CPHPCache();
     $lifeTime = CTasksTools::CACHE_TTL_UNLIM;
     $cacheID = md5('uftasks');
     $cacheDir = "/tasks/ufs";
     if (defined('BX_COMP_MANAGED_CACHE') && $obCache->InitCache($lifeTime, $cacheID, $cacheDir)) {
         $data = $obCache->GetVars();
         $isFieldExists = $data['isFieldExists'];
     } else {
         /** @noinspection PhpDynamicAsStaticMethodCallInspection */
         $rsUserType = CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'TASKS_TASK', 'MANDATORY' => 'Y'));
         if ($rsUserType->fetch()) {
             $isFieldExists = true;
         } else {
             $isFieldExists = false;
         }
         if (defined('BX_COMP_MANAGED_CACHE') && $obCache->StartDataCache()) {
             $CACHE_MANAGER->StartTagCache($cacheDir);
             $CACHE_MANAGER->RegisterTag('tasks_user_fields');
             $CACHE_MANAGER->EndTagCache();
             $data = array('isFieldExists' => $isFieldExists);
             $obCache->EndDataCache($data);
         }
     }
     return $isFieldExists;
 }
Exemplo n.º 6
0
function getListElements( $arSort = array(), $arFilter = array(), $arNav = array(), $arGroup = array(), $arSelect = array(), $cache_id = '' ) {
	
	$cache = new CPHPCache();
	$cache_time = 3600;
	$cache_id = 'service_calc_'.$cache_id.'_'.md5(array( $arSort,$arFilter, $arNav, $arGroup, $arSelect, $cache_id));
	$cache_path = '/bitrix/cache/';

	if ($cache_time > 0 && $cache->InitCache($cache_time, $cache_id, $cache_path))
	{
	   $res = $cache->GetVars();
	   if (is_array($res["dbElements"]) && (!empty($res["dbElements"]) ) )
		  $dbElements = $res["dbElements"];
	}
	if (empty($dbElements))
	{
	   $dbElements = CIBlockElement::GetList ( $arSort,$arFilter, $arNav, $arGroup, $arSelect);
	   
	   //////////// end cache /////////
	   if ($cache_time > 0)
	   {
			 $cache->StartDataCache ( $cache_time, $cache_id, $cache_path);
			 $cache->EndDataCache   ( array("dbElements" => $dbElements) );
	   }
	}
	return $dbElements;
}
 public function addVariants(&$field, $params)
 {
     if (!$params["LINK_IBLOCK_ID"]) {
         return;
     }
     $cacheDir = KFilter::$config['CACHE_DIR'] . self::$cacheSubdir;
     $obCache = new CPHPCache();
     if ($obCache->InitCache(KFilter::$config['CACHE_TIME'], md5($params["LINK_IBLOCK_ID"] . __METHOD__), $cacheDir)) {
         $field['VARIANTS'] = $obCache->GetVars();
     } elseif ($obCache->StartDataCache()) {
         CModule::IncludeModule('iblock');
         global $CACHE_MANAGER;
         $CACHE_MANAGER->StartTagCache($cacheDir);
         $CACHE_MANAGER->RegisterTag("iblock_id_" . $params["LINK_IBLOCK_ID"]);
         $CACHE_MANAGER->EndTagCache();
         $rsSect = CIBlockSection::GetList(array('sort' => 'asc', 'name' => 'asc'), array('IBLOCK_ID' => $params["LINK_IBLOCK_ID"], 'ACTIVE' => 'Y'), false, array('ID', 'NAME'));
         while ($arSect = $rsSect->GetNext()) {
             $field['VARIANTS'][] = array('ID' => $arSect['ID'], 'NAME' => $arSect['NAME']);
         }
         $obCache->EndDataCache($field['VARIANTS']);
     }
     foreach ($field['VARIANTS'] as &$section) {
         if ($_REQUEST[$field['NAME']] == $section['ID']) {
             $section['SELECTED'] = 'Y';
             $res = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $params["LINK_IBLOCK_ID"], "SECTION_ID" => $section['ID']), false, false, array("ID", "IBLOCK_ID"));
             $arr = array();
             while ($el = $res->GetNext()) {
                 $arr[] = $el['ID'];
             }
             $this->filter['PROPERTY_' . $field['PROPERTY']] = $arr;
             break;
         }
     }
 }
Exemplo n.º 8
0
 function LoadTrigrams($dir_name)
 {
     if (empty($this->_trigrams)) {
         $file_name = $dir_name . "/trigram";
         if (file_exists($file_name) && is_file($file_name)) {
             $cache_id = filemtime($file_name) . "," . $file_name;
             $obCache = new CPHPCache();
             if ($obCache->StartDataCache(360000, $cache_id, "search")) {
                 $text = file_get_contents($file_name);
                 $ar = explode("\n", $text);
                 foreach ($ar as $trigramm) {
                     if (strlen($trigramm) == 3) {
                         $strScanCodesTmp = $this->ConvertToScancode($trigramm, false, true);
                         if (strlen($strScanCodesTmp) == 3) {
                             $this->_trigrams[$strScanCodesTmp] = true;
                         }
                     }
                 }
                 $obCache->EndDataCache($this->_trigrams);
             } else {
                 $this->_trigrams = $obCache->GetVars();
             }
         }
     }
 }
Exemplo n.º 9
0
 /**
  * @param $name
  * @param $value
  * @param int $time
  */
 public function set($name, $value, $time = 3600)
 {
     $cache = new \CPHPCache();
     list($dir, $name) = $this->dirAndName($name);
     $cache->InitCache($time, $name, $dir);
     $cache->Clean($name, $dir);
     $cache->StartDataCache();
     $cache->EndDataCache(array('value' => $value));
 }
Exemplo n.º 10
0
 /**
  * @param string $key
  * @param mixed $data
  */
 public function set($key, $data, $duration = null)
 {
     if (isset($_REQUEST['clear_cache']) && $_REQUEST['clear_cache'] === 'Y') {
         return null;
     }
     $this->delete($key);
     $time = $duration !== null ? (int) $duration : $this->getDefaultTime();
     $obCache = new \CPHPCache();
     $obCache->InitCache($time, $key, $this->getFolder($key));
     $obCache->StartDataCache();
     $obCache->EndDataCache($data);
 }
Exemplo n.º 11
0
 public static function getData($SITE_ID = SITE_ID, $bFull = false)
 {
     global $USER, $CACHE_MANAGER;
     $obCache = new CPHPCache();
     $today = ConvertTimeStamp();
     $cache_dir = '/intranet/planner/' . $USER->GetID();
     $cache_id = 'intranet|planner|' . $USER->GetID() . '|' . $SITE_ID . '|' . intval($bFull) . '|' . $today . '|' . FORMAT_DATETIME . '|' . FORMAT_DATE . '|' . LANGUAGE_ID;
     $arData = null;
     if ($obCache->InitCache(self::CACHE_TTL, $cache_id, $cache_dir)) {
         $arData = $obCache->GetVars();
         if (is_array($arData['SCRIPTS'])) {
             foreach ($arData['SCRIPTS'] as $key => $script) {
                 if (is_array($script)) {
                     $arData['SCRIPTS'][$key] = self::JS_CORE_EXT_RANDOM_NAME . RandString(5);
                     CJSCore::RegisterExt($arData['SCRIPTS'][$key], $script);
                 }
             }
         }
     } else {
         // cache expired or there's no cache
         $obCache->StartDataCache();
         $arData = array('SCRIPTS' => array(), 'STYLES' => array(), 'DATA' => array());
         $CACHE_MANAGER->StartTagCache($cache_dir);
         $CACHE_MANAGER->RegisterTag(self::CACHE_TAG . $USER->GetID());
         $events = GetModuleEvents("intranet", "OnPlannerInit");
         while ($arEvent = $events->Fetch()) {
             $arEventData = ExecuteModuleEventEx($arEvent, array(array('SITE_ID' => SITE_ID, 'FULL' => $bFull)));
             if (is_array($arEventData)) {
                 if (is_array($arEventData['SCRIPTS'])) {
                     $arData['SCRIPTS'] = array_merge($arData['SCRIPTS'], $arEventData['SCRIPTS']);
                 }
                 if (is_array($arEventData['STYLES'])) {
                     $arData['STYLES'] = array_merge($arData['STYLES'], $arEventData['STYLES']);
                 }
                 if (is_array($arEventData['DATA'])) {
                     $arData['DATA'] = array_merge($arData['DATA'], $arEventData['DATA']);
                 }
             }
         }
         $arCacheData = $arData;
         if (is_array($arCacheData['SCRIPTS'])) {
             foreach ($arCacheData['SCRIPTS'] as $key => $script) {
                 if (CJSCore::IsExtRegistered($script)) {
                     $arCacheData['SCRIPTS'][$key] = CJSCore::getExtInfo($script);
                 }
             }
         }
         $CACHE_MANAGER->EndTagCache();
         $obCache->EndDataCache($arCacheData);
     }
     return $arData;
 }
Exemplo n.º 12
0
function getSections()
{
    CModule::IncludeModule("iblock");
    $obCache = new CPHPCache();
    $lifeTime = 60 * 60 * 2;
    $cacheId = 'u_creative_sections';
    $data = array();
    $arFilter = array('IBLOCK_ID' => IBLOCK_ID);
    $raw = CIBlockSection::GetList(array('ID' => 'ASC'), $arFilter);
    while ($item = $raw->Fetch()) {
        $data[$item['CODE']] = $item['ID'];
    }
    $obCache->StartDataCache($lifeTime, $cacheId, "/");
    $obCache->EndDataCache(array("SECTIONS" => $data));
    return $data;
}
Exemplo n.º 13
0
 public static function getValueFromCache($cache_function, $cache_function_params, $nocache = false)
 {
     $result = null;
     $obj_cache = new CPHPCache();
     $cache_time = self::DEFAULT_CACHE_PERIOD;
     $cache_id = $cache_function . serialize($cache_function_params);
     $cache_path = '/drclinics/' . $cache_function . '/';
     if (!$nocache && $obj_cache->InitCache($cache_time, $cache_id, $cache_path)) {
         $result = $obj_cache->GetVars();
     } else {
         if ($nocache || $obj_cache->StartDataCache($cache_time, $cache_id, $cache_path)) {
             $result = call_user_func_array(__CLASS__ . '::' . $cache_function, $cache_function_params);
             if (!$nocache) {
                 $obj_cache->EndDataCache($result);
             }
         }
     }
     return $result;
 }
 public static function GetData($courseId)
 {
     $arContents = array();
     $cacheId = 'course_id_' . (string) (int) $courseId;
     $oCache = new CPHPCache();
     if ($oCache->InitCache(self::TTL, $cacheId, self::CACHE_PATH) && !self::IsDirty()) {
         $arCached = $oCache->GetVars();
         if (isset($arCached['arContents']) && is_array($arCached['arContents'])) {
             $arContents = $arCached['arContents'];
         }
     } else {
         self::Purge();
         $arContents = self::GetDataWoCache($courseId);
         $oCache->StartDataCache(self::TTL, $cacheId, self::CACHE_PATH);
         $oCache->EndDataCache(array('arContents' => $arContents));
         self::MarkAsClean();
     }
     return $arContents;
 }
Exemplo n.º 15
0
 private function __construct()
 {
     $cache = new CPHPCache();
     $cache_time = 2592000;
     // month
     $cache_id = self::$cacheKey;
     $cache_path = '/' . self::$cacheKey . '/';
     if ($cache->InitCache($cache_time, $cache_id, $cache_path)) {
         $vars = $cache->GetVars();
         $this->arIBlockIds = $vars['arIBlockIds'];
         $this->arPropertyIds = $vars['arPropertyIds'];
         $this->arPropertyValueIds = $vars['arPropertyValueIds'];
     } else {
         $cache->StartDataCache($cache_time, $cache_id, $cache_path);
         $this->SetIBlocks();
         $this->SetProperties();
         $cache->EndDataCache(array('arIBlockIds' => $this->arIBlockIds, 'arPropertyIds' => $this->arPropertyIds, 'arPropertyValueIds' => $this->arPropertyValueIds));
     }
 }
Exemplo n.º 16
0
 public function getObject($id, $code, $sectionCode = false, $iblock = false, $clear_cache = "N")
 {
     $id = (int) $id;
     $cache = new CPHPCache();
     if ($id) {
         $arFilter = array("ID" => $id);
         $cacheId = "object_" . $id . $sectionCode;
         $cachePath = "/" . SITE_ID . "/object/" . substr($id, 0, 3);
     } else {
         $arFilter = array("=CODE" => $code);
         $cacheId = "object_" . $code . $sectionCode;
         $cachePath = "/" . SITE_ID . "/object/" . substr($code, 0, 3);
     }
     if ($sectionCode) {
         $arFilter["SECTION_CODE"] = $sectionCode;
         $arFilter["!SECTION_ID"] = false;
     }
     if ($iblock) {
         $arFilter["IBLOCK_ID"] = $iblock;
     }
     // чистим кеш?
     if ('Y' == $clear_cache) {
         CPHPCache::clean($cacheId, $cachePath);
     }
     $cacheTime = CACHE_OBJECT;
     if ($cache->InitCache($cacheTime, $cacheId, $cachePath)) {
         $vars = $cache->GetVars();
         $obj = $vars["OBJECT"];
         return $obj;
     } else {
         $res = CIBlockElement::GetList(array(), $arFilter);
         if ($elem = $res->GetNextElement()) {
             $obj = $elem->GetFields();
             $props = $elem->GetProperties();
             $obj["PROPS"] = $props;
             if ($cache->StartDataCache()) {
                 $cache->EndDataCache(array("OBJECT" => $obj));
             }
             return $obj;
         }
     }
     return null;
 }
Exemplo n.º 17
0
 /**
  * Ищет данные о сущности по ее названию
  * @param string $name
  * @return array
  */
 public static function getEntityByName($name)
 {
     if (empty(self::$_entities[$name]) || !array_key_exists($name, self::$_entities[$name])) {
         $cid = 'bxar\\helpers\\HlEntity_' . $name;
         $obCache = new \CPHPCache();
         if ($obCache->InitCache(7200, $cid, '/')) {
             self::$_entities[$name] = $obCache->GetVars();
         } elseif ($obCache->StartDataCache()) {
             $filter = ['select' => ['ID', 'NAME', 'TABLE_NAME'], 'filter' => ['NAME' => $name]];
             $hlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList($filter)->fetch();
             if (!empty($hlblock['ID'])) {
                 self::$_entities[$name] = $hlblock;
             } else {
                 self::$_entities[$name] = null;
             }
             $obCache->EndDataCache(self::$_entities[$name]);
         }
     }
     return self::$_entities[$name];
 }
Exemplo n.º 18
0
 /**
  * Get active channels by city
  * 
  * @return array
  */
 public static function getActiveByCity()
 {
     $arChannels = array();
     $arFilter = array("=UF_CHANNEL.UF_BASE.UF_ACTIVE" => 1, "=UF_CITY_ID" => $_SESSION["USER_GEO"]["ID"]);
     $arSelect = array('ID', 'UF_CHANNEL_ID', 'UF_CHANNEL_BASE_ID' => 'UF_CHANNEL.UF_BASE.ID', 'UF_TITLE' => 'UF_CHANNEL.UF_BASE.UF_TITLE', 'UF_ICON' => 'UF_CHANNEL.UF_BASE.UF_ICON', 'UF_CODE' => 'UF_CHANNEL.UF_BASE.UF_CODE', "UF_IS_NEWS" => 'UF_CHANNEL.UF_BASE.UF_IS_NEWS', 'UF_PRICE' => 'UF_CHANNEL.UF_BASE.UF_PRICE_H24');
     $arSort = array("UF_CHANNEL.UF_BASE.UF_SORT" => "ASC");
     $obCache = new \CPHPCache();
     if ($obCache->InitCache(86400, serialize($arFilter) . serialize($arSelect) . serialize($arSort), "/channels_active/")) {
         $arChannels = $obCache->GetVars();
     } elseif ($obCache->StartDataCache()) {
         $result = \Hawkart\Megatv\ChannelCityTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'order' => $arSort));
         while ($row = $result->fetch()) {
             $row["ID"] = $row["UF_CHANNEL_ID"];
             $row["DETAIL_PAGE_URL"] = "/channels/" . $row['UF_CODE'] . "/";
             $arChannels[] = $row;
         }
         $obCache->EndDataCache($arChannels);
     }
     return $arChannels;
 }
Exemplo n.º 19
0
function IBlockElementsMenu($IBLOCK_ID)
{
    $obCache = new CPHPCache();
    $cacheLifetime = 86400;
    $cacheID = 'IBlockElementsMenu_' . $IBLOCK_ID;
    $cachePath = '/' . $cacheID;
    if ($obCache->InitCache($cacheLifetime, $cacheID, $cachePath)) {
        $vars = $obCache->GetVars();
        return $vars['NAV'];
    } elseif ($obCache->StartDataCache()) {
        CModule::IncludeModule("iblock");
        $arNav = array();
        $arSort = array("NAME" => "DESC");
        $arFilter = array("IBLOCK_ID" => $IBLOCK_ID, 'ACTIVE' => 'Y');
        $rs = CIBlockElement::GetList($arSort, $arFilter, false, false);
        //$rs->SetUrlTemplates("/catalog/#SECTION_CODE#/#ELEMENT_CODE#.php");
        while ($item = $rs->GetNext()) {
            $arNav[] = array($item['NAME'], $item['DETAIL_PAGE_URL'], array(), array(), "");
        }
        $obCache->EndDataCache(array('NAV' => $arNav));
        return $arNav;
    }
}
Exemplo n.º 20
0
 public function cacheElement($arOrder, $arrFilter, $tag_cache = '', $limit, $arSelect)
 {
     global $CACHE_MANAGER;
     $obCache = new CPHPCache();
     $cache_time = $this->cache_time;
     $cache_path = $this->cache_path;
     $arRes = array();
     $cache_id = 'cache_' . serialize($arOrder) . serialize($arrFilter) . serialize($limit) . serialize($arSelect);
     if ($cache_time > 0 && $obCache->InitCache($cache_time, $cache_id, $cache_path)) {
         $arRes = $obCache->GetVars();
     } elseif ($obCache->StartDataCache()) {
         $arLimit = false;
         if (intval($limit) > 0) {
             $arLimit = array("nTopCount" => $limit);
         }
         $rsRes = CIBlockElement::GetList($arOrder, $arrFilter, false, $arLimit, $arSelect);
         while ($arItem = $rsRes->GetNext()) {
             $arRes[] = $arItem;
         }
         $obCache->EndDataCache($arRes);
     }
     return $arRes;
 }
Exemplo n.º 21
0
	/**
	 * Получение идентификатора информационного блока по его коду
	 * для нормальной работы необходимо чтобы у информационных блоков были уникальные коды
	 * 
	 * @param string $CODE - код иформационного блока
	 * @param string $TYPE_ID - тип информационных блоков в котором будет выполнятся поиск, необязательное по умолчани false - все типы
	 */
	public static function GetIBlockIdByCode($CODE, $TYPE_ID = false)
	{
		static $arCache;
		
		$CACHE_ID = "iblock";
		if($TYPE_ID)
			$CACHE_ID .= $TYPE_ID;

		if(isset($arCache[$CACHE_ID][$CODE]))
			return $arCache[$CACHE_ID][$CODE];
				
		if(!$CODE || !CModule::IncludeModule("iblock"))
			return false;
			
		$cache = new CPHPCache;
		if($cache -> StartDataCache(self::$CACHE_TIME, $CACHE_ID, self::$CACHE_DIR . '/' . SITE_ID))
		{
			$arIds = array();
			$arFilter = array("ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y");
			if($TYPE_ID)
				$arFilter["TYPE"] = $TYPE_ID;
				
			$rsIBlock = CIBlock::GetList(array(), $arFilter);
			while($arr = $rsIBlock -> Fetch())
				$arIds[$arr["CODE"]] = $arr["ID"];
				
			$cache -> EndDataCache(array("arIds" => $arIds));
		} else 
			extract($cache -> GetVars());
		
		$arCache[$CACHE_ID] = $arIds;
			
		if(isset($arIds[$CODE]))
			return $arIds[$CODE];
			
		return false;
	}
Exemplo n.º 22
0
/*Подключение модуля информационных блоков*/
if (!CModule::IncludeModule("iblock"))
    return;

if (!$arParams["IBLOCK_ID"]) {$arParams["IBLOCK_ID"] = 2; }


$obCache = new CPHPCache;
$CACHE_ID = "VACANCY.LIST" . $arParams["IBLOCK_ID"] . implode('-', $arParams["ID"]);

if($obCache->InitCache($arParams["CACHE_TIME"], $CACHE_ID, "/")) {
    $cache = $obCache->GetVars();
    $arResult = $cache["arResult"];
}
else {
    $obCache->StartDataCache();

    $filter = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ACTIVE" => "Y");

    $rsItems = CIBlockElement::GetList(
        array("DATE_CREATE" => "DESC", "SORT" => "ASC"),
        $filter,
        false,
        false,
        array("IBLOCK_ID", "ID", "CODE", "DETAIL_PAGE_URL", "PREVIEW_PICTURE", "NAME", "PREVIEW_TEXT", "PROPERTY_REGION")
        );
    while ($item = $rsItems->GetNext()) {
        $arResult["ITEMS"][$item["ID"]] = array(
            "ID" => $item["ID"],
            "PREVIEW_TEXT" => $item["PREVIEW_TEXT"],
            "NAME" => $item["NAME"],
Exemplo n.º 23
0
</a></p>
</noindex>
<?php 
if ($arParams["USE_CATEGORIES"] == "Y" && $ElementID) {
    global $arCategoryFilter;
    $obCache = new CPHPCache();
    $strCacheID = $componentPath . LANG . $arParams["IBLOCK_ID"] . $ElementID . $arParams["CATEGORY_CODE"];
    if (($tzOffset = CTimeZone::GetOffset()) != 0) {
        $strCacheID .= "_" . $tzOffset;
    }
    if ($arParams["CACHE_TYPE"] == "N" || $arParams["CACHE_TYPE"] == "A" && COption::GetOptionString("main", "component_cache_on", "Y") == "N") {
        $CACHE_TIME = 0;
    } else {
        $CACHE_TIME = $arParams["CACHE_TIME"];
    }
    if ($obCache->StartDataCache($CACHE_TIME, $strCacheID, $componentPath)) {
        $rsProperties = CIBlockElement::GetProperty($arParams["IBLOCK_ID"], $ElementID, "sort", "asc", array("ACTIVE" => "Y", "CODE" => $arParams["CATEGORY_CODE"]));
        $arCategoryFilter = array();
        while ($arProperty = $rsProperties->Fetch()) {
            if (is_array($arProperty["VALUE"]) && count($arProperty["VALUE"]) > 0) {
                foreach ($arProperty["VALUE"] as $value) {
                    $arCategoryFilter[$value] = true;
                }
            } elseif (!is_array($arProperty["VALUE"]) && strlen($arProperty["VALUE"]) > 0) {
                $arCategoryFilter[$arProperty["VALUE"]] = true;
            }
        }
        $obCache->EndDataCache($arCategoryFilter);
    } else {
        $arCategoryFilter = $obCache->GetVars();
    }
Exemplo n.º 24
0
 public static function GetAttendeesList($Params = array(), &$strInvIds)
 {
     global $DB;
     $userKey = intVal($Params['userKey']);
     $bCache = CCalendar::CacheTime() > 0;
     if ($bCache) {
         $cache = new CPHPCache();
         $cacheId = 'attendees_list_' . $userKey;
         $cachePath = CCalendar::CachePath() . 'attendees_list';
         if ($cache->InitCache(CCalendar::CacheTime(), $cacheId, $cachePath)) {
             $res = $cache->GetVars();
             $strInvIds = $res["strInvIds"];
             $arUserMeeting = $res["arUserMeeting"];
         }
     }
     if (!$bCache || !isset($arUserMeeting)) {
         $strSql = "SELECT * FROM b_calendar_attendees WHERE USER_KEY='" . $userKey . "'";
         $res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $strInvIds = "";
         $arUserMeeting = array();
         while ($ev = $res->Fetch()) {
             $ev["STATUS"] = trim($ev["STATUS"]);
             $ev["DESCRIPTION"] = trim($ev["DESCRIPTION"]);
             $ev["COLOR"] = trim($ev["COLOR"]);
             $ev["TEXT_COLOR"] = trim($ev["TEXT_COLOR"]);
             $ev["ACCESSIBILITY"] = trim($ev["ACCESSIBILITY"]);
             $arUserMeeting[$ev['EVENT_ID']] = $ev;
             $strInvIds .= ',' . intVal($ev['EVENT_ID']);
         }
         $strInvIds = trim($strInvIds, " ,");
         if ($bCache) {
             $cache->StartDataCache(CCalendar::CacheTime(), $cacheId, $cachePath);
             $cache->EndDataCache(array("strInvIds" => $strInvIds, "arUserMeeting" => $arUserMeeting));
         }
     }
     return $arUserMeeting;
 }
Exemplo n.º 25
0
 }
 $cache_path = $cache_path_main . "forums";
 if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) {
     $res = $cache->GetVars();
     $arForums = CForumCacheManager::Expand($res["arForums"]);
 }
 $arForums = is_array($arForums) ? $arForums : array();
 if (empty($arForums)) {
     $db_res = CForumNew::GetListEx(array("FORUM_GROUP_SORT" => "ASC", "FORUM_GROUP_ID" => "ASC", "SORT" => "ASC", "NAME" => "ASC"), $arFilter);
     if ($db_res && ($res = $db_res->GetNext())) {
         do {
             $arForums[$res["ID"]] = $res;
         } while ($res = $db_res->GetNext());
     }
     if ($arParams["CACHE_TIME"] > 0) {
         $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path);
         $cache->EndDataCache(array("arForums" => CForumCacheManager::Compress($arForums)));
     }
 }
 $arResult["FORUMS"] = $arForums;
 $arGroupsForums = array();
 $arGroups = array();
 foreach ($arResult["FORUMS"] as $key => $res) {
     $arGroupsForums[$res["FORUM_GROUP_ID"]][$key] = $res;
 }
 foreach ($arGroupsForums as $PARENT_ID => $res) {
     $bResult = true;
     $res = array("FORUMS" => $res);
     while ($PARENT_ID > 0) {
         if (!array_key_exists($PARENT_ID, $arResult["GROUPS"])) {
             $bResult = false;
Exemplo n.º 26
0
$arSectionsInfo = array();
if (IsModuleInstalled("iblock"))
{
	$arFilter = array(
		"TYPE" => "catalog",
		"SITE_ID" => SITE_ID,
		"ACTIVE" => "Y"
	);

	$obCache = new CPHPCache();
	if ($obCache->InitCache(36000, serialize($arFilter), "/iblock/menu"))
	{
		$arSectionsInfo = $obCache->GetVars();
	}
	elseif ($obCache->StartDataCache())
	{
		if (CModule::IncludeModule("iblock"))
		{
			$dbIBlock = CIBlock::GetList(array('SORT' => 'ASC', 'ID' => 'ASC'), $arFilter);
			$dbIBlock = new CIBlockResult($dbIBlock);
			$curIblockID = 0;
			if ($arIBlock = $dbIBlock->GetNext())
			{
				$dbSections = CIBlockSection::GetList(array(), array("IBLOCK_ID" => $arIBlock["ID"]), false, array("ID", "SECTION_PAGE_URL", "PICTURE", "DESCRIPTION"));
				while($arSections = $dbSections->GetNext())
				{
					$pictureSrc = CFile::GetFileArray($arSections["PICTURE"]);

					if ($pictureSrc)
						$arResizePicture = CFile::ResizeImageGet(
Exemplo n.º 27
0
 /**
  * Private method used to check out for template and template cache file
  * Returns true whether tpl file exists and puts its path to private
  * property __cache_file_name. Otherwise returns false
  *
  * @return bool
  */
 public function __check_form_cache()
 {
     global $CACHE_MANAGER;
     // if no tpl at all - return false
     if (strlen($this->arForm["FORM_TEMPLATE"]) <= 0 || $this->arForm["USE_DEFAULT_TEMPLATE"] != "N") {
         $this->arForm["USE_DEFAULT_TEMPLATE"] = "Y";
         return false;
     }
     $this->__cache_tpl = '';
     $cache_dir = '/form/templates/' . $this->arForm['ID'];
     $cache_id = 'form|template|' . $this->arForm['ID'];
     $obCache = new CPHPCache();
     if ($obCache->InitCache(30 * 86400, $cache_id, $cache_dir)) {
         $res = $obCache->GetVars();
         $this->__cache_tpl = $res['FORM_TEMPLATE'];
     } else {
         $obCache->StartDataCache();
         $CACHE_MANAGER->StartTagCache($cache_dir);
         $CACHE_MANAGER->RegisterTag('forms');
         $CACHE_MANAGER->RegisterTag('form_' . $this->arForm['ID']);
         $this->__cache_tpl = $res['FORM_TEMPLATE'] = $this->__cache_file_header . $this->arForm['FORM_TEMPLATE'] . $this->__cache_file_footer;
         $CACHE_MANAGER->EndTagCache();
         $obCache->EndDataCache(array('FORM_TEMPLATE' => $this->__cache_tpl));
     }
     return true;
 }
Exemplo n.º 28
0
    $arCacheParams = array();
    foreach ($arParams as $key => $value) {
        if (substr($key, 0, 1) != "~") {
            $arCacheParams[$key] = $value;
        }
    }
    $cache = new CPHPCache();
    $CACHE_ID = SITE_ID . "|" . $componentName . "|" . md5(serialize($arCacheParams)) . "|" . $USER->GetGroups();
    $CACHE_PATH = "/" . SITE_ID . CComponentEngine::MakeComponentPath($componentName);
}
if ($bCache && $cache->InitCache($arParams["CACHE_TIME"], $CACHE_ID, $CACHE_PATH)) {
    $vars = $cache->GetVars();
    $arResult = $vars["arResult"];
} else {
    if ($bCache) {
        $cache->StartDataCache();
    }
    $rsSite = CSite::GetList($by = "sort", $order = "asc", $arFilter = array("ACTIVE" => "Y"));
    $arResult["SITES"] = array();
    while ($arSite = $rsSite->GetNext()) {
        if ($bSiteAll || in_array($arSite["LID"], $arParams["SITE_LIST"])) {
            if (strlen($arSite['DOMAINS']) > 0) {
                $arSite['DOMAINS'] = explode("\n", $arSite['DOMAINS']);
                foreach ($arSite['DOMAINS'] as $key => $domain) {
                    $arSite['DOMAINS'][$key] = trim($domain);
                }
            }
            $arResult["SITES"][] = array("LID" => $arSite["LID"], "NAME" => $arSite["NAME"], "LANG" => $arSite["LANGUAGE_ID"], "DIR" => $arSite["DIR"], "DOMAINS" => $arSite["DOMAINS"], "CURRENT" => $arSite["LID"] == SITE_ID ? "Y" : "N");
        }
    }
    if ($bCache) {
Exemplo n.º 29
0
 private static function _GetDeparmentsTree()
 {
     global $USER_FIELD_MANAGER, $CACHE_MANAGER, $DB, $DBType;
     self::$SECTIONS_SETTINGS_CACHE = array('TREE' => array(), 'DATA' => array());
     $ibDept = COption::GetOptionInt('intranet', 'iblock_structure', false);
     if ($ibDept <= 0) {
         return;
     }
     $cache_dir = '/intranet/structure';
     $cache_id = 'intranet|structure2|' . $ibDept;
     $obCache = new CPHPCache();
     if ($obCache->InitCache(30 * 86400, $cache_id, $cache_dir)) {
         self::$SECTIONS_SETTINGS_CACHE = $obCache->GetVars();
     } else {
         $obCache->StartDataCache();
         $CACHE_MANAGER->StartTagCache($cache_dir);
         $CACHE_MANAGER->RegisterTag("iblock_id_" . $ibDept);
         $CACHE_MANAGER->RegisterTag("intranet_users");
         $CACHE_MANAGER->RegisterTag("intranet_department_structure");
         $dbRes = CIBlockSection::GetList(array("LEFT_MARGIN" => "ASC"), array('IBLOCK_ID' => $ibDept, 'ACTIVE' => 'Y'), false, array('ID', 'NAME', 'IBLOCK_SECTION_ID', 'UF_HEAD', 'SECTION_PAGE_URL', 'DEPTH_LEVEL'));
         while ($arRes = $dbRes->Fetch()) {
             if (!$arRes['IBLOCK_SECTION_ID']) {
                 $arRes['IBLOCK_SECTION_ID'] = 0;
             }
             if (!self::$SECTIONS_SETTINGS_CACHE['TREE'][$arRes['IBLOCK_SECTION_ID']]) {
                 self::$SECTIONS_SETTINGS_CACHE['TREE'][$arRes['IBLOCK_SECTION_ID']] = array();
             }
             self::$SECTIONS_SETTINGS_CACHE['TREE'][$arRes['IBLOCK_SECTION_ID']][] = $arRes['ID'];
             self::$SECTIONS_SETTINGS_CACHE['DATA'][$arRes['ID']] = array('ID' => $arRes['ID'], 'NAME' => $arRes['NAME'], 'IBLOCK_SECTION_ID' => $arRes['IBLOCK_SECTION_ID'], 'UF_HEAD' => $arRes['UF_HEAD'], 'SECTION_PAGE_URL' => $arRes['SECTION_PAGE_URL'], 'DEPTH_LEVEL' => $arRes['DEPTH_LEVEL'], 'EMPLOYEES' => array());
         }
         if ($DBType == 'oracle') {
             $dbRes = $DB->query("\n\t\t\t\t\tSELECT BUF.VALUE_ID AS ID, BUF.VALUE_INT AS UF_DEPARTMENT\n\t\t\t\t\t\tFROM b_utm_user BUF\n\t\t\t\t\t\t\tLEFT JOIN b_user_field UF ON BUF.FIELD_ID = UF.ID\n\t\t\t\t\t\t\tLEFT JOIN b_user U ON BUF.VALUE_ID = U.ID\n\t\t\t\t\t\tWHERE ( U.ACTIVE = 'Y' )\n\t\t\t\t\t\t\tAND ( UF.FIELD_NAME = 'UF_DEPARTMENT' )\n\t\t\t\t\t\t\tAND ( BUF.VALUE_INT IS NOT NULL AND BUF.VALUE_INT <> 0 )\n\t\t\t\t");
             while ($arRes = $dbRes->fetch()) {
                 $dpt = $arRes['UF_DEPARTMENT'];
                 if (is_array(self::$SECTIONS_SETTINGS_CACHE['DATA'][$dpt])) {
                     self::$SECTIONS_SETTINGS_CACHE['DATA'][$dpt]['EMPLOYEES'][] = $arRes['ID'];
                 }
             }
         } else {
             $dbRes = CUser::GetList($by = 'ID', $order = 'ASC', array('ACTIVE' => 'Y', '!UF_DEPARTMENT' => false), array('FIELDS' => array('ID'), 'SELECT' => array('UF_DEPARTMENT')));
             while ($arRes = $dbRes->fetch()) {
                 foreach ($arRes['UF_DEPARTMENT'] as $dpt) {
                     if (is_array(self::$SECTIONS_SETTINGS_CACHE['DATA'][$dpt])) {
                         self::$SECTIONS_SETTINGS_CACHE['DATA'][$dpt]['EMPLOYEES'][] = $arRes['ID'];
                     }
                 }
             }
         }
         $CACHE_MANAGER->EndTagCache();
         $obCache->EndDataCache(self::$SECTIONS_SETTINGS_CACHE);
     }
 }
Exemplo n.º 30
0
}
if (!CModule::IncludeModule("blog")) {
    ShowError(GetMessage("BLOG_MODULE_NOT_INSTALL"));
    return;
}
if (!CModule::IncludeModule('idea')) {
    ShowError(GetMessage("IDEA_MODULE_NOT_INSTALL"));
    return;
}
if (strlen($arParams["BLOG_URL"]) == 0) {
    return;
}
$arResult = array();
$obCache = new CPHPCache();
$life_time = 60 * 60 * 24;
//1 day
$cache_id = 'idea_statistic_list_' . $arParams["BLOG_URL"];
$cache_path = '/' . SITE_ID . '/idea/statistic_list/';
if ($obCache->StartDataCache($life_time, $cache_id, $cache_path)) {
    $arResult = CIdeaManagment::getInstance()->Idea()->GetStatusList();
    if ($arCurBlog = CBlog::GetByUrl($arParams["BLOG_URL"])) {
        $dbPosts = CBlogPost::GetList(array(), array("BLOG_ID" => $arCurBlog["ID"], "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH), false, false, array("ID", "UF_STATUS"));
        while ($arPost = $dbPosts->Fetch()) {
            $arResult[intval($arPost["UF_STATUS"])]["CNT"]++;
        }
    }
    $obCache->EndDataCache($arResult);
} else {
    $arResult = $obCache->GetVars();
}
$this->IncludeComponentTemplate();