• Как в sale.order.ajax после выбора "Тип плательщика", развернуть блок "Покупатель"?

    @OceanOfWisdom
    sale.order.ajax: раскрыть все блоки.

    .default шаблон sale.order.ajax.

    1. Активируем редактирование блоков "Регион" и "Пользователь":
    Комментируем строчки с 1694 по 1698
    /*if (this.activeSectionId !== this.regionBlockNode.id)
    	this.editFadeRegionContent(this.regionBlockNode.querySelector('.bx-soa-section-content'));
    
    if (this.activeSectionId != this.propsBlockNode.id)
    	this.editFadePropsContent(this.propsBlockNode.querySelector('.bx-soa-section-content'));*/


    2. Убираем кнопки "Назад" и "Далее":
    Комментируем строчки с 2224 по 2234
    /*node.appendChild(
    	BX.create('DIV', {
    		props: {className: 'row bx-soa-more'},
    		children: [
    			BX.create('DIV', {
    				props: {className: 'bx-soa-more-btn col-xs-12'},
    				children: buttons
    			})
    		]
    	})
    );*/


    3. Раскрываем все блоки:
    Меняем строчку 2461 с
    var active = section.id == this.activeSectionId

    На строчку
    var active = true,

    4. Убираем действия при клике на заголовки:
    Комментируем строчки с 2465 по 2478
    /*BX.unbindAll(titleNode);
    if (this.result.SHOW_AUTH)
    {
    	BX.bind(titleNode, 'click', BX.delegate(function(){
    		this.animateScrollTo(this.authBlockNode);
    		this.addAnimationEffect(this.authBlockNode, 'bx-step-good');
    	}, this));
    }
    else
    {
    	BX.bind(titleNode, 'click', BX.proxy(this.showByClick, this));
    	editButton = titleNode.querySelector('.bx-soa-editstep');
    	editButton && BX.bind(editButton, 'click', BX.proxy(this.showByClick, this));
    }*/


    5. Убираем ссылки "Изменить":
    Добавляем в конец функции editOrder на строке 2404 следующий код
    var editSteps = this.orderBlockNode.querySelectorAll('.bx-soa-editstep'), i;
    for (i in editSteps) {
    	if (editSteps.hasOwnProperty(i)) {
    		BX.remove(editSteps[i]);
    		}
    	}
    Ответ написан
    1 комментарий
  • Отписка от рассылки Bitrix?

    gromdron
    @gromdron
    Работаю с Bitrix24
    На основе ответа от битрикса, а так же темы на форуме битрикса, небольшой фрагмент кода для отписки:

    use \Bitrix\Main\Loader;
    use \Bitrix\Sender;
    
    /**
     * @var string Email пользователя
     */
    $email = 'test@efusion.ru';
    
    /**
     * @var string Список идентификаторов рассылок для отписки 
     */
    $unSubscribeList = [
        3
    ];
    
    try
    {
        if ( !Loader::IncludeModule('sender') )
        {
            throw new \Exception("Sender module not installed");
        }
    
        if ( empty($unSubscribeList) )
        {
            throw new \Exception("Empty unSubscribeList param");
        }
    
        $contactId = Sender\ContactTable::addIfNotExist([
            'EMAIL' => $email
        ]);
    
        if ( !$contactId )
        {
            throw new \Exception("Contact by email not found and has error when creating");
        }
    
        $contact = new Sender\Entity\Contact($contactId);
    
        $data = $contact->getData();
    
        foreach ($data['SUB_LIST'] as $subscriptionId)
        {
            if ( in_array($subscriptionId, $unSubscribeList) )
            {
                $contact->unsubscribe($subscriptionId);
            }
        }
    
    }
    catch( \Exception $e )
    {
        var_dump( $e->getMesage() );
    }
    Ответ написан
    Комментировать