• Как остановить текущий трек при воспроизведении другого?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const $audio = $('audio');
    const $play = $('.play').click(function() {
      const index = $(this).closest('tr').index();
      const paused = $audio[index].paused;
    
      $audio.each((i, n) => n[i === index && paused ? 'play' : 'pause']());
      $play
        .text(i => i === index && paused ? 'pause' : 'play')
        .removeClass('active')
        .eq(index)
        .toggleClass('active', paused);
    });
    Ответ написан
  • Как запретить отправку письма при добавлении заказа?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    EVENT_1 - почтовое событие по умолчанию
    EVENT_2 - Ваше событие, в кастомном функционале.

    Если надо чтобы, EVENT_1 не отправлялось только в вашем компоненте, а в стандартном оформлении работало, то можно сделать так.
    - Перед сохранением заказа объявить глобальную переменную.
    - В обработчике события модуля main OnBeforeEventAdd проверять наличие этой переменной и то, что это событие == EVENT_1. Если она есть, то в обработчике событии возвращать false. Таким образом, отправка стандартного почтового события EVENT_1 будет отменена.
    Ответ написан
  • Получится ли использовать плагин карт от fla-shop.com US Map в сайте на битриксе?

    Здравствуйте!
    Я когда-то давно работал с этой компанией (делал пару скринкастов по работе с плагином на фрилансе) из-за чего довольно хорошо знаком с их продукцией. У них очень классные и продуманные плагины.
    Использовать плагин на Битриксе не получится, но вы можете эти же карты в svg / html5 / js форматах найти на codecanyon.net. А далее уже эти карты интегрировать в 1С-Битрикс.
    Вот, ссылки на карты очень похожие на те, которые используются в этих плагинах:
    https://bit.ly/3lhJIBf
    https://bit.ly/32fFkLd
    Поиск на codecanyon
    Ответ написан
  • Просьба помочь с git`ом?

    @Andriy_Kosmenyuk
    Не нужно делать комиты в ветку мастер. Создай ветку девелопер, и туда делай комиты. После делай Pull Request master < developer и мерж ветки через github в свой master. И как я уже понял, у тебя локальная ветка master отстает от ветки master в github репе. По этому тебе нужно скачать все изменения. Также не игнорь совет выше. Напрямую в master в всех нормальных проектах делают только первый комит, потом всё делают через PR.
    Ответ написан
  • Возможно ли привязать две 1с к сайту на 1с-битрикс?

    udjin123
    @udjin123
    Bitrix, Symfony, Golang, React
    Штатно нет такой возможности, только кастомизировать импорт
    Ответ написан
  • Битрикс умный фильтр мультивалютность?

    @topuserman
    Умный фильтр фильтрует только заданным по значениям полей.
    Т.е. если фильтр по свойству цены с рублевой валютой, то фильтрация будет только по рублю, и кастомизировать компонент, а тем более шаблон, очень трудозатратно.

    На много проще будет добавить дополнительные типы цены - Цена USD, Цена EUR и т.д.

    Повесить обработчик на изменение/добавление товара, в котором автоматически будут заполняться эти типы цен с пересчета с рубля по внутреннему курсу валют.

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

    UPD

    Если у вас редакция Малый бизнес, то там многоценовости не будет.
    В этом случае придется кастомизировать компонент фильтра:

    1. Выносите компонент в отдельное пространство
    2. В куда-нибудь заводите курс валют
    3. В шаблоне компонента, где выводится блок для фильтрации по цене, добавляете селект, с выбором нужной валюты, при изменении валюты, через ajax, пересчитываете цены по курсу, а выводите в этом же месте.
    + добавляете input:hidden с выбранный валютой
    4. В компоненте, проверяете пришедший курс, и переводите в рубли.

    В итоге все будет работать поверх стандартного функционала.
    Ответ написан
  • Как правильно составить sql запрос?

    по идее, должно быть так:
    SELECT `fd`.* FROM `oc_filter_description` AS `fd`
    INNER JOIN `oc_product_filter` AS `pf` USING(`filter_id`)
    INNER JOIN `oc_product` AS `p` USING(`product_id`)
    INNER JOIN `oc_product_to_category` AS `p2c` USING(`product_id`)
    
    WHERE `fd`.`filter_group_id` = 1
    AND `p2c`.`category_id` = 1
    AND `p`.`status`=1
    GROUP BY `fd`.`filter_id`
    Ответ написан
  • Как сделать выполнение php кода, когда пользователь закрыл вкладку?

    На JS ловить window.blur или window.unload (точно не помню), по этому событию слать в API запрос, по запросу выполнять нужное действие. Можно пойти от противного: слать hearbeat запросы раз в 30 секунд, если пропустили - значит, вкладка закрыта или интернета нет, соответственно, выполняем функцию.
    Ответ написан
  • Где можно получить список всех населенных пунктов России?

    @UPSA
    anykey
    Добавим ....
    Раньше был КЛАДР (Классификатор адресов России) и кажись его переделали в https://fias.nalog.ru/Updates

    UPD
    Упс ... дублирование ответа... на ссылку не нажимал )))
    Ответ написан
  • Как генерируемый файл pdf записать в свойство инфоблока?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    $mpdf = new \Mpdf\Mpdf();
    $mpdf->WriteHTML($html2);
    $mpdf->Output($pdfPath . $fileName, \Mpdf\Output\Destination::FILE);
    
    $fileArray = \CFile::MakeFileArray($pdfPath . $fileName);


    А потом полученный массив используйте в CIBlockElement::SetPropertyValuesEx
    Ответ написан
  • Как проверить чтобы был выбран один из RADIO?

    Lebezniy
    @Lebezniy
    Веб разработка
    <div>
        <div class="form-item-title">Цель</div>
        <input type="radio" id="target-PROPERTY1_RADIO0" name="PROPERTY1_RADIO[]" value="26"><label
            for="target-PROPERTY1_RADIO0"> Работа</label>
        <input type="radio" id="target-PROPERTY1_RADIO1" name="PROPERTY1_RADIO[]" value="27"><label
            for="target-PROPERTY1_RADIO1"> Практика/Стажировка</label>
        <input type="radio" id="target-PROPERTY1_RADIO2" name="PROPERTY1_RADIO[]" value="28"><label
            for="target-PROPERTY1_RADIO2"> Для базы/резерва</label>
    </div>
    
    <script src="http://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <script>
            $('input[type="radio"]').on('click', function () {
                console.log($('input:checked').val());
            });
    </script>


    Подробнее: Проверить состояние чекбокса/радио
    Ответ написан
  • Сколько стоит час веб-разработчика-фрилансера?

    @deliro
    Агрессивное программирование
    Ты веcь такой кругом молодец, то знаешь, это знаешь. А теперь представь себе среднестатистический проект, который должен приносить бизнесу деньги. За две недели работы ты едва напишешь хлипкий CRUD для данных, неправильно смаппив бизнес-сущности в объекты ORM, ещё через месяц натянешь какой-то слайдер на jQ, попутно захватив 2мб JS кривых библиотек, а через два заказчик поставит тебе плохую оценку, потому что твой ценник он оплатил не за то, что ему нужно, а потому что ты знаешь монады, которые ему даром не сдались.

    А теперь давай представим простого программиста. Из алгоритмов он с трудом вспоминает сортировку пузырьком, а двусвязный список — предел его знаний о структурах данных, и даже этим списком он пользовался два раза в жизни. Хаскель он никогда не видел в глаза, C++ учил только в школе, вместо этого пишет неэффективный код на PHP. И у него есть опыт. За день он распишет сущности, за второй сделает универсальный CRUD, на третий день поднимет фронт на React'е с SSR. Да, внутренности проекта будут "медленными". Вместо O(logN) что-то будет выполняться за O(N) или даже O(N^2), но всем похер. Пока всё работает на приемлемом уровне — бизнес радуется.

    Кстати, к чему эта поучительная лапша? Я хотел сказать, что всеми этими модными словами можно пугать друзей и преподавателей, но в реальной жизни все алгоритмы уже реализованы, все типы данных уже подобраны оптимально. Знать их полезно для себя (чтобы мозг не атрофировался), но не для работы. Для работы тебе нужны такие навыки как:

    * Оптимальный баланс между говнокодом и идеальным кодом
    * Оптимальный баланс между скоростью разработки и оптимизацией кода
    * Оптимальный баланс между поддерживаемым кодом и костылями
    * Умение использовать те инструменты, с которыми ты работаешь. Опять же, для того, чтобы писать быстро, при этом имея минимальное количество говнокода и обеспечивая максимальную поддерживаемость (в пределах сроков). Например, можешь выкинуть в помойку свой Vim, как бы круто ты себя не чувствовал, разрабатывая в консольном редакторе, если продукты от JetBrains позволят за это же время сделать что-то лучше или чего-то больше
    * Чувство "знаю больше менеджеров". Это то чувство, когда тебе кажется, что "вот эта фича скоро изменится" и надо сделать архитектуру заранее более гибкой. Или "вот эту фичу мы через месяц выпилим" и не надо тратить на неё силы — напиши костыль и через месяц с чистой совестью удали его
    * Знания, как сделать ту или иную фичу. Потому что фичи повторяются (немного видоизменяясь) от проекта к проекту. И если ты сделал что-то за два дня, в следующий раз ты похожее сделаешь за три часа

    Что касается инструментов, выбери любой полноценный фреймворк, который умеет решать 90%+ потребностей "из коробки": Symfony, Django, Laravel

    Всякие "минималистичные" поделия вроде Falcon, Flask (в PHP не знаю, я на питоне пишу) оставь хипстерам. Пусть они говорят: "Мой фалкон такой быстрый, он написан на Cython". Тебя это не должно волновать, потому что бизнес с твоей скоростью разработки уже заработал достаточно денег, чтобы купить ещё десять серверов, пока фалконисты неделю гуглили, как прикрутить миграциии и запустить юнит-тесты на VPSке за пять баксов.
    Ответ написан
  • Почему не работает викторина на php + mysql?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что вы делаете $mysqli->close (), а уже после этого getAnswer($result3) ? Естественно, соединение с сервером закрыли, как оно получит от БД данные?
    Ответ написан
  • Есть ли в api битрикса функционал для создания progressive jpeg?

    anton99zel
    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Нет
    Но вы можете установить на сервер: jpegoptim и optipng
    Ответ написан
  • Как работает this jquery?

    @igor9alive
    $(this) в данном примере содержит элемент, на котором произошел click. Т.е. непосредственно элемент.
    То есть, вот этой строкой "$(this).slideToggle(1000);" ты скрываешь элемент, по которому кликнули - $('.bg_sale span').
    Напиши вот так - $(this).find('b').slideToggle(1000);
    Таким образом в элементе this (кликнутый элемент) ты найдешь все теги b и применишь к ним метод slideToggle
    Если ничего не упустил, должно сработать
    Ответ написан
  • Как правильно построить приложение на listview?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Как вариант можно в assets добавить несколько txt-файлов, в которых каждая строка - элемент списка.
    При старте активити прочитать каждый файл в свой список и затем эти списки передать в адаптеры для ListView
    Ответ написан
  • Что я делаю неправильно?

    FanatPHP
    @FanatPHP
    Чебуратор тега PHP
    Что я делаю неправильно?

    Всё.
    Он ведь возвращает : new mysqli(

    В сообщении об ошибке нигде не говорится про то, что "он" возвращает. Сообщение об ошибке говорит тебе человеческим голосом что у класса DB нет метода query(). И если ты посмотришь код класса в своем вопросе, то в нем действительно нет такого метода. А ты можешь вызывать только существующий методы у класса, что бы там кто не возвращал.

    Хуже того, даже если ты заставишь свой класс выполянять запросы, он будет создавать миллион соединений с БД.
    Потому что в отличие от mysql_connect, каждое обращение к new mysqli создает новое соединение. И тебе самом надо заботиться о том, чтобы соединение с БД юыло только одно. А не создавалось каждый раз, когда ты напишешь $db=new DB();. Фв тф это собираешься похоже писать в каждом методе каждого класса

    Ну и то что в DB используется mysqli а не PDO означает что у тебя весь код будет в SQL инъекциях.

    Правильный способ будет создать сначала экземпляр класса PDO, и потом при создании каждого объекта, которому нужна работа с БД, и передавать его в конструктор.
    PDO создаем как написано здесь, это код помещаем в файл, чтобы потом инклюдить где нужно.

    class Categories
    {
        public function __construct($db){
            $this->db = $db;
        }
        public function getCategories()
        {
            $query="SELECT * FROM categories";
            return $this->db->query($query)->fetchAll();
        }
    }


    и потом что-то вроде

    include 'pdo.php';
    $category = new Categories($pdo);
    $list = $category->getCategories();
    Ответ написан