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 diff --git a/CLASS.php b/CLASS.php new file mode 100644 index 0000000..44f068a --- /dev/null +++ b/CLASS.php @@ -0,0 +1,68 @@ +'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']; + } + } + + +} diff --git a/CLASS2.php b/CLASS2.php new file mode 100644 index 0000000..f0886a9 --- /dev/null +++ b/CLASS2.php @@ -0,0 +1,43 @@ +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 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 "";