Битрикс набор функций ч.2

Ресайз картинок

$path = CFile::GetPath($arFields['UF_FILE']);
$arFileArr = CFile::MakeFileArray($path);
 $img_new = CAllFile::ResizeImage($arFileArr, array( "width" => 100, "height" => 100 ), BX_RESIZE_IMAGE_EXACT, false);
   $fileId = CFile::SaveFile($arFileArr,  '/new_imgs/' );
 $new_arr = CFile::MakeFileArray($fileId);

Файлы в поле со свойством Множественное

$file1 = $_FILES['fileselect'];
$files = [];
if(count($file1['name']) > 0){
	foreach ($file1['error'] as $key => $err) {
		if($err ==  UPLOAD_ERR_OK){
			$name = basename($file1['name'][$key]);
			$path = $_SERVER["DOCUMENT_ROOT"].'/upload/my_files/'.$name;
			$res2 = move_uploaded_file($file1['tmp_name'][$key], $path);
			if($res2 == true)
				$files[] = cfile::makefilearray($path);
		}

	}
}

JSON в тег

<div class="" data-gabarites-sum='<?=json_encode($arResult['GABARITES_SUM'], false); ?>'>

Куки

// должен быть подключен хедер, иначе не запишеться
$APPLICATION->set_cookie("user_profile_open", 'reg,personal,work,admin,user_properties', time()+60*60*24*30*12*2, "/");

$arResult["COOKIE_PREFIX"] = COption::GetOptionString("main", "cookie_name", "BITRIX_SM");
if (strlen($arResult["COOKIE_PREFIX"]) <= 0) 
	$arResult["COOKIE_PREFIX"] = "BX";
var_dump($_COOKIE[$arResult["COOKIE_PREFIX"]."_user_profile_open"]);

Количество записей

CDBResult::SelectedRowsCount()

Купоны и скидки

\Bitrix\Main\Loader::includeModule('sale');

\Bitrix\Sale\DiscountCouponsManager::clear(true);
\Bitrix\Sale\DiscountCouponsManager::clearApply(true);

$sCoupon = $_REQUEST['COUPON'];
\Bitrix\Sale\DiscountCouponsManager::add($sCoupon);
$oBasket = \Bitrix\Sale\Basket::loadItemsForFUser(
     \Bitrix\Sale\Fuser::getId(),
     \Bitrix\Main\Context::getCurrent()->getSite()
);
$oDiscounts = \Bitrix\Sale\Discount::loadByBasket($oBasket);
$oBasket->refreshData([ 'PRICE' ,  'COUPONS']);
$oDiscounts->calculate();
$result = $oDiscounts->getApplyResult();
$oBasket->save();

Обновление basket.basket.line

BX.onCustomEvent('OnBasketChange');

Кеширование

$obCache = new CPHPCache();
$cacheLifetime = 86400*7; 
$cacheID = 'AllItemsIDs'; 
$cachePath = '/'.$cacheID;

// удалить кеш
// $obCache->CleanDir($cachePath);

if( $obCache->InitCache($cacheLifetime, $cacheID, $cachePath) )
{
   $vars = $obCache->GetVars();
   extract($vars);
   // или же 
   $arAllItemsIDs = $vars['arAllItemsIDs'];
}
elseif( $obCache->StartDataCache()  )
{
   $rs = CIBlockElement::GetList(array(), array(), false, false, array('ID'));
   while( $ar = $rs->Fetch() )
      $arAllItemsIDs[] = $ar['ID'];
   $obCache->EndDataCache(array('arAllItemsIDs' => $arAllItemsIDs));
}

print_r(count($arAllItemsIDs));

Ядро

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");

Передать переменные из result_modifier.php в component_epilog.php

$this->__component->arResultCacheKeys = array_merge($this->__component->arResultCacheKeys, array('PROPERTIES') );
// или так 
$arResult['colors'] = $colors;
$this->__component->arResultCacheKeys = array_merge($this->__component->arResultCacheKeys, array('colors') );

Динамическая область в композитном режиме (отмена кеша)

https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=39&TYPE=Y

$frame = new \Bitrix\Main\Page\FrameBuffered("my_dynamic"); // или $this->createFrame() в шаблоне
$frame->begin();
  // Содержание динамической области
$frame->beginStub();
  // Заглушка
$frame->end();

или полная отмена

\Bitrix\Main\Data\StaticHtmlCache::getInstance()->markNonCacheable();

Удалить композитный кеш

$staticHtmlCache = \Bitrix\Main\Data\StaticHtmlCache::getInstance();
$staticHtmlCache->deleteAll();

Встроенная функция MobileDetect

$isMobile=\Bitrix\Main\Loader::includeModule('conversion') && ($md=new \Bitrix\Conversion\Internals\MobileDetect) && $md->isMobile();

Все поля пользователя

$res1 = CUser::GetList($by = 'name', $order = 'desc', ['ID' => $USER->GetID()], ['SELECT' => array('UF_*')]);
$user_fields = $res1->getnext();

Дата на русском

<?echo FormatDate("j F Y", MakeTimeStamp($element[0]['ACTIVE_FROM']));?>

Сессии

// php
bitrix_sessid()
// js
BX.bitrix_sessid()

Урл

GetPagePath()

Leave a comment

Your email address will not be published.


*