diff --git a/getLastNews.php b/getLastNews.php new file mode 100644 index 0000000..7842414 --- /dev/null +++ b/getLastNews.php @@ -0,0 +1,16 @@ +GetNewsEx('https://lenta.ru', 443, '/rss/news/', ''); +$arNews = $obCIBlockRss->FormatArray($resNews)['item']; +$arNews = array_slice($arNews, 0, 5); +foreach ($arNews as $arNew) { + echo PHP_EOL . $arNew['title'] . PHP_EOL . $arNew['link'] . PHP_EOL . $arNew['description'] . PHP_EOL; +} \ No newline at end of file diff --git a/newGetElements.php b/newGetElements.php new file mode 100644 index 0000000..e82a504 --- /dev/null +++ b/newGetElements.php @@ -0,0 +1,128 @@ +_ttl); + unset($this->_arOrder); + unset($this->_arSelect); + unset($this->_arFilter); + unset($this); + } + + /* setters */ + + public function setFilter($arFilter) + { + $this->_arFilter = $arFilter; + } + + public function setSelect($arSelect) + { + $this->_arSelect = $arSelect; + } + + public function setOrder($arOrder) + { + $this->_arOrder = $arOrder; + } + + public function setTtl($ttl) + { + $this->_ttl = $ttl; + } + + /* getters */ + + public function getFilter() + { + return $this->_arFilter; + } + + public function getSelect() + { + return $this->_arSelect; + } + + public function getOrder() + { + return $this->_arOrder; + } + + private function _getTtl() + { + return $this->_ttl; + } + + /* getList для D7 */ + private function _getListD7() + { + $arResult = []; + $arParams = [ + 'filter' => $this->getFilter(), + 'select' => $this->getSelect(), + 'order' => $this->getOrder(), + //'cache' => $this->_getTtl(), если необходимо закешировать выборку из БД + ]; + + $resResult = \ElementTable::getList($arParams); + return $resResult; + } + + /* getList для старого ядра */ + private function _getList() + { + $arResult = []; + $arOrder = $this->getOrder(); + $arFilter = $this->getFilter(); + $arSelect = $this->getSelect(); + + $resResult = \CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect); + + return $resResult; + } + + public function getList($arOrder = [], $arFilter = [], $arSelect = []) + { + if (!empty($arOrder)) { + $this->setOrder($arOrder); + } + + if (!empty($arFilter)) { + $this->setFilter($arFilter); + } + + if (!empty($arSelect)) { + $this->setSelect($arSelect); + } + + $arOrder = serialize($this->getOrder()); + $arFilter = serialize($this->getFilter()); + $arSelect = serialize($this->getSelect()); + + $obCache = Application::getInstance()->getManagedCache(); + + $cacheKey = md5($arOrder . $arFilter . $arSelect); + if ($obCache->read($this->_ttl, $cacheKey)) { + return $obCache->get($cacheKey); + } else { + $resElements = $this->_getList(); // или _getListD7 для ядра D7 + $obCache->set($cacheKey, $resElements); + return $resElements; + } + } +} \ No newline at end of file