From 296534a1c0fb3d0f15bc30c270fc211d4ed084b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9?= Date: Sat, 13 Apr 2019 16:44:21 +0300 Subject: [PATCH 1/2] =?UTF-8?q?php=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B5=20=D1=81=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=84=D0=BE=D0=B1=D0=BB=D0=BE=D0=BA=D0=B0=D0=BC?= =?UTF-8?q?=D0=B8,=20=D0=B2=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D0=BE=D0=BC?= =?UTF-8?q?=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=20=D0=BA=D0=B5=D1=88=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B8=D0=BD=D1=84=D0=BE=D0=B1=D0=BB=D0=BE=D0=BA?= =?UTF-8?q?=D0=B0;=20=D0=A1=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20getLastNews.ph?= =?UTF-8?q?p,=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=8B=D0=B9=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B5=20=D0=B8?= =?UTF-8?q?=D0=B7=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=BD=D0=BE=D0=B9?= =?UTF-8?q?=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8=20=D0=B2=D1=8B=D0=B2?= =?UTF-8?q?=D0=B5=D0=B4=D0=B5=D1=82=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=D0=B4?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=205=20=D0=BD=D0=BE=D0=B2=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B5=D0=B9,=20=D0=BF=D1=80=D0=B8=20=D0=B2=D1=8B=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B5=20=D0=BD=D0=B5=D0=BE=D0=B1=D1=85=D0=BE=D0=B4=D0=B8?= =?UTF-8?q?=D0=BC=D0=BE=20=D1=83=D0=BA=D0=B0=D0=B7=D0=B0=D1=82=D1=8C=20rss?= =?UTF-8?q?=20url.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- local/php_interface/console/getLastNews.php | 46 +++++++++++++++ local/php_interface/include/ibElementList.php | 58 +++++++++++++++++++ local/php_interface/init.php | 8 +++ 3 files changed, 112 insertions(+) create mode 100644 local/php_interface/console/getLastNews.php create mode 100644 local/php_interface/include/ibElementList.php create mode 100644 local/php_interface/init.php diff --git a/local/php_interface/console/getLastNews.php b/local/php_interface/console/getLastNews.php new file mode 100644 index 0000000..a1d94a2 --- /dev/null +++ b/local/php_interface/console/getLastNews.php @@ -0,0 +1,46 @@ +"value" + * @param array $select массив фильтров в части SELECT запроса, алиасы возможны в виде: "alias"=>"field" + * @param array $order массив полей в части ORDER BY запроса в виде: "field"=>"asc|desc" + * @param int $limit целое число, указывающее максимальное число столбцов в выборке (Подобно LIMIT n в MySql) + * @param int $offset целое число, указывающее номер первого столбца в результате. (Подобно LIMIT n, 100 в MySql) + * @param array $group массив полей в части GROUP BY запроса + * @return array|bool + */ + function GetCachedElements($filter, $select = false, $order = ["ID"=>"ASC"], $limit = 100, $offset = 0, $group = '' ){ + if(!Loader::includeModule('iblock')) return false; + if(empty($filter)) return false; + $arResult = false; + $cache = Cache::createInstance(); // получаем экземпляр класса кеширования + $life_time = Option::get("iblock","cache_life_time",3600); // получаем время жизни кеша + $cache_params = $filter; + $cache_params['func']='CIBlockElement::GetList'; + $cache_params['select']=$select; + $cache_params['order']=$order; + $cache_params['pager']=$limit . "_" . $offset; + $cache_id = md5(serialize($cache_params)); // формируем ключ, который зависит от параметров + if($cache->initCache($life_time, $cache_id, "/")) : // проверяем наличие данных в кеше + $arResult = $cache->GetVars(); // получаем данные из кеша + elseif($cache->StartDataCache()): + // получаем данны из БД + $elList = Iblock\ElementTable::GetList([ + "filter" => $filter, + "select" => $select, + "order" => $order, + "limit" => $limit, + "offset" => $offset, + ]); + while($arElement = $elList->Fetch()) + { + $arResult[] = $arElement; + } + $cache->EndDataCache($arResult); // записываем данные в кеш + endif; + return $arResult; // возвращаем данные + } +} \ No newline at end of file diff --git a/local/php_interface/init.php b/local/php_interface/init.php new file mode 100644 index 0000000..fac9099 --- /dev/null +++ b/local/php_interface/init.php @@ -0,0 +1,8 @@ + Date: Sat, 13 Apr 2019 16:46:15 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B0=20=D0=B2=D0=B2=D0=BE=D0=B4=20rss=20url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- local/php_interface/console/getLastNews.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/local/php_interface/console/getLastNews.php b/local/php_interface/console/getLastNews.php index a1d94a2..d5f0bd1 100644 --- a/local/php_interface/console/getLastNews.php +++ b/local/php_interface/console/getLastNews.php @@ -11,6 +11,9 @@ ini_set('memory_limit', '1024M'); $url=@$argv[1]; // передаем rss url при вызове скрипта +if(!$url) { + print "Введите rss url!"; return; +} $cnt=5; // сколько новостей показывать $_SERVER['DOCUMENT_ROOT'] = str_replace('\\', '/', realpath(__DIR__ . '/../../../')); $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];