From 17c78eff99b663098a38288bcd418be77efd4727 Mon Sep 17 00:00:00 2001 From: Ryumin Denis Date: Tue, 19 Nov 2019 12:20:59 +0300 Subject: [PATCH 1/4] add gitignore file --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..62c8935 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ \ No newline at end of file From 5d4afb7848222544d01b6b6dff0c18ed1e42f624 Mon Sep 17 00:00:00 2001 From: Ryumin Denis Date: Tue, 19 Nov 2019 12:22:25 +0300 Subject: [PATCH 2/4] add filter selector file to project --- CLASS.php | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 CLASS.php diff --git a/CLASS.php b/CLASS.php new file mode 100644 index 0000000..0731ee5 --- /dev/null +++ b/CLASS.php @@ -0,0 +1,66 @@ +'asc']; +$filter = []; +$fields = []; + + private function Validator($params) + { + //Сначала проводим валидацию фильтра, предполагается что он обязательно должен быть заполненым + if(empty($params['filter'])){ + return ['type' => false, 'msg' => 'Empty filter']; + }else if(!is_array($params['filter'])){ + return ['type' => false, 'msg' => 'Invalid filter']; + }else if(empty($params['filter']['IBLOCK_ID'])){ + return ['type' => false, 'msg' => 'Empty IBLOCK_ID']; + }else{ + $this->filter = $params['filter']; + } + + //Проверяем сортировку + //Предполагается что мыиспользуем простую сортировку по возрастанию и убыванию + if(!empty($params['sort'])){ + if(!is_array($params['sort'])){ + return ['type' => false, 'msg' => 'Invalid sort']; + }else if(count($params['sort']) > 1){ + return ['type' => false, 'msg' => 'Invalid sort']; + }else if(!in_array($params['sort'][array_key_first($params['sort'])],['asc','desc'])){ + return ['type' => false, 'msg' => 'Invalid sort']; + }else{ + $this->sort = $params['sort']; + } + } + + //Проверяем поля + if(!empty($params['fields'])){ + if(!is_array($params['fields'])){ + return ['type' => false, 'msg' => 'Invalid fields']; + }else{ + $this->fields = $params['fields']; + } + } + return ['type' => true]; + } + + public function Collector($params) + { + $validator = $this->Validator($params); + if($validator['type']){ + + //Для удобства + $sort = &$this->sort; + $filter = &$this->filter; + $fields = &$this->fields; + + $sample = CIBlockElement::GetList($sort,$filter,false,false,$fields); + return $sample; + }else{ + return $validator['msg']; + } + } + + +} From e3f771a7bb0422ee1acb04634a82dc2eb95b2589 Mon Sep 17 00:00:00 2001 From: Ryumin Denis Date: Tue, 19 Nov 2019 12:23:26 +0300 Subject: [PATCH 3/4] add news viewer script --- getLastNews.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 getLastNews.php diff --git a/getLastNews.php b/getLastNews.php new file mode 100644 index 0000000..b5474a2 --- /dev/null +++ b/getLastNews.php @@ -0,0 +1,28 @@ +channel->item as $key => $item) { + if($count < 5){ + $title = $item->title; + $link = $item->link; + $descr = $item->description; + $news[] = implode("
",[$title,$link,$descr]); + + $count++; + }else{ + break; + } + } + +echo "
    "; + foreach ($news as $key => $value) { + echo "
  • $value
  • "; + } +echo "
"; From 2e62f30e45b199095dc527898e2e0aac888d9088 Mon Sep 17 00:00:00 2001 From: Ryumin Denis Date: Tue, 19 Nov 2019 13:00:31 +0300 Subject: [PATCH 4/4] add header & footer require --- CLASS.php | 2 ++ CLASS2.php | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 CLASS2.php diff --git a/CLASS.php b/CLASS.php index 0731ee5..44f068a 100644 --- a/CLASS.php +++ b/CLASS.php @@ -1,4 +1,6 @@ InitCache($cacheTime, $cacheId, $cachePath)){ // Если кэш с текущими параметрами существует + $elements_list = $obCache->GetVars(); + }else{ // Если кэш с текущими параметрами Не существует + $elements_list = CIBlockElement::GetList($ListCacheParams['arSort'], $ListCacheParams['arSelect'], false, Array("nPageSize"=>50), $ListCacheParams['arFilter']); // Получаем список элементов инфоблока + $obCache->StartDataCache($cacheTime, $cacheId, $cachePath); + $obCache->EndDataCache($elements_list); // Записываем список в кэш + } + return $elements_list; + } +} +/* END Класс - Работа с инфоблоками */ +/* Применение метода - получение кэшированногого списка элементов инфоблока */ +$ListCacheParams = Array( // Задаем параметры метода + 'arSort' => Array("ID" => 'asc'), // Сортировка + 'arSelect' => Array("ID", "NAME", "DATE_ACTIVE_FROM"), // Поля + 'arFilter' => Array("IBLOCK_ID"=>IntVal(24), "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y") // Фильтр +); +$object = new IblockWork; +$elements_list = $object->GetElementsListCache($ListCacheParams); // Обращаемся к методу +echo '
';
+print_r($elements_list); // Выводим результат
+echo '
'; +/* END Применение метода - получение кэшированногого списка элементов инфоблока */ +require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); +?> \ No newline at end of file