$eventManager = Main\EventManager::getInstance();
$eventManager->addEventHandler(
"sender",
"\Bitrix\Sender\ContactTable::onAfterAdd",
['myEvents','onBeforeAddHandler']
);
И где расположить сам код агента в структуре модуля
BirthdayEventsTable::getList(array(
'select' => array('CLIENT_ID', 'MAX_ID'),
'group' => array('CLIENT_ID'),
'runtime' => array(
new Entity\ExpressionField('MAX_ID', 'max(ID)')
)
));
CIBlockSectionPropertyLink::Add($SECTION_ID, $PROPERTY_ID, $arLink = array())
CIBlockSectionPropertyLink::Delete($SECTION_ID, $PROPERTY_ID)
CIBlockSectionPropertyLink::DeleteByIBlock($IBLOCK_ID)
CIBlockSectionPropertyLink::DeleteByProperty($PROPERTY_ID)
CIBlockSectionPropertyLink::DeleteBySection($SECTION_ID)
CIBlockSectionPropertyLink::GetArray($IBLOCK_ID, $SECTION_ID = 0, $bNewSection = false)
$el = new CIBlockElement;
$fields = Array(
"NAME" => "1.3.1 Однопутная железная дорога"
);
$skuId = 8140;//ID торгового предложения
$res = $el->Update($skuId, $fields );
\Bitrix\Main\Service\GeoIp\Manager::getDataResult
является оберткой над обработчиками геолокации, которые расположены тут Настройки > Настройки продукта >Геолокация\Bitrix\Main\Service\GeoIp\Result
, иначе идет запрос через следующий обработчик.\Bitrix\Main\Service\GeoIp\SypexGeo
, который расположен тут /bitrix/modules/main/lib/service/geoip/sypexgeo.php$ob = new \Bitrix\Main\Service\GeoIp\SypexGeo();
$res = $ob->getDataResult("62.33.36.6");
print_r($res);
Bitrix\Main\Service\GeoIp\Result Object
(
[geoData:protected] => Bitrix\Main\Service\GeoIp\Data Object
(
[ip] => 62.33.36.6
[lang] => en
[countryName] => Russia
[regionName] => Tambovskaya Oblast'
[subRegionName] =>
[cityName] => Michurinsk
[countryCode] => RU
[regionCode] => RU-TAM
[zipCode] =>
[latitude] => 52.8978
[longitude] => 40.4907
[timezone] => Europe/Moscow
[asn] =>
[ispName] =>
[organizationName] =>
[handlerClass] =>
)
[isSuccess:protected] => 1
[errors:protected] => Bitrix\Main\ErrorCollection Object
(
[values:protected] => Array
(
)
)
[data:protected] => Array
(
)
)
/**
* @deprecated deprecated since catalog 17.5.9
* @see \Bitrix\Catalog\Product\Basket::add
*/
$oid = intval($_REQUEST["oid"]);
if ($oid > 0) {
foreach ($arResult['JS_OFFERS'] as $key => $jsOffer) {
if ($jsOffer["ID"] == $oid) {
$arResult['OFFERS_SELECTED'] = $key;
break;
}
}
}
$cities = \Bitrix\Sale\Location\LocationTable::getList([
"select" => ["*", 'NAME_RU' => 'RU_LAN.NAME'],
'runtime' => [
'RU_LAN' => [
'data_type' => \Bitrix\Sale\Location\Name\LocationTable::class,
'reference' => [
'=this.ID' => 'ref.LOCATION_ID',
'=ref.LANGUAGE_ID' => new \Bitrix\Main\DB\SqlExpression('?i', 'ru'),
],
['join_type' => 'LEFT']
],
]
])->fetchAll();
Внимание! При использовании этой технологии необходимо учитывать, что над результатами работы функций, обеспечивающих откладывание других функций, нельзя выполнять какие-либо действия.
Значение, возвращаемое отложенной функцией, не возвращается, а сразу выводится в месте вызова AddBufferContent, а всё, что выводится в отложенной функции, будет выведено до начала шаблона.
в компоненте новостей > в детальном шаблоне компонента устанавливаю
$APPLICATION->SetTitle("Заголовок 1"); //- задать заголовок страницы
$APPLICATION->SetPageProperty('title','Заголовок 2');// - тоже задать заголовок страницы (но эта функция имеет приоритет над первой)
<?$APPLICATION->ShowTitle()?> - показ заголовка страницы // покажет заголовок 1
<?$APPLICATION->ShowTitle(false)?> - показ заголовка страницы, заданного через SetTitle // покажет заголовок 2