BX.ajax.runComponentAction('componentName', "actionName", {
mode: 'ajax',
data: new FormData(form)
})
use \Bitrix\Main\Application;
$request = Application::getInstance()->getContext()->getRequest();
$files = $request->getFileList()->toArray();
bcdiv('12.345', 1, 2); // 12.34
public function configureActions()
{
return [
'addBook' => [
'prefilters' => [
],
'-prefilters' => [
\Bitrix\Main\Engine\ActionFilter\Authentication::class
],
]
];
}
addBook = ...function addBookAction()
Но тут надо понимать, что всё это работает только при правильном применении ООП. А точнее просто при применении ООП. Потому что 98% "ООП" кода, который пишется на РНР - это голимая процедурщина, даже если она обёрнута в классы и методы. Если у тебя метод класса представляет из себя стену кода, которую ты тупо перенёс из файла, инклюдившегося в любимое похапешное спагетти - то это не ООП. Это та же процедурщина, вид сбоку. И смысл использования dependency injection ты с ним не почуствуешь. Будешь конечно применять, но в качестве карго культа - потому что тебе это на тостере написали.
А вот когда твой код начнет становиться действительно объектным - тогда стразу станет понятнее.
Array(
'Test menu',
"/test",
Array(),
Array(
'counter_num' => 7,
),
""
),
Array(
'Test menu',
"/test",
Array(),
Array(
"counter_id" => "test-counter-menu",
'counter_num' => 7,
),
""
),
$items[] = $newItem;
if ( isset($item["PARAMS"]["counter_id"]) )
{
$newItem['COUNTER_ID'] = $item["PARAMS"]["counter_id"];
}
\Bitrix\Main\Loader::includeModule('sale');
$historyEntityType = 'ORDER'; //В данном случае для заказа
$historyType = 'ORDER_COMMENTED'; //Нужный тип можно посмотеть в классе \CSaleOrderChangeFormat в $operationTypes
$order = \Bitrix\Sale\Order::load($orderId);
\Bitrix\Sale\OrderHistory::addAction(
$historyEntityType,
$order->getId(),
$historyType,
$order->getId(),
$order,
['COMMENTS' => 'Новый комментарий']
);
$order->save();
CModule::IncludeModule('crm');
$rs = CCrmFieldMulti::GetList(
array(),
array(
'ENTITY_ID' => 'LEAD', // выбираем только email лида
"VALUE" => "test@mail.ru",
//"@ELEMENT_ID" => array(1,2), // ID выбираемых лидов
//"TYPE_ID" => "EMAIL",
'COMPLEX_ID' => 'EMAIL_WORK' // тип email: "Рабочий"
)
);
while($ar = $rs->Fetch())
{
echo '<pre>';
print_r($ar);
echo '</pre>';
}
CModule::IncludeModule("socialnetwork");
$arFields = array(
"TITLE" => "Заголовок записи",
"DETAIL_TEXT" => "Тело сообщения",
"BLOG_ID" => 1, //ID отправителя
"AUTHOR_ID" => 1, //ID блога, в котором будет запись
"DATE_PUBLISH" => '11.02.2014 09:08', // дада
"PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, // Читаем в API
"ENABLE_TRACKBACK" => 'N',
"ENABLE_COMMENTS" => 'Y'
);
$arEvent = array (
'EVENT_ID' => 'blog_post',
'=LOG_DATE' => 'now()',
'TITLE_TEMPLATE' => '#USER_NAME# добавил(а) сообщение "#TITLE#" в блог',
'TITLE' => "Заголовок записи",
'MESSAGE' => "Текст записи",
'TEXT_MESSAGE' => "Текст записи",
'MODULE_ID' => 'blog',
'CALLBACK_FUNC' => false,
'SOURCE_ID' => $ID,
'ENABLE_COMMENTS' => 'Y',
'RATING_TYPE_ID' => 'BLOG_POST',
'RATING_ENTITY_ID' => $newID,
'ENTITY_TYPE' => 'U',
'ENTITY_ID' => '1',
'USER_ID' => '1',
'URL' => '/company/personal/user/1/blog/'.$ID.'/',
);
// Выдает права
CSocNetLogRights::Add ( $eventID, array ("G3") );
// Отправляет уведомление о новом сообщении
CSocNetLog::SendEvent ( $eventID, 'SONET_NEW_EVENT' );