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

    DanArst
    @DanArst Куратор тега CSS
    Гриффиндор в моде при любой погоде!
    Потому что между инлайновыми элементами (inline, inline-block) есть отступы/пробелы. Можете просто для теста внутри label написать оба div-а в одну строку, тогда второй не будет переноситься (хотя в разных браузерах работает по разному):
    <label>
      <div class="file_info"></div><div class="inp_file">Выбрать файл</div>
      <input type="file" name="file" accept="text/*" id="code">
    </label>


    Для решения данной проблемы можете:
    1) Добавить родительскому элементу, то бишь тегу label
    label {
      white-space: nowrap;
    }


    2) Использовать flex (что имхо в разы удобнее и лучше):
    label {
      display: flex;
      flex-wrap: wrap;
    }
    Ответ написан
    1 комментарий
  • Как поменять поля в зависимости от выбора?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    По этому мануалу сделайте динамические поля migx.
    В первом селекте выбираете автобус и далее у вас будет подгружаться соответствующие поля.
    Ответ написан
  • CSRF token missing or incorrect instagram, что это и как избавится?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Вы видимо с VPN заходите в Instagram. Как вариант, если без VPN вы зайти в него не сможете, то придется немного потрудиться.
    Откройте Instagram в браузере, далее откройте DevTools (кнопка F12), и перейдите во вкладку Network (№ 1). Теперь обновите страницу.
    В левой вкладке найдите запрос вида instagram.com (№2), нажмите на него и перейдите во вкладку Response (№3). В тексте ответа вам надо найти строчку csrf_token - для этого можете нажать CTRL+F и написать csrf_token (№4). Теперь скопируйте его значение (№5)
    637339b7665d5791965439.jpeg

    Далее переходите в том же DevTools во вкладку Application (№1) и в левой панели нажимаете на instagram.com в блоке Storage, пункт Cookies (№2). В правой панели откроются Куки. Теперь добавьте новый, нажав на пустую нижнюю строчку (№ 3) - достаточно ввести Name(csrftoken) и Value(скопированное значение) и указать галочку Secure. Должно получиться как на скрине №5.
    63733cf5c326d611161802.png

    После этого инстаграм запросит логин-пароль (иногда дважды), введете и сможете пользоваться веб-версией инсты.
    Ответ написан
  • Как запретить повторное добавление в корзину?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Я бы для каждого билета, если это товар ms2, сделал кастомныое поле типа чекбокс Куплен, который по умолчанию не отмечен. Если оплачивается заказ, то плагином на событие msOnChangeOrderStatus проверяются купленные билеты и у них отмечается чекбокс Куплен. И все, при выводе билетов просто проверяешь fenom-ом например, если куплен, то не выводить кнопку, если не куплен, то выводить. И для лучшего функционала, создать еще один плагин на событие msOnBeforeAddToCart, в котором будешь перед добавлением в корзину проверять, куплен ли уже билет или нет.
    Ответ написан
    Комментировать
  • Как сделать выбор места в автобусе?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Важный момент: будет большое количество разных автобусов или будет использоваться всего несколько автобусов? Если будет определенное количество автобусов, которые ты уже знаешь, то можно сделать так:
    1) Для каждого из этих автобусов создать ресурс, он не должен отображаться на сайте, сделай тип документа Ссылка и переводи на главную например. Для этих ресурсов создай три TV - количество мест для посадки, схема посадки (тип TV image или fastupload), и координаты мест - тут должен быть ассоциативный массив вида "№ места":"координаты полигона на схеме".
    2) Если каждая поездка/тур - это отдельный товар minishop2, то можно создать кастомное поле товара, если умеешь, если нет - то создай TV. В данном поле будет указываться ID ресурса-автобуса для данной поездки.
    3) Важно заметить, что в совершенном заказе должен сохраняться № купленного места или мест. Когда юзер будет покупать эту поездку, на бэке формируешь карту изображения (схемы посадки автобуса) с учетом уже совершенных заказов этого товара. Если количество мест в оплаченных заказах равно количеству мест в автобусе, то выводишь сообщение, что все места распроданы. Если еще есть, то выводишь схему с кликабельной картой изображения. Я бы использовал maphilight.js
    Пример схемы посадки
    635f5dda066ca410044192.png

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

    Если же автобусы всегда могут быть разные, т.е. точное количество и т.д. ты заранее не знаешь, то вместо того, чтобы создавать для каждого автобуса ресурс, создаешь три кастомных поля для товара minishop2(поездок) - количество мест в автобусе, схема посадки автобуса и ассоциативный массив мест для посадки. Т.е. то, что в 1-ом случае создается для ресурсов автобусов, во втором случае, чтобы не плодить кучу ресурсов, лучше для каждой поездки эти данные указывать отдельно.
    Далее логика работы такая же, отличается лишь в том, откуда берутся данные.

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

    DanArst
    @DanArst Куратор тега CSS
    Гриффиндор в моде при любой погоде!
    Вы кстати забыли закрыть теги <li>
    Ответ написан
    Комментировать
  • Как сделать поиск класса если нашлось?

    DanArst
    @DanArst Куратор тега JavaScript
    Гриффиндор в моде при любой погоде!
    Это с учетом, что класс кнопки всегда один
    function checkForButton(btnClass) {
        return new Promise(resolve => {
            if (document.querySelector(btnClass)) {
                return resolve(document.querySelector(btnClass));
            }
    
            const observer = new MutationObserver(mutations => {
                if (document.querySelector(btnClass)) {
                    resolve(document.querySelector(btnClass));
                    observer.disconnect();
                }
            });
    
            observer.observe(document.body, {
                childList: true,
                subtree: true
            });
        });
    }
    
    checkForButton('.lebxEowGMdQOJbKlCudYTsrHjNGIkpUfgm').then((elm) => {
        elm.click();
    });
    Ответ написан
  • Можно ли в нынешних условиях работать на зарубежных фриланс биржах?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Ну, во-первых, даже если бы не ограничения, то опытным разрабам очень сложно сложно конкурировать на зарубежных фриланс биржах, ибо миллионы индусов и тысячи пакистанцев с их невозможно низкими ценами, являются практически монополистами. Это еще учитывая мировой стереотип что в каждой компании прогеров (западной) есть хотя бы один индус. Хотя по факту так и есть.

    Во-вторых, чем не устраивают СНГ биржи, например Kwork, Weblancer и т.д? Я более чем уверен, что на них ты будешь зарабатывать (потенциально) в разы больше, чем на условном Upwork (учитывая конкуренцию, систему вывода и комиссию).

    Зачем искать какие-то пути обхода ограничений, если ты можешь работать удалённо на локальных биржах, где вполне достаточно заказов и людям в принципе пофиг откуда ты (наверное). Как минимум у меня, например, в месяц порядка 10 заказов на Kwork падает, и это при том, что я вообще не откликаюсь.
    Ответ написан
    6 комментариев
  • Как вытащить кнопки за пределы слайдера?

    DanArst
    @DanArst Куратор тега CSS
    Гриффиндор в моде при любой погоде!
    Так вытащите кнопки за контейнер. У swiper есть отличная документация, где есть подобный пример:
    var mySwiper = new Swiper('.swiper-container', {
      navigation: {
        nextEl: '.swiper-button--next', //класс кнопки next
        prevEl: '.swiper-button--prev' //класс кнопки prev
      }
    });
    Ответ написан
    Комментировать
  • Как включить текстовый редактор для описания страницы modx?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Поле description по умолчанию textarea.
    Если вам нужно еще одно поле с текстовым редактором, то вы можете без проблем создать TV с соответствующим типом ввода "Текстовый редактор" и назначить его нужным шаблонам.
    Подробнее тут
    Ответ написан
  • Почему выводится ошибка Parse error: syntax error, unexpected '{' wordpress?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Стоит смотреть внимательно, что копируете. В обеих строчках не хватает закрывающей скобки ")"
    if( isset( $_POST[ 'categoryfilter' ] ) ) {
     if( isset( $_POST[ 'postTagfilter' ] ) ) {
    Ответ написан
    1 комментарий
  • Как реализовать анимацию при открытии окна с видео?

    DanArst
    @DanArst Куратор тега CSS
    Гриффиндор в моде при любой погоде!
    2 комментария
  • Как вытянуть элемент на всю ширину, при условии что второй элемент скрыт или удалён?

    DanArst
    @DanArst Куратор тега CSS
    Гриффиндор в моде при любой погоде!
    .right {
      width: calc(100% - 300px);
      height: 300px;
      background: blue;
      flex-grow: 1; /*добавить эту строчку*/
    }

    Ответ написан
  • Как получить значение TV поля через снипет?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    $tvArr = $modx->getTemplateVar('имя_или_ид_тв', '*', ид_записи);
    $tvVal = $tvArr['value']; //это значение
    Ответ написан
    Комментировать
  • Как обнулять последующий select при смене значения в текущем?

    DanArst
    @DanArst Куратор тега JavaScript
    Гриффиндор в моде при любой погоде!
    Логично, что если в select выше значения изменилось, то обнулять последующий.

    А еще более логично, что раз значение изменилось, то и в последующих select-ах должны измениться значения, раз вы делаете зависимые.
    Ну а именно для вашего случая можно сделать например так:
    Ответ написан
  • Как после валидации формы открыть путь прописанный в action?

    DanArst
    @DanArst Куратор тега JavaScript
    Гриффиндор в моде при любой погоде!
    $('#payment-form').on('submit', function(event){
      event.preventDefault();
      var valid = $(this).paymentForm('valid');
      if (valid){
        $(this).unbind();
        $(this).submit();
      }else{
        console.log('Badman Cardfaker');
      }
    });
    Ответ написан
    1 комментарий
  • Как с помощью swiper воссоздать такой эффект?

    DanArst
    @DanArst Куратор тега JavaScript
    Гриффиндор в моде при любой погоде!
  • Как реализовать такое нижнее подчеркивание?

    DanArst
    @DanArst Куратор тега HTML
    Гриффиндор в моде при любой погоде!
    Зачем отключать свойства? Это ведь эффект при hover-е. Так откройте devTools, выберите интересующий вас элемент и посмотрите на его стили, далее нажмите правой кнопкой мыши на него и в контекстном меню выберите Force state -> Hover и снова смотрите стили.
    На сайте из вашего вопроса сделано так:
    Ответ написан
    1 комментарий
  • Как вывести из базы только последние строки с разным значением id _user?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    SELECT id, id_user, komy, text, id_room, MAX(time) 
    FROM nano_mess 
    WHERE komy = '$id_login'
    GROUP BY id_user;
    Ответ написан
  • Как сделать ссылку на запрос в сервисе Яндекс и Гугл карт?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Как сделать ссылку на запрос в сервисе Яндекс и Гугл карт?

    Нужно именно ссылку на данные сервисы?
    Можно создать две переменные (если у вас так), условно yandex_coordinates и google_coordinates, и в них хранить массив координат [широта, долгота] для Яндекс и Google соответственно.
    И формировать ссылки для каждого помещения:
    1) Yandex:
    https://yandex.ru/maps/?pt=yandex_coordinates[0],yandex_coordinates[1]&z=13&l=map

    2) Google:
    https://maps.google.com/?q=google_coordinates[0],google_coordinates[1]


    p.s. честно вообще непонятен выбор тегов вопроса
    Ответ написан
    Комментировать