$elementCode = $arResult['VARIABLES']['ELEMENT_CODE'];
$element = CIBLockElement::GetList([], ['IBLOCK_ID' => $arParams['IBLOCK_ID'], 'CODE' => $elementCode], false, false, ['DETAIL_PAGE_URL'])->GetNext();
if($element['DETAIL_PAGE_URL']) {
LocalRedirect($element['DETAIL_PAGE_URL']);
}
function getCountTransactionsByDate(string $datetime) {
}
use Bitrix\Main\Entity\ExpressionField;
//.....
'select' => [
new ExpressionField('FROM_NAME', 'COUNT(%s)', 'A.NAME'),
new ExpressionField('TO_NAME', 'COUNT(%s)', 'B.NAME'),
]
//.....
\Bitrix\Main\Application::getConnection()->startTracker();
$iterator = // getList_без_fetchAll
print_r($iterator->getTrackerQuery()->getSql());
new \Bitrix\Main\Entity\ExpressionField('COUNT', 'COUNT(*)'),
$datetime = ConvertTimeStamp(AddToTimeStamp(array('HH' => -6)), 'FULL');
\ConvertDateTime($datetime, 'YYYY-MM-DD HH:MI:SS');
$result = ElementTable::getList([
'select' => ['ID', 'NAME', 'SIMILAR_NAME' => 'SIMILAR.NAME'],
'filter' => ['IBLOCK_ID' => $iblockId, 'ID' => $elementIds],
'runtime' => [
new Reference(
'HIGHLOAD',
$referenceClass,
Join::on('this.ID', 'ref.'.$referenceFieldId)
),
new Reference(
'SIMILAR',
ElementTable::class,
Join::on('this.HIGHLOAD.UF_SIMILAR, 'ref.ID')
),
]
])->fetchAll();
use Bitrix\Main\ORM\Fields\Relations\Reference;
use Bitrix\Main\ORM\Query\Join;
use Bitrix\Iblock\ElementTable;
use Bitrix\Highloadblock\HighloadBlockTable;
\Bitrix\Main\Loader::includeModule('iblock');
\Bitrix\Main\Loader::includeModule('highloadblock');
// ИБ фрукты
$iblockId = 2; // укажи свой ИД инфоблока
$elementIds = [11, 12]; // укажи свои ИД фруктов
// Highload фрукты
$hlId = 2; // укажи свой ИД Highload-а
$hlBlock = HighloadBlockTable::getById($hlId)->fetch();
$referenceClass = HighloadBlockTable::compileEntity($hlBlock)->getDataClass();
$referenceFieldId = 'UF_CATALOG_ELEMENT'; // укажи код поля из своей первой колонки
$result = ElementTable::getList([
'select' => ['ID', 'NAME', 'HIGHLOAD_FIELD_' => 'HIGHLOAD.*'],
'filter' => ['IBLOCK_ID' => $iblockId, 'ID' => $elementIds],
'runtime' => [
new Reference(
'HIGHLOAD',
$referenceClass,
Join::on('this.ID', 'ref.'.$referenceFieldId)
)
]
])->fetchAll();
print_r($result);
"SEF_URL_TEMPLATES" => array(
"sections" => "",
"section" => "",
"element" => "#ELEMENT_CODE#/",
"compare" => "compare/",
"smart_filter" => "",
"smart_filter_custom" => "filter/#SMART_FILTER_PATH#/apply/",
)
"SEF_RULE" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["smart_filter_custom"],
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
include('sections.php');
$arTemplateParameters['SEF_URL_TEMPLATES_smart_filter_custom'] = array(
'PARENT' => 'SEF_MODE',
'NAME' => GetMessage('PARAMETER_SEF_URL_TEMPLATES_SMART_FILTER_CUSTOM'),
"DEFAULT" => "",
"VARIABLES" => array(),
);
как создать свои ajax запросы для существующих компонентов, что бы не залезать в папку bitrix и делать это в папке local (и возможно ли это)
componentPath: '<?=CUtil::JSEscape($componentPath)?>',
templatePath: '<?=CUtil::JSEscape($this->getFolder())?>',
что лучше использовать BX.ajax или $.ajax, есть ли между ними особая разница
использование ajax вне компонента/модуля, как это проворачивать, просто создавать файл php с методами и данными, которые мне нужно получить, или это делается как-то по особенному (хочу понять как делают профессионалы)
При добавлении в корзину товара, надо отлавливать эту отправку (скажем сделал) и обновлять число (количество) товаров на шапке сайта, что бы человек заранее видел сколько у него товаров
BX.addCustomEvent(window, 'OnBasketChange', this.closure('refreshCart', {}));
print_r($this);
какой тип объекта выдает, твой или CBitrixComponent ?