use Bitrix\Highloadblock as HL;
\Bitrix\Main\Loader::includeModule('highloadblock');
// Подготовка модели для работы с хайлоадом. Можно вынести в какой-нибудь хелпер, чтобы по ID хайлоада получать его модель
$hlblock = HL\HighloadBlockTable::getById(2)->fetch();
/** @var \Bitrix\Main\ORM\Entity $entity */
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$entityClass = $entity->getDataClass();
/** @var HL\DataManager $model */
$model = new $entityClass();
// Сама работа с моделью хайлоада
$items = $model->getList(['filter' => ['UF_SHOW_ON_MAIN' => 1]])->fetchAll();
$original = 'videorecord/2023/05/14/Б6-4';
echo($original . '<br>');
$encrypted = Crypt::encryptText($original);
echo($encrypted . '<br>');
$decrypted = Crypt::decryptText($encrypted);
echo($decrypted . '<br>');
$instagram = new \InstagramScraper\Instagram(new \GuzzleHttp\Client());
composer require guzzlehttp/guzzle
<a href="<?= $arItem['PROPERTIES']['LINK']['VALUE'] ?>" id="<span id=" title=" Код PHP: <? $this->GetEditAreaId($arItem['ID']); ; ?>"
<a href="<?= $arItem['PROPERTIES']['LINK']['VALUE'] ?>"
id="<?= $this->GetEditAreaId($arItem['ID']); ?>"
class="main-slider__item swiper-slide"
style="background-image: url();"
data-bx-app-ex-style="background-image: url(<?= $arFile['SRC'] ?> );">
<div class="main-slider__content">
<h1><?= $arItem['PROPERTIES']['CAPTION']['VALUE']; ?></h1>
<?= $arItem['PREVIEW_TEXT']; ?>
</div>
</a>
function recursiveProcess($array) {
foreach ($array as $key => $value) {
if ($key == 'car' && is_array($value) && isset($value['color'])) {
// Нашли!
}
if (is_array($value)) {
// Встретили массив - заходим в него
recursiveProcess($value);
}
}
}
function sportNews($iblockId, $sportTypeId) {
$arSelect = ["*", "PROPERTY_*", "PROPERTY_SPORT_TYPE"]; // Добавить в выборку поле типов спорта. Отдельно с указанием кода - чтобы можно было к нему обращаться по коду, а не по ID
$arFilter = ["IBLOCK_ID" => $iblockId, "=PROPERTY_SPORT_TYPE" => $sportTypeId];
$arItems = [];
$res = CIBlockElement::GetList([], $arFilter, false, ["nPageSize" => 500], $arSelect);
$sportTypes = []; // Массив, в который мы собираем ID связанных типов спорта
while ($arItem = $res->fetch()) {
$sportTypes = array_merge($sportTypes, $arItem['PROPERTY_SPORT_TYPE_VALUE']); // Собираем в массив
$arItems[] = $arItem;
}
if (!empty($sportTypes)) {
$sportTypes = array_unique($sportTypes);
$arFilterSport = ['ID' => $sportTypes, 'IBLOCK_ID' => 'ИД Инфоблока типов спорта'];
$resSport = CIBlockElement::GetList([], $arFilterSport);
$sportReference = [];
while ($arItem = $resSport->fetch()) {
$sportReference[$arItem['ID']] = $arItem; // Раскладываем выбранные типы спорта в ассоциативный массив по ID'шникам
}
foreach ($arItems as $ind => $arItem) { // Проходимся по всем новостям
$arItems[$ind]['SPORT_TYPE'] = [];
foreach ($arItem['PROPERTY_SPORT_TYPE_VALUE'] as $sportTypeId) {
$arItems[$ind]['SPORT_TYPE'][] = $sportReference[$sportTypeId]; // Рассовываем в них загруженные типы спорта
}
}
}
return $arItems;
}
$iblockId = 10; // ID инфоблок новости спорта
$sportTypeId = 5; // ID элемента инфоблока виды спорта (футбол)
sportNews($iblockId, $sportTypeId);
$img_width = '';
$img_height = '';
$grid_num = '';
$settings = array(
array(
'indexes' => array(2, 4, 5, 11, 13, 14, 15, 16, 20, 21, 23, 24, 25, 27, 28, 31, 32, 35, 36, 38, 39, 41),
'img_width' => 100,
'img_height' => 100,
'grid_num' => 1
),
array(
'indexes' => array(1, 3, 7, 8, 9, 10, 12, 17, 19, 22, 26, 29, 30, 34, 37, 42),
'img_width' => 400,
'img_height' => 500,
'grid_num' => 2
),
array(
'indexes' => array(6, 18, 33, 40),
'img_width' => 430,
'img_height' => 240,
'grid_num' => 3
)
);
foreach ($settings as $setting) {
if (array_search($count_block, $setting['indexes']) !== false) {
$img_width = $setting['img_width'];
$img_height = $setting['img_height'];
$grid_num = $setting['grid_num'];
break;
}
}