• Как повесить событие, чтобы оно сработало на динамически созданном объекте?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    у вас неточность. в примере на jquery вы просто ловите событие
    а в примере на ваниле хотите инициализировать плагин.

    Это разные вещи.

    Поймать событие просто. Вешайте обработчик на document и смотритте что прилетело в event.target

    В случае с плагином, если он сам не поддерживает инициализацию на созданных в рантайме элементах, вам придется самостоятельно отслеживать появление новых узлов в DOM и по условиям инитить на них плагин. Но это в общем случае, для универсальности. В частном случае можно вклинится в процедуры открытия тех же попапов и там подключать маску. Например напрямую в клике кнопки "Открыть попап", или удобнее, в обработчике события "popup.opened" (условно, я не знаю, какие попапы у вас используются, но у большинства плагинов есть события открытия/закрытия).
    Ответ написан
    Комментировать
  • Как подключить скрипты и стили компонента, подключаемого по ajax?

    @ZardoZAntony
    программист, сис. админ
    после успешного выполнения Ajax запроса в JS:
    в res - ответ сервера c HTML, в котором есть и скрипты

    let processed = BX.processHTML(res, false); // парсим HTML
    BX.ajax.processScripts(processed.SCRIPT);  //выполняем найденные скрипты
    Ответ написан
    Комментировать
  • Как использовать Iblock внутри своего класса?

    udjin123
    @udjin123
    PHP, Golang, React
    use Bitrix\Iblock это не нужно и не поможет, это namespace.
    Вам же нужно загрузить модуль Iblock так как класс который вам нужен в нем, при загрузке модуля инициализируется автолоадер его классов.

    use Bitrix\Main\Loader;
    Loader::includeModule("iblock");
    Ответ написан
    1 комментарий
  • Можно ли реализовать 404 ошибку отложенной функцией?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Можно включить буферизацию вывода в самом начале <?php через ob_start();
    Тогда можно перемешать контент и заголовки в коде
    Крайне не рекомендую так делать, и правильное решение - чётко разделить http-заголовки и содержимое. То есть сперва понять что мы хотим отправить 200 или 404. Отправить заголовки, а потом отправить html-контент.

    <?php
    ob_start();
    ?>
    
    <html> 
    <body>
    бла 
    бла 
    бла
    
    <?php
        http_response_code(404);
    ?>
    
    бла 
    бла 
    бла
    
    </body>
    </html>
    Ответ написан
    1 комментарий
  • Как реализовать свою регистрацию на Bitrix?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Для проверки введеного пароля используйте метод \Bitrix\Main\Security\Password::equals($hash, $password, $original = true): bool

    $hash - хеш пароля, который хранится в таблице b_user в поле PASSWORD

    $password - пароль, который надо проверить
    Ответ написан
    Комментировать
  • Как сделать фильтр выбора валют на всем сайте?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Для вывода самого переключателя валют можно написать свой компонент. Список валют можно получить запросом из этого ORM класса https://dev.1c-bitrix.ru/api_d7/bitrix/currency/cu...

    В основном цены на товары показываются в компонентах bitrix:catalog и bitrix:catalog.section
    Для того чтобы цены выводились в нужной валюте надо задать 2 параметра в компоненте: CURRENCY_ID и CONVERT_CURRENCY. Почитать о них можно тут.

    НО!!! - покупку товаров в разных валютах таким образом не сделать. Я общался с ТП битрикс на эту тему. Вот цитата их ответа: "Реализация мультивалютности не предусмотрена в архитектуре модуля магазина.".
    Цена из настроек в итоге всплывёт:
    • в корзине
    • в оформлении заказа
    • Во всех счетах на оплату
    • В платёжных системах и службах доставки

    (и это далеко не полный список)

    Таким образом - можно сделать вывод на сайте цен в разных валютах, но покупка будет происходить только в той цене, которая указана в настройках модуля Интернет магазин.
    Ответ написан
    Комментировать
  • Как правильно поставить агенты Bitrix на крон через ISPmanager?

    1 скрипт от рута не запускай, если он создает файлы то они тоже от рута, в результате проблема с владельцем и группой.
    2. запускай лучше не через /usr/bin/php.. а через wget или curl поскольку он юзает окружение не локальное а то что пренадлежит сайту.
    Ответ написан
    Комментировать
  • Как исполнить код взятый из базы?

    php666
    @php666
    PHP-макака
    но идея через админку управлять шаблонами
    плохая во всех смыслах идея
    все, что тебе сейчас нужно - отойти от компа и выкинуть из головы то, что ты там напридумывал и начать всё заново.

    1. шаблоны - неотъемлемая часть программного кода, которая не должна управляться не через какую "админку".
    2. код в БД хранить не нужно, никогда.

    Начни следовать этим постулатам и опиши внятно задачу. То, что ты сейчас пытаешься сделать - это ад.
    Ответ написан
    Комментировать
  • Почему в jQuery событие scroll не работает при body margin: 0;?

    @Joe_May
    Жесть я 1.5 дня искал эту же ошибку у себя в JS, наткнулся на этот вопрос поиграл со стилями, в результате у меня было свойство body {height: 100%}, поэтому webkit"овские браузеры не запускали событие scroll()... это так если кто в будущем столкнется с этим, автору отдельное спасибо за вопрос =)
    Ответ написан
    6 комментариев
  • Как вырезать конкретную фразу, 50 символов до и 50 символов после неё?

    RhesusNegative
    @RhesusNegative
    Negative
    Первое что пришло в голову
    $text = "Текст — зафиксированная на каком-либо материальном носителе человеческая мысль; в общем плане связная и полная последовательность символов. Существуют две основные трактовки понятия «текст»: имманентная (расширенная, философски нагруженная) и репрезентативная (более частная). Имманентный подход подразумевает отношение к тексту как к автономной реальности, нацеленность на выявление его внутренней структуры.";
    
    $replace = str_replace("философски нагруженная", "|", $text);
    
    $array = explode("|", $replace);
    $first = $array[0];
    $last = $array[1];
    echo $result = substr($first, 0, -50).substr($last, 50);
    Ответ написан
    1 комментарий
  • Как вырезать конкретную фразу, 50 символов до и 50 символов после неё?

    0xD34F
    @0xD34F Куратор тега Регулярные выражения
    $str = "философски нагруженная";
    preg_match("/.{50}$str.{50}/u", $text, $match);
    Ответ написан
    1 комментарий
  • Как вырезать конкретную фразу, 50 символов до и 50 символов после неё?

    Stimulate
    @Stimulate
    могу
    $text = 'Текст — зафиксированная на каком-либо материальном носителе человеческая мысль; в общем плане связная и полная последовательность символов. Существуют две основные трактовки понятия «текст»: имманентная (расширенная, философски нагруженная) и репрезентативная (более частная). Имманентный подход подразумевает отношение к тексту как к автономной реальности, нацеленность на выявление его внутренней структуры.';
    
    preg_match('/(.{50})философски нагруженная(.{50})/Siu', $text, $match);
    
    
    print_r($match);
    Ответ написан
    Комментировать
  • Как сформировать запрос для нескольких таблиц без повторов выводимых данных?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    Да, группировка самый простой способ, другие варианты всяко прожорливее.
    И кстати группировку при больших объемах можно и нужно делать не в MySQL, а в php - т.е. одним простым и быстрым запросом вытягиваешь ВСЁ в массив, далее в массиве спокойно группируешь и выводишь - тут будут использоваться уже ресурсы процессора, так разумнее, ведь редко нужно предоставлять требуемый тебе результат в течение 1 микросекунды, у тебя же не биржа с биткойнами, ну а за 1 миллисекунду любой процессор разложит массив по полочкам. будь в нем хоть миллион строк, пишу, потому что делал так, это не из гугла!!))
    Ответ написан
    3 комментария
  • Как сформировать запрос для нескольких таблиц без повторов выводимых данных?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Так как запросы из бд возвращают построковые данные, ни о каких вложенных массивах речи быть не может. Единственный вариант - хранить в поле json, который, уже после получения, средствами языка получать как массив/объект. Или как написал oxidmod - конкатенацией групп, получим строку вместо json, но хранение будет более нормализованным.
    Ответ написан
    Комментировать