var popup = BX.PopupWindowManager.create("sender_subscribe_component", null, {
autoHide: true,
offsetLeft: 0,
offsetTop: 0,
overlay: true,
closeByEsc: true,
events: {
onAfterPopupShow: function () {
popup.adjustPosition();
popup.resizeOverlay();
}
}
});
popup.show();
<?php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleAdminOrderList',
'OnSaleAdminOrderListHandler'
);
function OnSaleAdminOrderListHandler(\Bitrix\Main\Event $event)
{
$getListParams = $event->getParameters();
$reailManagerGroupId = 1; //ID группы менеджеров розницы
$wholesaleManagerGroupId = 2; //ID группы менеджеров оптовиков
$optUserGroup = 3; //ID группы оптовых покупателей
$reatilUserGroup = 4; //ID группы розничных покупателей
global $USER;
$userGroups = \CUser::GetUserGroup($USER);
if (in_array($reailManagerGroupId, $userGroups)) {
$getListParams["filter"]["USER_GROUP.GROUP_ID"] = $reatilUserGroup;
} else if(in_array($wholesaleManagerGroupId, $userGroups)) {
$getListParams["filter"]["USER_GROUP.GROUP_ID"] = $optUserGroup;
}
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $getListParams);
return $result;
}
$iblockId = 1;//id инфоблока
$inputValues = [44, 45, 46];//Ваши входные данные
$enumIds = array_column(\Bitrix\Iblock\PropertyEnumerationTable::getList([
"select" => ["ID"],
"filter" => [
"PROPERTY.CODE" => "mylist",
"PROPERTY.IBLOCK_ID" => $iblockId,
"VALUE" => $inputValues
],
"cache" => [
"ttl" => 86400
]
]->fetchAll()), "ID");
Пробую прикрепить файл таким образом в методе CEvent::Send, но письмо приходит без файла
в чем ошибка?
Как мне получить TRADING_PLATFORM_ID ?
$tradeBindingCollection = $order->getTradeBindingCollection();
/** @var Bitrix\Sale\TradeBindingEntity $item */
foreach ($tradeBindingCollection as $item) {
$tpId = $item->getField('TRADING_PLATFORM_ID');
}
Как вообще читать такие объекты?
$bxEventManager = \Bitrix\Main\EventManager::getInstance();
$bxEventManager->addEventHandler(
'sale',
'onSalePaySystemRestrictionsClassNamesBuildList',
array(
\Gricuk\Sale\Payment\Restrictions\ByMeasure::class,
"onSalePaySystemRestrictionsClassNamesBuildList"
)
);
<?php
namespace Gricuk\Sale\Payment\Restrictions;
use Bitrix\Catalog\MeasureTable;
use Bitrix\Sale\Internals\Entity;
use Bitrix\Sale\Payment;
/** Ограничение по единицам измерения
* Class ByMeasure
* @package Gricuk\Sale\Payment\Restrictions
*/
class ByMeasure extends \Bitrix\Sale\Services\Base\Restriction
{
public static function onSalePaySystemRestrictionsClassNamesBuildList()
{
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
array(
self::class => '/local/php_interface/lib/Gricuk/Sale/Payment/Restrictions/ByMeasure.php',
)
);
}
public static function getClassTitle()
{
return 'По единицам измерения товаров в корзине';
}
public static function getClassDescription()
{
return 'Оплата будет НЕ доступна для указанных единиц измерения';
}
/** Выполняет проверку на наличие в массиве $measures единиц измерения, указанных в настройках ограничения
* @param $userId
* @param array $restrictionParams
* @param int $serviceId
* @return bool - true нет ограничения, единиц измерения из настроек нет у товаров в корзине.
* false - ограничение сработало, в корзине есть товары с указанными единицами измерения
*/
public static function check($measures, array $restrictionParams, $serviceId = 0)
{
if (empty($restrictionParams["MEASURES"]) || empty($measures)) {
return true;
}
if (count(array_intersect($measures, $restrictionParams["MEASURES"])) > 0) {
return false;
} else {
return true;
}
}
/**Преобразует $entity в то что будет передано в первый параметр метода self::check
* @param Entity $paysystem
* @return mixed|string|null
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\NotImplementedException
*/
protected static function extractParams(Entity $entity)
{
$measures = [];
if ($entity instanceof Payment) {
$order = $entity->getOrder();
if (!$order) {
return $measures;
}
$products = [];
/** @var \Bitrix\Sale\BasketItem $basketItem */
foreach ($order->getBasket() as $basketItem) {
$products[] = $basketItem->getProductId();
}
if (!empty($products)) {
$measures = array_column(\Bitrix\Catalog\ProductTable::getList([
"select" => ["MEASURE"],
"filter" => [
"ID" => $products
]
])->fetchAll(), "MEASURE");
}
}
return array_unique($measures);
}
/** Возвращает массив параметров, описывающий ограничение
* @param int $entityId
* @return array
*/
public static function getParamsStructure($entityId = 0)
{
$result = array(
"MEASURES" => array(
"TYPE" => "ENUM",
'MULTIPLE' => 'Y',
"LABEL" => "Единицы измерения",
"OPTIONS" => self::getMeasures()
)
);
return $result;
}
/**Возвращает массив единиц измерения
* @return array|mixed
* @throws \Bitrix\Main\ArgumentException
* @throws \Bitrix\Main\ObjectPropertyException
* @throws \Bitrix\Main\SystemException
*/
public static function getMeasures()
{
static $result = null;
if ($result !== null)
return $result;
$result = [];
$dbResultList = MeasureTable::getList(array(
'select' => array("ID", "MEASURE_TITLE"),
'order' => array("ID" => "ASC")
));
while ($measure = $dbResultList->fetch()) {
$result[$measure["ID"]] = $measure["MEASURE_TITLE"];
}
return $result;
}
}
$frame = new \Bitrix\Main\Page\FrameBuffered("my_dynamic");
$frame->begin();
// Содержание динамической области
$frame->beginStub();
// Заглушка
$frame->end();
$(document).on('click', '.header__link.header__link--auth', callback);
$bxEventManager = \Bitrix\Main\EventManager::getInstance();
$bxEventManager->addEventHandler(
"sale",
"OnSaleOrderBeforeSaved",
array(
Gricuk\Sale\Order::class,
"changeStatusOnOrderCreate"
)
);
$event->addResult
namespace Gricuk\Sale;
class Order
{
public static function changeStatusOnOrderCreate(\Bitrix\Main\Event $event)
{
/** @var \Bitrix\Sale\Order $order */
$order = $event->getParameter("ENTITY");
$status = $order->getField("STATUS_ID");
if ($status == "N") {
/** @var $paymentCollection \Bitrix\Sale\PaymentCollection */
$paymentCollection = $order->getPaymentCollection();
foreach ($paymentCollection as $payment) {
/** @var $payment \Bitrix\Sale\Payment */
/** @var $paySystem \Bitrix\Sale\PaySystem\Service */
$paySystem = $payment->getPaySystem();
if (!is_null($paySystem) && !$paySystem->isCash()) {
$order->setField("STATUS_ID", "NA");
$event->addResult(
new Main\EventResult(
Main\EventResult::SUCCESS, $order
)
);
break;
}
}
}
}
}
$rsItems = CIBlockElement::GetList(array(),$arFilter, false, false, ["*", "PROPERTY_CASH", "PROPERTY_ATT_PRICE"]);
<?
<?
$rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => "27", 'ID' => $arResult["SECTION"]["ID"]), true, Array("UF_HITS"));
while ($arResult = $rsResult -> GetNext())
{
if (!empty($arResult["UF_HITS"]))
{
$iter = $arResult["UF_HITS"];
}
}
if (!empty($iter))
{
$arFilter = array('IBLOCK_ID' => 27,'ID' => $iter);
$rsItems = CIBlockElement::GetList(array(),$arFilter);
while ($arItem = $rsItems->GetNext())
{
$resizer = $arItem['PREVIEW_PICTURE'];
$file = CFile::ResizeImageGet($resizer, array('width'=>180, 'height'=>290), BX_RESIZE_IMAGE_PROPORTIONAL , true);
$img = $file['src'];
echo
'<div class="hits-smallcard">
<img src="'.$img.'" />
<p><a href="'.$arItem["DETAIL_PAGE_URL"].'">'.$arItem["NAME"].'</a></p>
<p><a href="#modal1" class="popup-content">Заказать</a></p>
<p><a href="'.$arItem["DETAIL_PAGE_URL"].'">Подробнее</a></p>
<p>'.$arItem["CASH"].'</p> //не выводит, число
<p>'.$arItem["ATT_PRICE"].'</p> //не выводит, строка
</div>';
}
}
?>