• Как вывести похожие товары в один ряд по 4 товара?

    @Alex-Woo
    full stack developer
    добавить в functions.php следующий код:
    add_filter( 'woocommerce_output_related_products_args', 'change_number_of_related_products' );
    
    function change_number_of_related_products( $args ) {
    	$args['posts_per_page'] = 3; // количество выводимых похожих товаров
    	$args['columns']        = 3;    // количесто столбцов
    	return $args;
    }
    Ответ написан
    1 комментарий
  • Создание динамических поддоменов nginx?

    Lynn
    @Lynn
    nginx, js, css
    Просто заводите для них отдельные блоки server

    https://nginx.org/ru/docs/http/ngx_http_core_modul...

    При поиске виртуального сервера по имени, если имени соответствует несколько из указанных вариантов, например, одновременно подходят и имя с маской, и регулярное выражение, будет выбран первый подходящий вариант в следующем порядке приоритета:
    1. точное имя
    2. самое длинное имя с маской в начале, например “*.example.com”
    3. самое длинное имя с маской в конце, например “mail.*”
    4. первое подходящее регулярное выражение (в порядке следования в конфигурационном файле)



    server {
        server_name   ~^(?<dynamic>[a-z0-9\-]+)\.example.com$;
        ...
    }
    
    server {
        server_name stage1.example.com;
        ....
    }
    
    ...
    Ответ написан
    Комментировать
  • Как открыть модальное окно один раз и только после 30 секунд?

    miraage
    @miraage
    Старый прогер
    jQuery(function($) {
      // Ключ localStorage
      var LS_KEY = 'modal_shown';
      
      // Если модал еще не открыали
      if (!localStorage.getItem(LS_KEY)) {
        setTimeout(function() {
          // Открываем модал
          modalShownFn();
          
          // Сохраняем флаг в localStorage
          localStorage.setItem(LS_KEY, '1');
        }, 30 * 1000);
      }
    });
    Ответ написан
    1 комментарий
  • Почему медленно загружается страница на PHP, которая берёт данные из MySQL?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    ORDER BY put_date ASC
    больно ссуко( хотя может и не очень

    индекс на парент убедись что есть. можно даже внешний ключ, похер что в одной таблице.

    у тебя дерево вложенности. очень большое (больше 3-4 уровней вполне возможно) - да ещё и с огромным числом записей. делать его через
    id,parent_id
    это очень тяжело

    тебе нужно делать отдельную таблицу
    CommentsTree
    id, comment_id, parent_id, depth, level

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

    id, comment_id, parent_id, depth, level (левел можно в таблице комментов хранить а не в дереве, они одинаковые для конкретного коммента)
    // это вот было
    1, 1, 1, 0, 1 // читать как "коммент 1 родитель он же сам (1), дельта глубины 0, общий уровень 1"
    2, 2, 2, 0, 2 // читать как "коммент 2 родитель он же сам (2), дельта глубины 0, общий уровень 2"
    3, 2, 1, 1, 2 // читать как "коммент 1 родитель 1, дельта глубины 1, общий уровень 2"

    // добавляем потомка к 2
    4, 3, 3, 0, 3 // читать как "коммент 3 родитель он же сам (3), дельта глубины 0, общий уровень 3"
    5, 3, 2, 0, 3 // читать как "коммент 3 родитель 2, дельта глубины 1, общий уровень 3"
    6, 3, 1, 2, 3 // читать как "коммент 3 родитель 1, дельта глубины 2, общий уровень 3"

    Потом из этой таблицы можно дернуть WHERE parent_id = :parent и получить все дерево

    Если похожим образом будешь делать товары, которые кстати говоря бывают в двух категориях одновременно - то еще добавится поле category_path, где через точку (1.2.3) или в JSON ([1,2,3]) лежит путь до самого верха в качестве точки отсчета вместо category_id
    Ответ написан
    2 комментария
  • Почему медленно загружается страница на PHP, которая берёт данные из MySQL?

    @Lex85
    По моему опыту, дёргать таблицу в цикле — плохая идея. Попробуйте сначала получать все данные, а потом в цикле их разбирать.
    Ответ написан
    1 комментарий
  • Есть ли плагины для работы с git для Sublime для просмотра изменений файлов как это в PhpStorm?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Vscode тогда уж. Но если вы разрабатываете на PHP то купить шторм это очень выгодное вложение
    Ответ написан
    Комментировать
  • Какой есть подходящий плагин календаря для сайта?

    @mirexdoors
    Fkatpickr. Вероятно, самый популярный сейчас
    Ответ написан
    Комментировать
  • Нужен ли bootstrap как инструмент для верстки?

    mk3mk
    @mk3mk
    занимаюсь вёрсткой (иногда)
    Вы говорите немного о разных вещах.
    Флексбокс - это просто способ вёрстки. А Бутстрап - это инструмент, который позволит Вам сделать полноценный сайт. В бутстрапе есть и слайдер, и карусель, и кнопки, и панели навигации, и аккордеоны, и пагинация и все что может потребоваться.
    Если Вы будете использовать флексбокс, Вы сможете сделать вёрстку. Да. А когда Вы захотите поставить на сайт слайдер, то Вы пойдете искать библиотеки, которые позволяют сделать слайдер. Вы будете изучать эти библиотеки. Как их подключить, как их настроить и т.д. и т.п. Потом Вам понадобится сделать выпадающее меню. Вы пойдёте искать библиотеки для создания такого меню. Потом еще что-то, и так каждый раз.
    В итоге Вам придётся изучить целую кучу всяких библиотек. Подключить к сайту кучу библиотек. Разобраться с их настройками.
    А если Вы вместо этого откроете сайт Бутстрапа, то Вы один раз подключите к сайту этот Бутстрап, и сможете сделать всё, что Вам понадобится. Там всё разложено по полочкам. Всё на русском языке. Всё с примерами.
    Нужен слайдер ? открываем страницу бутстрапа со слайдерами, копируем код, вставляем на свой сайт, и готово. Нужна пагинация ? или аккордеон ? Копируешь код к себе на сайт и всё. Тоже с меню, с кнопками и т.д.
    Там же есть и модальные окна, и спиннеры, и тултипы и т.д.
    Т.е. Вы просто изучаете Бутстрап, и Вам больше не нужны никакие библиотеки.
    Бутстрап - это не только сетка. Не только вёрстка. Это еще и куча функционала.
    Это не только css , это еще и js .
    И к тому-же Вы сразу получаете адаптивную вёрстку.
    Конечно, если Вам понадобится какой-то более сложный слайдер, то все-таки надо будет искать другие библиотеки, но это уже, как говорится, нет предела для изучения и обучения...

    Итог. Лучше изучите Бутстрап. Сэкономите массу времени и получите сразу всё в одном флаконе.
    Ответ написан
    Комментировать
  • Как можно шифровать данные в базе данных MySQL?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Родное шифрование всей БД (с рабочим индексированием) есть начиная с mysql 5.7 - статейка
    2. Можно использовать раздельное хранение скриптов и базы. Например, на разных хостингах с авторизацией по ключам через промежуточный REST-интерфейс.
    3. Ограничить права пользователя БД, указанного в web-скриптах только на определённые операции.
    4. Использовать обфускацию серверных скриптов, работающих с БД.
    5. Использовать встроенные функции шифрования, ключи/пароли для расшифровки - хранить в "разорванном" виде (из нескольких частей), разбросанных по нескольким скрипт-файлам и/или своим REST-сервисам: чтобы его можно было получить только собрав все компоненты вместе.
    Ответ написан
    2 комментария
  • Как сделать запрос с WhereIn в laravel?

    sabramovskikh
    @sabramovskikh
    $services = [1,2];
    $forms = Forms::whereIn('id', $services)->get();
    Ответ написан
    6 комментариев
  • Неудобство при мягком удалении laravel?

    DJZT
    @DJZT
    Laravel - code for you
    Делал в обработчике события на deleted на модели выборку необходимых связанных моделей и тоже делал им удаление.
    Ответ написан
    Комментировать
  • Как удалить элемент коллекции laravel?

    @Camaro67
    Помог? - "Отметить решением"
    Документацию читаем, там очень много интересного.

    $collection = collect(['Я', 'не', 'читаю', 'документацию']);
    $collection->forget(1);
    $collection->dump(); // ['Я', 'читаю', 'документацию']

    А так же с коллекцией можно работать как с обычным массивом, а это значит, что unset тоже сработает: unset($collection[1]);

    И даже это не все, вообщем, как уже сказал: читайте документацию.
    Ответ написан
    1 комментарий
  • Как сделать slick slider во всю ширину экрана?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    .slick-slide img {
        max-width: 100%;
    }
    Ответ написан
    Комментировать
  • Как вытащить значение из $_SESSION?

    @hufawoso
    array_keys($_SESSION)[0]
    Ответ написан
    Комментировать
  • Можно ли заменить DDR3L на DDR3?

    DDR3 и DDR3L - это типы оперативной памяти. Модули памяти с DDR3 отличаются от модулей типа DDR3L, тем что у модуля с оперативной памятью DDR3 напряжение - 1.5 Вольта, а у модуля типа DDR3L напряжение ниже и составляет - 1.35 Вольта. А это значит, что потребление электроэнергии у DDR3L меньше чем у DDR3 на 10 % и соответственно модуль памяти DDR3L является более экономичным.

    Эти два типа памяти совместимы, то есть при определенной поддержке материнской платы на уровне BIOS-а на ней должны работать
    Ответ написан
    Комментировать