Example #1
0
 public function fetch($filter, $params = array())
 {
     // ����������� ������
     //        ksort($filter);
     // ��������� � id ���� ��� ��������� ���������
     $cacheId = serialize($filter);
     //        if (isset($params['count'])) {
     //            $cacheId .= '+cnt'.$params['count'];
     //        }
     //
     //        if (isset($params['pageSize'])) {
     //            $cacheId .= '+ps'.$params['pageSize'].'-'.\CDBResult::navStringForCache($params['pageSize']);
     //        }
     //
     //        if (isset($params['sort'])) {
     //            $cacheId .= '+s'.  serialize($params['sort']);
     //        } else {
     //            $params['sort'] = array('id'=> 'desc');
     //        }
     //
     //        // ��������� ���
     $cache = new \CPhpCache();
     //        if (false && $cache->initCache($this->_cacheTime, $cacheId, $this->_cacheDir)) {
     //
     //            $vars = $cache->getVars();
     //
     //            // ��� ����, ����� ������������ ����������� ���������, ��������� CDBResult
     //            $this->_dbResult = new \CDBResult;
     //            if (isset($params['pageSize'])) {
     //                $this->_dbResult->InitFromArray(
     //                    (int)$vars['total'] > 0 ? array_fill(0, $vars['total'], 0) : array()
     //                );
     //                if (isset($params['pageSize'])) {
     //                    $this->_dbResult->navStart($params['pageSize'], true, $vars['page']);
     //                }
     //            }
     //            return $vars['items'];
     //        }
     // � ���� ���
     \CMOdule::includeModule('iblock');
     //$filter['IBLOCK_ID'] = isset($filter['IBLOCK_ID']) ? $filter['IBLOCK_ID'] : $this->_iblockId;
     //        $filter['ACTIVE'] = 'Y';
     $this->_dbResult = \CIBlockElement::getList($params['sort'], $filter, false, isset($params['count']) ? array('nTopCount' => $params['count']) : false, $this->_commonSelect);
     if (isset($params['pageSize'])) {
         $this->_dbResult->navStart($params['pageSize']);
     }
     $result = array();
     while ($row = $this->_dbResult->fetch()) {
         $result[$row['ID']] = $row;
     }
     if ($cache->startDataCache()) {
         $cache->endDataCache(array('items' => $result, 'total' => $this->_dbResult->NavRecordCount, 'page' => $this->_dbResult->NavPageNomer));
     }
     return $result;
 }
Example #2
0
 public function getLastUrl()
 {
     $cacheTime = 3600;
     $cacheId = "last_issue_url";
     $cacheDir = SITE_ID . '/issues';
     $cache = new CPhpCache();
     if ($cache->initCache($cacheTime, $cacheId, $cacheDir)) {
         return $cache->getVars();
     }
     CModule::IncludeModule("iblock");
     $arFilter = array("IBLOCK_ID" => $this->_iblock, 'ACTIVE_DATE' => "Y");
     $res = CIBlockElement::GetList(array("ACTIVE_FROM" => "DESC"), $arFilter, false, array("nTopCount" => 1), array("ID"));
     $arIssues = array();
     if ($arIssue = $res->GetNext()) {
         $url = \MH\FrontSite::o()->router->makeUrl('issues_issue', array('ID' => $arIssue['ID']));
     }
     if ($cache->startDataCache()) {
         $cache->endDataCache($url);
     }
     return $url;
 }
Example #3
0
 protected function _determineModules(array $ids)
 {
     sort($ids);
     $cache = new CPhpCache();
     if ($cache->initCache($this->_cacheTime, serialize($ids), $this->_cacheDir)) {
         return $cache->getVars();
     }
     CModule::includeModule('iblock');
     $res = CIBlockElement::getList(array(), array('ID' => $ids), false, array('nTopCount' => count($ids)), array('ID', 'IBLOCK_ID'));
     $result = array();
     while ($row = $res->fetch()) {
         $module = $this->_getModule($row['IBLOCK_ID']);
         if (!array_key_exists($module, $result)) {
             $result[$module] = array();
         }
         $result[$module][] = $row['ID'];
     }
     if ($cache->startDataCache()) {
         $cache->endDataCache($result);
     }
     return $result;
 }