• Как ограничить отправку смс при регистрации пользователей?

    @anton99zel
    29а класс средней школы №7
    Как работает отправка СМС - сервер шлёт на смс-шлюз запрос. Значит, нужно, чтобы смс-шлюз принимал запросы только с ip адреса вашего сервера. Если смс-шлюз свой, то не вижу проблем, если не свой, то напишите провайдеру.
    массовый запрос на отправку смс на разные номера

    Устанавливать сессию, если большего одного запроса с одной сессии, то блокировать отправку с этой сессии.
    Если разные сессии, то ставить ограничения по ip на 5-60 минут. Не думаю, что с одного ip в течение часа кто то захочет воспользоваться вашим сервисом.
    К тому же я бы приделал ограничение по Гео - rosreestr.subnets.ru/?get=num&num=79154610100
    Второй момент - проводить смс регистрацию, после подтверждения email.
    Ну, и добавить третью версию капчи от гугл, для надежности.
    Ответ написан
  • Как сделать альтернативный ЧПУ умного фильтра?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Убираем filter и apply
    Строку в компоненте bitrix:catalog заменить на :
    "smart_filter" => "#SECTION_CODE_PATH#/#SMART_FILTER_PATH#/",

    В фильтре catalog.smart.filter меняем настройки на такие :
    <?
                    $res = CIBlockSection::GetByID($arCurSection['ID']);
                    if($ar_res = $res->GetNext())
                    $url = "/catalog/".$ar_res[CODE]."/#SMART_FILTER_PATH#/";
    		$APPLICATION->IncludeComponent("bitrix:catalog.smart.filter", "bootstrap_v4", array(
                    "CACHE_GROUPS" => "N",	// Учитывать права доступа
    		"CACHE_TIME" => "3600",	// Время кеширования (сек.)
    		"CACHE_TYPE" => "A",	// Тип кеширования
    		"COMPOSITE_FRAME_MODE" => "N",
    		"COMPOSITE_FRAME_TYPE" => "AUTO",
    		"CONVERT_CURRENCY" => "N",	// Показывать цены в одной валюте
    		"DISPLAY_ELEMENT_COUNT" => "N",	// Показывать количество
    		"FILTER_NAME" => "arrFilter",	// Имя выходящего массива для фильтрации
    		"FILTER_VIEW_MODE" => "vertical",
    		"HIDE_NOT_AVAILABLE" => "Y",	// Не отображать товары, которых нет на складах
    		"IBLOCK_ID" => $arParams["IBLOCK_ID"],	// Инфоблок
    		"IBLOCK_TYPE" => "catalog",	// Тип инфоблока
    		"PAGER_PARAMS_NAME" => "arrPager",	
    		"SAVE_IN_SESSION" => "N",	// Сохранять установки фильтра в сессии пользователя
    		"SECTION_CODE" => "",	// Код раздела
    		"SECTION_DESCRIPTION" => "-",	// Описание
    		"SECTION_ID" => $arCurSection['ID'],	// ID раздела инфоблока
    		"SECTION_TITLE" => "-",	// Заголовок
    		"SEF_MODE" => "Y",	// Включить поддержку ЧПУ
    		"TEMPLATE_THEME" => "blue",	// Цветовая тема
    		"XML_EXPORT" => "N",	// Включить поддержку Яндекс Островов
    		"COMPONENT_TEMPLATE" => "",
    		"POPUP_POSITION" => "left",
    		"SECTION_CODE_PATH" => "",	// Путь из символьных кодов раздела
    		"SEF_RULE" => $url,	// Правило для обработки
    		"SMART_FILTER_PATH" => $_REQUEST["SMART_FILTER_PATH"],	// Блок ЧПУ умного фильтра
    		"SHOW_ALL_WO_SECTION" => "Y",
    		"PRICE_CODE" => "",	// Тип цены
    		"PREFILTER_NAME" => "smartPreFilter",	// Допфильтрация элементов
    						),
    	         false);
    		 ?>

    В urlrewrite.php нужно добавить одно правило, оно не затрется в будущем, а общий вид будет примерно таким:
    <?php
    $arUrlRewrite=array (
      1 => 
      array (
        'CONDITION' => '#^/catalog/([a-z0-9_\\-\\/]+)/#',
        'RULE' => 'SMART_FILTER_PATH=$1&',
        'ID' => '',
        'PATH' => '/catalog/index.php',
        'SORT' => 100,
      ),
      2 => 
      array (
        'CONDITION' => '#^/catalog/\\??(.*)#',
        'RULE' => 'SMART_FILTER_PATH=$1&$2',
        'ID' => 'bitrix:catalog.smart.filter',
        'PATH' => '/catalog/index.php',
        'SORT' => 100,
      ),
      3 => 
      array (
        'CONDITION' => '#^/catalog/#',
        'RULE' => '',
        'ID' => 'bitrix:catalog',
        'PATH' => '/catalog/index.php',
        'SORT' => 100,
      )
    );

    Убираем IS и OR
    Чтобы убрать -is- нужно подменять значения в SMART_FILTER_PATH, а затем сделать 301 редирект с оригинального адреса на кастомный.
    Как вы будете делать подмену - я не знаю (циклами, массивами, и прочими "пэхэпэшными штучками"), но подмена должна быть выше, чем код фильтра. Нужно проверять вхождения, корректность подмен, добавить обработку ошибок, юзать 301 редирект, чтобы не плодить дубли, которых и так много и без доработки фильтра.
    Вот пример:

    $_REQUEST[SMART_FILTER_PATH] = str_replace("red/brown", "colors-is-brown-or-red/", $_REQUEST[SMART_FILTER_PATH]);


    В итоге вместо строки
    https://test.ru/catalog/pants/filter/color_ref-is-green/apply/

    мы получим строку:
    https://test.ru/catalog/pants/green/
    5f4fd8c4caad8356011565.jpeg
    5f4fd8cf127cb908819760.jpeg
    Ответ написан
  • Скидка на последний размер?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Аналогично как на вашей картинке, только выбрать свойство и сделать равным 1.
    Это самое свойство создайте у товара, записывайте в него общее кол-во ТП.
    Значение свойства можно изменять событиями, либо при обмене с 1с.
    Ответ написан
    1 комментарий
  • Почему не добавляется купон через CCatalogDiscountCoupon::Add?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    <?php
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
    CModule::IncludeModule("sale");
    CModule::IncludeModule("catalog");
    $COUPON = randString(5);
    
        $addDb = \Bitrix\Sale\Internals\DiscountCouponTable::add(array(
          'DISCOUNT_ID' => 3,
          'COUPON'      => $COUPON,
          'TYPE'        => \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONE_ORDER,
          'MAX_USE'     => 1,
          'USER_ID'     => 0,
          'DESCRIPTION' => ''
       ));
    echo $COUPON;
    ?>
    Ответ написан
  • Как мне настроить ЧПУ в компоненте bitrix.news?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    URL страницы информационного блока: /article/index.php
    URL страницы раздела:	пусто
    URL страницы детального просмотра:	/article/#ELEMENT_CODE#/

    Убеждаемся, что символьный код указан у элементов, иначе заменить на ID

    В настройках компонента:
    Управление адресами страниц: /article/
    Страница детального просмотра:	#ELEMENT_CODE#/
    Включить поддержку ЧПУ: Да
    Остальное пусто


    После сохранения в urlrewrite.php будет примерно так:
    13 => 
      array (
        'CONDITION' => '#^/article/#',
        'RULE' => '',
        'ID' => 'bitrix:news',
        'PATH' => '/article/index.php',
        'SORT' => 100,
      ),

    По просьбе автора топика перенесу сюда свой ответ из коммента:
    htaccess примерно таким должен быть, если Апач.
    Options -Indexes 
    ErrorDocument 404 /404.php
    
    
      php_flag session.use_trans_sid off
      #php_flag default_charset UTF-8
      #php_value display_errors 1
    
    
    <IfModule mod_php7.c>
      php_flag session.use_trans_sid off
      #php_flag default_charset UTF-8
      #php_value display_errors 1
    </IfModule>
    
    <IfModule mod_rewrite.c>
      Options +FollowSymLinks
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-l
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
      RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
      RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
    </IfModule>
    
    <IfModule mod_dir.c>
      DirectoryIndex index.php index.html
    </IfModule>
    
    <IfModule mod_expires.c>
      ExpiresActive on
      ExpiresByType image/jpeg "access plus 3 day"
      ExpiresByType image/gif "access plus 3 day"
      ExpiresByType image/png "access plus 3 day"
      ExpiresByType text/css "access plus 3 day"
      ExpiresByType application/javascript "access plus 3 day"  
    </IfModule>
    Ответ написан
  • Как организовать в Битрикс экспорт элементов в личном кабинете пользователя?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Предустановленная форма состоящая из getlista, в фильтре которой привязка к пользователю и разделы. Результат записываем как dom обьекты и сохраняем в xml.
    https://dev.1c-bitrix.ru/api_help/iblock/classes/c...
    И https://www.php.net/manual/ru/example.xmlwriter-si...


    Все модули

    Писанины часа на два для опытного битриксоида
    Ответ написан
    Комментировать
  • Из-за чего могут быть проблемы с сокетами на Битрикс?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    При проверке сайта на ошибки средствами Битрикс, сайт делает подключение сам к себе. Если сайт закрыт паролем или через админку в главном модуле, то проверка будет проходить с ошибками - сокеты.
    Ответ написан
    1 комментарий
  • Можно ли использовать bluetooth-гарнитуру как петличный микрофон?

    @anton99zel
    29а класс средней школы №7
    Слышал, что гарнитуры не подходят в качестве радиопетли. Но не понимаю почему. Может быть какие-то подходят.

    Потому, что не все телефоны умеют писать видео со звуком, источником которым является Блютуз!!!
    Rode SmartLav+

    Шикарно!
    сможет ли он вырезать ненужные куски из видео и наложить титры.

    До свидания!
    Ответ написан
  • Как удалить дубли со странным url в битрикс?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Ошибка в верстке, правьте html, где то знака или символа не хватает
    Ответ написан
    Комментировать
  • Как связать фильтр товаров и настройки умного фильтра (с ЧПУ и мета тегами) в Bitrix?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Возможно, что то что вы делаете это SEO умного фильтра, в разных проектах может быть реализован по разному.
    При этом новые свойства у вас могут не работать в качестве отбираемых фильтром.
    Начните с того, что покажите настройки свойств из настроек инфоблока и примеры значений оттуда же.
    Ответ написан
    Комментировать
  • Как принимать и совершать звонки с ПК через смартфон?

    @anton99zel
    29а класс средней школы №7
    Хм...вариантов так то масса
    1. Купить виртуальный номер (пользоваться им как на смарфтоне (через фирменное приложение или acrobits), так и на компьютере (ПО или WebRTC).
    Сделал скриншот - звоню прям из браузера
    spoiler
    5f352fe801375090208157.png

    2. Если у вас есть мобильный номер, то его можно подвязать к виртуальной атс (работает только с мегафоном по sip-протоколу) и пользоваться также как в п.1.
    Либо без использования виртуальной АТС - ставите ПО на комп PhonerLite или Bria Solo (X-Lite) и прописываете мегафоновские настройки sip (услуга мультифон).
    3. PS: При использовании sip телефонии можно и управление голосом прикрутить (на айфон команды siri, на андроиде наверняка тоже что то есть + телеграм (который на сервер шлет команды для набора номера (обратный звонок)).

    Если исхитрится и погрузиться в тему, то вообще ничего платить не придется (только из пакета минуты будут тратиться). Рекламировать не буду, думаю на скриншоте понятно - какой вам сайт нужно посетить.

    ЗЫ2:
    Блютуз гарнитура + таймвьюер для андроид, не?
    Ответ написан
    Комментировать
  • Как лучше продвинуть сайт?

    @anton99zel
    29а класс средней школы №7
    Как лучше продвинуть сайт?

    забыть про сайт и выкладывать свои сумки на маркетплейсах, потому что в 2020 году работает только вбухивание денег в рекламу на яндексе
    Ответ написан
    Комментировать
  • Как настроить умный фильтр bitrix?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    В настройках инфоблока перейдите в свойства Стиль и задайте значение кода на английском языке.
    Ответ написан
  • Пересчет цены при создании нового заказа?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    //название товара не пишем
    Bitrix\Main\Loader::includeModule("catalog");
    $fields = [
        'PRODUCT_ID' => $item[offer_id], // ID товара, обязательно
            'QUANTITY' => $item[quantity],
            'CURRENCY' => Bitrix\Currency\CurrencyManager::getBaseCurrency(),
            'LID' => Bitrix\Main\Context::getCurrent()->getSite(),
            'PRICE' => $item[price], //твоя кастомная цена
            'CUSTOM_PRICE' => 'Y',
    ];
    $r = Bitrix\Catalog\Product\Basket::addProduct($fields);
    if (!$r->isSuccess()) {
        var_dump($r->getErrorMessages());
    }

    Для изменения существующего заказа нужно:
    $order = \Bitrix\Sale\Order::load(38); //загрузим заказ
    .....//добавляем товары или производим другие действия
    $order->save(); //сохраняем заказ

    В вашем коде я не увидел, что для каждого товара вы устанавливаете новую цену
    Ответ написан
    Комментировать
  • Определении геолокации в bitrix spro?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Ваш вопрос не совсем понятен.
    В битриксе d7 и так есть возможность определять город на основе ip адреса.
    Но более широкие возможности доступны при использовании сервиса dadata, особенно при подключении доставок.
    Что касается «вбивать города в инфоблок» , вероятно имелось ввиду, что элемент с названием города, может содержать прочую информацию для использования на сайте, например телефон, адрес... Ведь где то нужно хранить эту информацию для каждого города.
    Ответ написан
    Комментировать
  • Как сделать озвучивание выделенного текста?

    @anton99zel
    29а класс средней школы №7
    Комментировать
  • Почему в стандартном решении малый бизнес (интернет магазин) не работает фильтр по цене?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Действительно, есть такой баг, только что проверил на демо.
    Но после обновлений, баг пропал.
    Пофильтруйте
    https://1029lab.bitrixlabs.ru/catalog/pants/
    Можно после обновления пересоздать индексы /bitrix/admin/iblock_reindex_admin.php?lang=ru
    Ответ написан
  • Как лучше реализовать обмен данными между ПК и смартфоном?

    @anton99zel
    29а класс средней школы №7
    Я Юзаю чат Телеграм.
    С любого устройства, даже консольно, доступно и не надо ставить тяжелых программ, типа яндекс диска или еще хуже облако от майкрософт...
    Ответ написан
    Комментировать
  • Что делать с джуниор программистом, который самоучка и не с этой планеты?

    @anton99zel
    29а класс средней школы №7
    Во первых:
    Нужно разделять личные качества и профессиональные!!
    (Какая разница, что он бедный или хулиганил....)
    Второе:
    Если профессиональные качества вас устраивают, то пусть человек работает и не мешайте ему.
    Если не устраивают, то ищите другого специалиста
    Третье:
    Срыв сроков это не только его вина или еще чья то. Часто так бывает, что это общая вина: заказчик меняет ТЗ, менеджмент обещает сроки, лишь бы ухватить заказ, технический директор не вникает в процесс.... В итоге всё вешается на джуна.
    И еще:
    Программист это творческая профессия. Это не оператором работать по 8 часов по некому алгоритму. Тут и думать надо и вникать и прорабатывать отдельные моменты. Нужно создавать условия для комфортной работы, а не наседать и стоять над душой. Но чтобы релакс не затягивался, даже долги нужно планировать.
    Далее необходимо понять, почему возникают задержки:
    Если это плохая планировка времени, то пусть работает как ему удобно (в ночное время или вечернее), если задержки возникают из-за недостатка знаний, значит нужно их подтягивать, включая курсы или помощь наставников.
    И:
    Он склонен всю задачу целиком держать в своей голове и думать над ней один. И чтобы никто не отвлекал. Обсуждать с кем-либо задачу, даже просто общаться в корпоративном чатике среди рабочего дня - все это вроде не дает видимых проблем, но по нему видно, что это его сильно раздражает.

    Меня тоже раздражает отвлекаться каждые 5 минут на сообщения, которые вообще не относятся ко мне. А бесконечные обсуждения могут бесконечно обсуждаться.
    Взялись работать - работайте. Летучка 10 минут каждый день с утра. 60 минут в понедельник. И всё. Ибо нех.
    С ним же никогда не было начальника

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

    Работы было бы меньше, если бы вы, там наверху, между собой всё порешали, а потом уже приходили со своими хотелками, а не переобувались каждый день со своим ТЗ "не знаю что хочу".
    Ответ написан
    Комментировать
  • Как модернизировать экспорт каталога в csv?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    в какую сторону смотреть?
    CIBlockElement::GetList с CATALOG_QUANTITY, для обмена XML вместо CSV (кмк оно проще и используется повсеместно).
    Ответ написан
    Комментировать