• Сравнить два массива содержащи guid?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    array_diff - именно та функция что необходима:
    <?php
    
    $arr1 = array( "45ebdbaa-380b-483b-80a2-73d7c53088e2","97baa061-4208-4aeb-8136-eb76c0932a3d");
    
    $arr2 = array( "45ebdbaa-380b-483b-80a2-73d7c53088e2");
    
    print_r(array_diff($arr1, $arr2));


    даёт результат:

    Array ( [1] => 97baa061-4208-4aeb-8136-eb76c0932a3d )


    возможно проблема где-то в другом месте?
    Ответ написан
  • Как взять плеер с другого сайта?

    orlov0562
    @orlov0562
    I'm cool!
    Брать можно с любого сайта, который позволяет делиться видео: vk, youtube, ok и т.д.

    Wordpress умеет автоматически показывать плеер, для видео взятых из белого списка сайтов

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

    Несколько плееров для одного и того же кино, можно организовать во вкладках. Для сериалов серии можно сделать в выпадающем списке или слайдере. Не встречал готовых плагинов, да и не искал их. Можно заказать на фрилансе.

    Тв трансляции, все тоже самое.

    Слышал, что есть большая проблема с легальностью такой деятельности, поэтому надо быть очень аккуратным и не использовать чужой контент без разрешения
    Ответ написан
    1 комментарий
  • Что отвечает за блок в Wordpress?

    orlov0562
    @orlov0562
    I'm cool!
    Есть несколько вариантов где искать этот блок, в зависимости от его реализации:
    1) Плагины (добавляющий данный блок)
    2) Внешний вид > Виджеты (виджет который отвечает за данный блок)
    3) Внешний вид > Темы (настройка темы)
    4) Внешний вид > Редактор (редактор файлов темы)
    Ответ написан
    3 комментария
  • Wordpress. Как удалить контент со страницы товара?

    orlov0562
    @orlov0562
    I'm cool!
    При редактировании готовых тем, есть возможность столкнуться с тем, что отредактированные файлы будут перезаписаны при обновлении темы. Бороться с этим можно с помощью плагинов запрещающих обновление.
    Либо созданием копии темы и изменении её id/версии.

    В остальном, проблем нет. Темы на то и темы, чтобы вносить в них изменения, если это необходимо. Поэтому просто создавай копию оригинальной темы и модифицируй её так, как необходимо.
    Ответ написан
    4 комментария
  • Как можно отменить автоскроллинг в fullpage.js после прокрутки всех слайдов?

    orlov0562
    @orlov0562
    I'm cool!
    setInterval возвращает id таймера, по которому можно удалить таймер с помощью функции clearInterval()

    т.е. надо сделать примерно так:

    timer = setInterval(function(){
    ...
        if ( isLastSlide() ) clearInterval(timer);
    ...
    }, 8000)
    Ответ написан
    Комментировать
  • Как сделать обработчик наличия дочернего элемента?

    orlov0562
    @orlov0562
    I'm cool!
    не лучший, но возможный вариант, проверять элемент по таймеру, типа того
    setInterval(function(){
        var el = $('div>span:not([updated])');
        if (el.length) {
            el.first().attr('updated', true);
            el.first().click(function(){ console.log('clicked'); });
        }
    }, 500);
    Ответ написан
  • Как можно бэкапить автоматически FTP + MYSQL?

    orlov0562
    @orlov0562
    I'm cool!
    А) bash скрипт, запускаемый кроном:
    - делает zip архив файлов
    - делает дамп mysql базы и архивирвет его
    - коннектится на удаленный комп и копирует полученные файлы туда
    нужные приложения: cron, zip, mysqldump, ftp

    Б) если это WP blog, и у него не чудовищный размер бд/файлов, тогда можно:
    1) делать дамп бд, с разбивкой запросов по строкам
    2) по крону делать коммит дампа + файлов сайта и пушить его в репозиторий

    В) большинство панелек управления умеет делать бэкап и отправлять его на сторонний сервер, надо общаться с хостером
    Ответ написан
    Комментировать
  • Как узнать какой сайт отправляет спам?

    orlov0562
    @orlov0562
    I'm cool!
    Логи, тут особо бесполезны, кроме совсем примитивных взломов. Для их анализа я бы пошел от обратного:
    1) Объединил бы все логи по дням от каждой программы в свой один большой файл (apache.log, nginx.log ..)
    2) Смотрел бы внутрь, выделял бесполезные паттерны и вычищал бы их
    В итоге получился бы файлик с подозрительными штуками, которые и анализировал бы. Но, для этого надо иметь богатый опыт, чтобы понимать что важно, а что нет

    Поиск проблемы, лучше всего начать с анализа заголовков писем (ip, mailer и т.д.). Потом посмотреть кроны и пройтись поиском, по скриптам сайтов, на предмет mail / eval / base64 функций. Так же можно, на время подменить sendmail на bash скрипт, который перед отправкой писем будет вести лог вызвавшего его процесса и информации о нем. Все эти операции, совсем не простые, поэтому делать их надо очень осторожно, особенно на боевом сервере.
    Ответ написан
  • YII2 Сложный запрос с выборкой?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    createCommand и обычный sql, типа того

    SELECT * FROM recept WHERE recept_id IN (
        SELECT DISTINCT recept_id FROM recept_product WHERE
            product_id NOT IN (1,2,3)
    )
    Ответ написан
    Комментировать
  • Можно ли не использовать капчу при авторизации и регистрации?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Любые данные завязанные на сторону клиента (сессии, куки и т.д.), не защитят никак от перебора паролей.

    Самый простой вариант, это записывать ip и кол-во неудачных попыток, дальше при превышении либо делать паузу между попытками (попробуйте через 5 минут), либо показывать каптчу (т.е. не сразу, а после 5 неудачных попыток).
    Ответ написан
    Комментировать
  • Как удалить неявные дубли в массиве php?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    <?php
    
        $arr = ["осиновый лист", "лист осиновый"];
    
        print_r(
            array_combine(array_map(function($val){
                $val = str_split($val);
                sort($val);
                return implode($val);
            },$arr),$arr)
        );


    или то, что посоветовал Сергей

    <?php
    
        $arr = ["осиновый лист", "лист осиновый"];
    
        print_r(
            array_combine(array_map(function($val) {
                $val = mb_split('\s', $val);
                sort($val);
                return implode(' ',$val);
            }, $arr), $arr)
        );
    Ответ написан
    Комментировать
  • Как определить нажатый и не нажатый radio?

    orlov0562
    @orlov0562
    I'm cool!
    Я предлагаю, искать белый фон, добавить ему класс с серой рамкой.

    Далее повесить обработчик, в котором добавлять рамку выделения.

    Тут можно либо проверять наличие класса серой рамки, либо просто задать стиль серой рамки через !important , зависит уже от необходимой реализации.

    https://jsfiddle.net/4fqheg77/5/
    Ответ написан
    1 комментарий
  • Как включить лайки (wp-ulike)?

    orlov0562
    @orlov0562
    I'm cool!
    Опиши подробнее, что ты понимаешь под "Как вывести этот функционал лайков от этого плагина ? "

    Если как добавить в пост, то достаточно активировать этот плагин и кнопка с пальцем и кол-во голосов появляются в футере поста и рядом с комментарием.

    Если надо в конкретное место поста, то вставляешь шорткод [wp_ulike] в текст поста
    Ответ написан
  • Не работают сессии php, в чем дело?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    unset($_SESSION['locality']);
    session_destroy();
    Ответ написан
    2 комментария
  • Woocomerce выдаёт ошибку на странице товара?

    orlov0562
    @orlov0562
    I'm cool!
    открыть sidebars.php и посмотреть по какой причине, в 183 строке, передается null вместо массива

    если лень разбираться, тогда можно попробовать сделать так:

    примерно сейчас там:
    reset($a);

    тогда, временно, исправить можно так:
    if (!is_array($a)) $a = [];
    reset($a);


    но лучше разобраться в чем причина :)
    Ответ написан
  • Как использовать менеджеры пакетов? Composer, bower, другое?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Что-то ты запутался:
    * composer - это штука для управления зависимостями бэкэнда
    * bower - это штука для управления зависимостями фронтенда

    ключевые слова тут "управление зависимостями"

    Ты же беспокоишься, что в итоге у тебя будет торчать наружу. Так вот, не /vendor не /bower_components не должны быть доступны. Доступной у тебя должна быть одна директория - public_html в которой у тебя будет index.php и папка assets в которую и будет собираться вся media (css, js, картинки и т.д.). Как это организовать уже второй вопрос, на который тебе ответит гугл по запросу "сборщик проектов".

    И теперь по порядку:
    1) пользоваться отдельно Composer для PHP, и отдельно Bower
    да

    2) Придется параллельно пользоваться двумя разными менеджерами пакетов
    да

    3) Тогда вопрос, где размещать PHP и JS файлы собственно моего проекта? В /vendor и /bower_components?
    да, используй папки по умолчанию

    4) как это все организовать правильно, красиво и удобно?
    / .. framework_dirs ..
    /vendor
    /bower_components
    /public_html
    + assets/..
    + index.php

    ** По поводу bower, все что он генерит, многие кладут сразу в public_html, но т.к. у него нет возможности удалять лишние (например из всего пакета jquery оставить только 1 файл jquery.js), то я считаю, что полную папку лучше прятать и деплоить исключительно то, что нужно.
    Ответ написан
    3 комментария
  • Вывод изображения с разбитого ноутбука, на монитор. Как?

    orlov0562
    @orlov0562
    I'm cool!
    Давным-давно, на моем старом IBM, это решилось отключением шлейфа (провода) родного монитора от материнки. Видеокарта сама нашла доп. монитор (подключенный по D-Sub) и стала использовать его как основной дисплей.
    Ответ написан
    Комментировать
  • Как считать клики по баннеру?

    orlov0562
    @orlov0562
    I'm cool!
    Да, ты все верно написал, делать можно разными способами:
    1) Добавить промежуточный шаг, на котором будет учитываться клик и дальше редирект
    2) Новое окно + в старом ajax
    3) При клике, вначале ajax + ответ от бекенда, только потом переход

    Париться по поводу url-а перехода, я бы не стал. Из 15 лет пользования компьютера, я ни разу (кроме целей связанных с разработкой), не беспокоился об url-е баннера.

    Гугл например использует 1ый метод. Т.е. он делает ссылку, типа http :// site.com, но при переходе вначале дергает свою страницу и только потом редиректит на адресата. Это можно понаблюдать в отладчике проверив http запросы
    Ответ написан
    Комментировать
  • Объявление переменной window.var или var?

    orlov0562
    @orlov0562
    I'm cool!
    Вот тут можешь ознакомиться какая разница:
    javascript.ru/tutorial/foundation/structure#oblast...
    Ответ написан
    Комментировать