Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions GetElementsListCache.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

/* Класс - Работа с инфоблоками */
Class IblockWork {
function GetElementsListCache($ListCacheParams){ // Метод - Получение кэшированногого списка элементов инфоблока
$cacheTime = 3600; // Время действия кэша
$cacheId = md5(serialize($ListCacheParams)); // id кэша, собранный из параметров, переданных в метод
$cachePath = 'get_elements_list'; // директория кэша
$obCache = new CPHPCache();
if ($obCache->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 '<pre>';
print_r($elements_list); // Выводим результат
echo '</pre>';

/* END Применение метода - получение кэшированногого списка элементов инфоблока */

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>
27 changes: 27 additions & 0 deletions getLastNews.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env php
<?php
$rss = "https://lenta.ru/rss"; // Задаем адрес $rss ленты
$xml = simplexml_load_file($rss); // Парсим $rss ленту
$result = '';

if($xml){ // Если rss-лента успешно распарсилась
$result = GetNews($xml); // Получаем новости и записываем в результат
}else{ // Если rss-лента не распарсилась
$result = "Ошибка: rss лента \"$rss\" недоступна"; // Записываем в результат ошибку
}
echo $result; // Выводим результат

// Получение новостей из xml
function GetNews($xml) {
$xml_object = $xml->xpath('//channel/item[position()<6]'); // Получаем последние 5 новостей из xml
$str = '';

// Перебираем новости и записываем в строку
foreach($xml_object as $xml_element){
$str .= $xml_element->title ? ' • ' . trim($xml_element->title) . PHP_EOL : '';
$str .= $xml_element->link ? ' • ' . trim($xml_element->link) . PHP_EOL : '';
$str .= $xml_element->description ? ' • ' . trim($xml_element->description) . PHP_EOL : '';
$str .= PHP_EOL;
}
return $str;
}