From 2209db423c701f83d6ba14206d5124bc5c09a3ba Mon Sep 17 00:00:00 2001 From: Jhon Date: Sat, 20 Apr 2019 20:19:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/Elements.php | 74 ++++++++++++++++++++++++++++++++++++++++++++ test/getLastNews.php | 43 +++++++++++++++++++++++++ test/testWeb.php | 26 ++++++++++++++++ 3 files changed, 143 insertions(+) create mode 100644 test/Elements.php create mode 100644 test/getLastNews.php create mode 100644 test/testWeb.php diff --git a/test/Elements.php b/test/Elements.php new file mode 100644 index 0000000..33c323f --- /dev/null +++ b/test/Elements.php @@ -0,0 +1,74 @@ +id = $id; + } + + if (!$this->id) { + throw new Exception('Iblock ID is undefined.'); + } + } + + public function getElements($params = []) + { + if (array_key_exists('cacheTime', $params)) { + $cacheTime = $params['cacheTime']; + unset($params['cacheTime']); + } else { + $cacheTime = 3600; + } + + $order = $params['order'] ? $params['order'] : []; + $select = $params['select'] ? $params['select'] : ['*']; + $filter = $params['filter'] ? $params['filter'] : []; + $group = $params['group'] ? $params['group'] : false; + $nav = $params['nav'] ? $params['nav'] : false; + + if (!$filter['IBLOCK_ID']) { + $filter['IBLOCK_ID'] = $this->id; + } + + $cache = Cache::createInstance(); + if ($cache->initCache($cacheTime, serialize($params), '/cache_elements')) { + $result = $cache->getVars(); + } elseif ($cache->startDataCache()) { + $result = []; + + $res = \CIBlockElement::GetList($order, $filter, $group, $nav, $select); + + while ($element = $res->GetNextElement()) { + $item = $element->GetFields(); + $item['PROPERTIES'] = $element->GetProperties(); + $result[$item['ID']] = $item; + } + + if (!empty($result)) { + $cache->endDataCache($result); + } else { + $cache->abortDataCache(); + } + } + + return $result; + } + + protected function getCacheDir() + { + return get_class($this); + } +} \ No newline at end of file diff --git a/test/getLastNews.php b/test/getLastNews.php new file mode 100644 index 0000000..50a706b --- /dev/null +++ b/test/getLastNews.php @@ -0,0 +1,43 @@ +loadRss($url); + } + + private function loadRss($url) + { + $rss = file_get_contents($url); + $rss = simplexml_load_string($rss); + + foreach ($rss->channel->item as $item) { + $pubDate = strtotime($item->pubDate); + $this->items[$pubDate] = $item; + } + } + + public function getItems($count = 0) + { + if ($count > 0) { + return array_slice($this->items, 0, $count); + } else { + return $this->items; + } + } +} + +$rss = new RssReader('https://lenta.ru/rss'); + +foreach ($rss->getItems(5) as $item) { + echo "\n Название: " . $item->title; + echo "\n Ссылка: " . $item->link; + echo "\n Описание: " . $item->description; +} \ No newline at end of file diff --git a/test/testWeb.php b/test/testWeb.php new file mode 100644 index 0000000..1e5f276 --- /dev/null +++ b/test/testWeb.php @@ -0,0 +1,26 @@ + + +getElements([ + 'select' => ['NAME', 'ID', 'IBLOCK_ID', 'PROPERTY_*'], + 'order' => ['SORT' => 'ASC'], +]); + +print_r($items); + +//get single property +$items = $banners->getElements([ + 'select' => ['NAME', 'PROPERTY_HREF'], + 'order' => ['SORT' => 'ASC'], +]); + +print_r($items); + +?> + + \ No newline at end of file