Задать вопрос
  • Как скрыть обёртку компонента bitrix со всем содержимым?

    Единственный правильный вариант - переносить обертку в шаблон компонента. Все остальное - костыли. Content before component и Content after component - должны подключаться в шаблоне, в зависимости от параметров компонента.
    Ответ написан
    Комментировать
  • Почему Copilot не доступен в VSCode?

    Suntechnic
    @Suntechnic Автор вопроса
    Доступность Copilot проверяется по аккаунту GitHub и IP на котором запщен VSCode. НО! Необходим учитывать что проверяется IP на котором запущен VSCode Server.
    Так если вы работает с локальными файлами, то для определения локации будет использоваться IP выхода вашей локальной машины.
    Если же вы работаете с удаленной машиной и VSCode Server запущен на ней, а на локальной машине работает только GUI, то для определения локации будет использоваться IP удаленной машины. Такие вот дела.
    Ответ написан
    Комментировать
  • Как организовать скидку на второй товар 20%, на третий 30 и т.д.?

    Никак. Невозможно организовать штатными средствами скидку которая будет "сравнивать" товары.

    Вот что можно сделать (точнее как делаю я):
    1 Вам нужен скрипт-разметчик товаров в корзине.
    Повесьте на события OnBasketUpdate, OnBasketDelete и OnBasketAdd функцию которая будет получать доступ к текущий корзине, пробегать по ней и добавлять пунктам корзины свойство-маркер с каким-либо условным значением. В самом простом случае добавлять самому дешевому товара свойство с кодом CHEAP и значением 1. Товару который второй по "дешевости" с кодом CHEAP и значением 2 и так далее.

    2 создайте правило корзины которое добавляет скидку основываясь но свойствах товара в корзине, типа "Если свойство товара в корзине с кодом CHEAP равно 1" и так далее.

    Вот с какими проблемами вы в частности при этом столкнетесь - что делать, если в корзине 2 товара. Один стоимостью 1000 рублей, и в количестве 1 штука, а второй стоимостью 500 рублей, в количестве 2 штуки. Вам тут надо будет дать скидку на второй товар, но только на одну штуку. Для этого придется использовать деление корзины.

    Вот этот код вам возможно поможет: https://pastebin.com/Kjbi9zs6 - он не очень хорош, но все же лучше чем ничего.
    Ответ написан
    1 комментарий
  • Существует ли API для Яндекс Документов?

    Suntechnic
    @Suntechnic Автор вопроса
    Сам спросил - сам отвечаю (наконце-то ответ от поддержки):

    В сервисе Документы нет возможности использовать таблицы с помощью API.

    Постараемся учесть ваше пожелание при работе над будущими обновлениями


    Передали пожелание разработчикам.

    Если у вас появятся новые вопросы, пожалуйста, обращайтесь.
    Ответ написан
    2 комментария
  • Как использовать в D7 фильтр с регулярными выражениями?

    Никак. Да и не надо - на SQL это было бы безумно медленно. Выберите по фильтру %#23#, а дальше уже в цикле PHP проверьте регуляркой. Не бойтесь циклов в рантайме PHP. Не пытайтесь переложить все на плечи базы
    Ответ написан
    2 комментария
  • После переноса $APPLICATION->IncludeFile в комплексный компонент редактор не видит включаемую область в чем проблема?

    Потому что так работает режим редактирования - при наведении на комплексный компонент, все компоненты которые он подключает выводятся в одной ленте.
    Комплексные компоненты - зло. Нет причин использовать их.
    Ну можно еще объединить включаемые области. Их кстати тоже нет причин использовать если вы хи не переиспользуете.
    Ответ написан
    Комментировать
  • Добавление товара в корзину пользователя по условию, как сделать правильно?

    Вешайте обработчик на следующие события модуля sale:
    OnBasketUpdate
    OnBasketDelete
    OnBasketAdd

    Т.е. на каждое изменение состава корзины.
    Так как сам обработчик тоже будет менять состав, не забудьте добавить флаг, чтобы не уйти в рекурсию. Что-то вроде:
    if (self::$Bypass) return;
            self::$Bypass = true;
    
            // здесь ваш код
    
            self::$Bypass = false;


    Далее вам остается получить корзину, посчитать вес товаров без учета вашего, рассчитать нужное количество вашего товара и изменить его, добавить или убрать.

    Корзину бы я получал на месте, не оглядываясь на входящие параметры:
    \Bitrix\Main\Loader::includeModule('sale');
            $basket = \Bitrix\Sale\Basket::loadItemsForFUser(
                    \Bitrix\Sale\Fuser::getId(),
                    \Bitrix\Main\Context::getCurrent()->getSite()
                );


    Входящие параметры сделайте так:
    public static function basketOperator ($_=0,$__=0,$___=0)
    Ответ написан
    Комментировать
  • Почему выдает пустой результат sql запроса?

    Сделайте принт переменной $sql и, я думаю, всё будет понятно. Ну а если нет - покажите что там выводит.
    Сейчас часть вопроса спрятана у вас за именем $sqlValue

    Ну а еще лучше - используйте API.
    Ответ написан
    Комментировать
  • Как сделать, чтобы во время добавления товара в корзину -у него менялась цена в битрикс 1с?

    Видимо вы хотите изменить цену добавляемого в корзину item.
    При этом рассуждаете так - цена item'a корзины предоставляется провайдером товара, следовательно если я заменю провайдер на свой, и буду менять в нем цену, то товар попадет корзину по нужной мне цене.
    С виду логично.

    Посмотрим что происходит когда реально item добавляется в корзину:
    Битрикс создает item, вычисляя его цену провайдером по умолчанию, далее перед добавлением item'a в корзину, битрикс вызывает ваш обработчик, который заменяет класс провайдера, после чего добавляет товар в корзину )))

    Какая у него цена? Ну логично же что она осталась той же что была на этапе создания item, то что вы потом поменяли класс провайдера, никак на цене уже созданного itema не скжажетися вплоть до нового пересчет корзины.

    Пересчитайте принудительно после замены провайдера. Кажется есть или метод специальный, или save для item надо вызвать.

    И да - цена тут меняется НЕ У ТОВАРА, а у пункта корзины.
    Ответ написан
    6 комментариев
  • Не добавляет в меню битрикс произвольную ссылку?

    Пример "придуманной" ссылки с которой все ок, покажите?
    Если две добавить? Эту и придуманную?

    Смотрите шаблон компонента. Думаю в коде шаблона ответ и будет.
    Ответ написан
    Комментировать
  • Как настроить поиск по заголовкам раздела?

    Никак.
    По большому счету вкладка SEO никакого отношения к данным сущности неимеет.

    Реализовать можно добавив обработчик события на событие BeforeIndex, модуля search, который будет добавлять в индекс нужные вам данные.
    Ответ написан
    Комментировать
  • Как в битриксе можно завершить работу агента?

    В нормальной ситуации, если это необходимо, агент должен иметь встроенный механизм для прерывания.
    Если он его не имеет, то и прерывать его не надо.
    Ответ написан
    Комментировать
  • Как в Битрикс реализовать единую точку входа для запросов с фронтенда?

    .runComponentAction и так шлет все по сути на одну точку входа - вам нужно лишь создать соотвествующий компонент

    .runAction можно использовать для модуля и создавать свои контроллеры внутри модуля.

    НУ и третий вариант вам уже предложили - используя новый роутинг настроить точку входа, например:
    $routes->post('/api/feedback', [\App\Controller::class,'sendFeedback']);


    Далее вы просто создаете контролер скажем local/php_interface/lib/App/Controller.php
    Остается сделать автозагрузку. Я просто описываю для композера:
    {
        "name": "mav/myproject",
        "type": "project",
        "autoload": {
            "psr-4": {
                    "App\\": "lib/App",
                }
        },
        "require-dev": {
            "kint-php/kint": "dev-master"
        },
        "require": {
            "mav/slovo": "^0.2.3"
        }
    }


    Всё.
    Ответ написан
    Комментировать
  • Как через ssh выгрузить проект локально и аплоадить изменения?

    Из всех редакторов и IDE, нормально работает по сети, без удаленного сервера, только Komodo. И sftp и ftp. Для VS Code есть расширение ftp-simple, но очень неудобное, уже не помню в чем. Все остальные редакторы либо имеют такие же глючные или неработающие расширения, или вообще костыли типа того что вы описали в web storm, когда проект выкачивается локально. В этом случае лучше уж подключить удаленную папку проекта по сети, через тот же sshfs, хотя это медленно будет. Или через NFS - это будет поживее.

    пробовал выгрузить через плагин ssh fs - нет возможности аплдоадить.

    Не знаю чего у вас за плагин такой, но при подключении по sshfs ничего не надо ни выгружать ни аплойдить - вы просто монтируете удаленную папку.
    Ответ написан
    Комментировать
  • Как в vscode сделать заметки в виде боковой панели?

    Перебрал несколько расширений, в итоге сделал папку howto локальную с md файлами и добавляю ее в проекты просто, как вторую папку:
    Ответ написан
  • Как настроить навигационную цепочку?

    Не важно как у вас строятся URL. И то что последний раздел тоже кликабельный значения не имеет.
    Подозреваю вы используете штатные комплексные компоненты в SEF режиме - т.е. сделали всё чтобы потерять контроль над роутингом.
    Самое просто решение думаю - это выключить в компонентах добавление айтемов в навигационную цепочку и управлять ей вручную в component_epilog.php: $APPLICATION->AddChainItem('Имя', 'Ссылка', true);
    Ответ написан
    Комментировать
  • Есть ли на PHP сокращенный перебор массива?

    Еще один вариант, ближе к стилю js:
    $ar = array_map(function ($Val) {
    				// ваш код
    				return $NewVal;
    			}, [1,2,3]);
    Ответ написан
    2 комментария
  • Как построить взаимодействие админки с данными проекта?

    Для начала забыть про админку.
    Проверять права пользователей на уровне модели данных.
    Пилить нужные пользователям интерфейсы.
    Профит.
    Ответ написан
  • Возможно ли по "одному клику" включить/выключить проксирование для всей системы?

    VPN это VPN и просто указать порт, адрес и доступы для его настройки не достаточно. Однако и прокси это не вот эта вот запись, а сервер работающий на какой-то машине. А запись параметров подключения это всего лишь запись параметров подключения и все.
    Ну а раз у вас уже есть машина на которой вы зпустили прокси, почему бы на ней же не запустить и VPN? Тот же OpenVPN настраивается с помощью скриптов настройки, которых полно в сети, уже проще любого прокси.
    Ответ написан
    Комментировать