• PHP вернуть разницу во времени?

    В Carbon есть нужная Вам функция diffForHumans
    echo Carbon::now()->subDays(5)->diffForHumans();               // 5 days ago


    на чистом php форматы все равно руками задавать думаю необходимо.

    function dateDifference($date_1, $date_2, $differenceFormat = '%a days')
            {
                $datetime1 = date_create($date_1);
                $datetime2 = date_create($date_2);
                $interval = date_diff($datetime1, $datetime2);
                return $interval->format($differenceFormat);
            }
            $data = dateDifference('2020-12-01', '2020-12-03');

    2 days
    Ответ написан
    Комментировать
  • Почему глючит фоновое видео?

    @bychkov_64
    Фрилансер, пацифист
    ALEX, загрузи свой фоновое видео на видео-провадера ютуба, вимео.
    И транслируй свое видео от туда. Очевидные плюсы:
    1) Сервис сам пережмет видео как нужно. И будет транслировать его куда стабильней чем твой хостинг.
    2) Ты не теряешь драгоценный трафик - что критично на дешевых хостингах.
    Ответ написан
    Комментировать
  • У Wordpress файлов появляется странный префикс?

    dyuriev
    @dyuriev
    A posteriori
    Веб-сервер юзает PageSpeed Module
    Ответ написан
    Комментировать
  • Иконка на пол экрана в момент загрузки сайта?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Причиной является то, что:
    1) иконка большого размера
    2) ограничение размеров иконки задано при помощи css
    3) пока загружается страница и загрузятся отдельные файлы (css, js), а затем уже стили применяются к странице. Вот, на этот временной интервал вы видите большую иконку
    Ответ написан
    4 комментария
  • Как сделать оверлей когда sidebar открыт?

    MagnusDidNotBetray
    @MagnusDidNotBetray
    Самый елеустремленный человек
    Можно на кнопки открытия и закрытия сайдбара навесить свои обработчики
    document.addEventListener('DOMContentLoaded', () => {
      const buttonOpen = document.querySelector('.ob-widget-btn');
      const buttonClose = document.querySelector('.ob-widget-container__header__close__cross');
      buttonOpen.addEventListener('click', () => {
      	document.body.classList.add('darken');
    	});
      buttonClose.addEventListener('click', () => {
      	document.body.classList.remove('darken');
    	});
    });
    Ответ написан
    5 комментариев
  • Почему не работает position: sticky?

    Raxen
    @Raxen
    Lead Frontend Developer, Beeline
    Если у вас убрать overflow-x с body и элемента с айди #page-container, то сможете добавить position: sticky и top: 0 (например) у элемента
    .et_pb_module.et_pb_sidebar_0.et_pb_widget_area.clearfix.et_pb_widget_area_left.et_pb_bg_layout_light
    и все заработает.
    Но могут повыползать косяки верстки с просчетом размеров по горизонтали, вообще чинить подобные проблемы обрезая весь body по горизонтали такая себе идея. Если есть где-то момент, превышающий размеры 100% ширины сайта и его невозможно исправить, обрезайте скролл, используя overflow-x у родителя проблемного элемента, а не body, кроме того overflow на body не работает в iOs браузерах, с другой стороны в сафари на иос стики тоже не работает, но гугл знает где взять полифил)
    Ответ написан
    Комментировать
  • Фриланс в 2020: Upwork VS Fiverr?

    opium
    @opium
    Просто люблю качественно работать
    Если ты забит работой под 100 процентов то у рения как у лоха нет выбора, сиди и перди на апворке, если нет то или работами на все другие биржи и фивер наверно последний в этом списке бирж из за свой специфика
    Ответ написан
    Комментировать
  • Поддерживает ли Wordpress SASS, LESS?

    @weart
    Вы собрались компиляцию на фронте делать? Нет, конечно, не поддерживает.
    Ответ написан
    4 комментария
  • Как обернуть только нужные блоки с помощью JQuery?

    @zkrvndm
    Софт для автоматизации
    Здесь не нужен jQuery достаточно функционала JavaScript. Пример:
    // Записываем в переменную all_post все наши посты массивом:
    all_post = document.querySelectorAll('article[id^="post-"]');
    
    // Перебираем элементы массива по одному через цикл for:
    for (i = 0; i < all_post.length; i++) {
    
    	// Сохраняем в переменную image_post код изображения:
    	image_post = all_post[i].querySelector('a').innerHTML;
    	
    	// Удаляем ссылку с изображением:
    	all_post[i].querySelector('a').remove();
    	
    	// Записываем то, что осталось после удаления:
    	other_info = all_post[i].innerHTML;
    	
    	// Записываем данные обратно уже обернув в нужные нам блоки:
    	
    	all_post[i].innerHTML = '<div class="image_block">'+image_post+'</div><div class="other_info">'+other_info+'</div>';
    
    }
    Ответ написан
    4 комментария
  • Работа c файлами лайтрум на внешнем HDD?

    Jump
    @Jump Куратор тега Твердотельные накопители
    Системный администратор со стажем.
    И у меня возник вопрос будет ли разница в скорости работы внешнего или внутренего hdd.
    Внешний HDD конечно же будет работать медленней, но вы вряд ли это заметите.
    Редактор будет просто читать файл и записывать готовый результат на этот диск - тут никаких проблем не будет.
    А все промежуточные результаты если они не влезут в память будут сохранятся на системном диске.
    Ответ написан
    Комментировать
  • Работа c файлами лайтрум на внешнем HDD?

    vadimspriggan
    @vadimspriggan
    Системный администратор по жизни
    Насколько мне позволяет судить мой опыт, ПО обрабатывающие графику, работают с оперативной памятью - это для них критично.
    Например: Я открываю пакет с фотографиями, который весит 310МБ и в этот же момент системный монитор фиксирует запись в оперативку 314МБ. При всех изменениях изображений все действия происходят в оперативке. Когда происходит сохранение обработанных фото, жёсткий диск снова включается в дело.
    Так что смею Вас заверить, что HDD в данном случае может быть и внешним при условии:
    1. USB интерфейс надёжен и не даёт сбоев при шевелении провода, например, или не отключается сам по себе.
    2. HDD не самое дно, где может происходить произвольное падение скорости, а способен обеспечить обычную среднестатистическую скорость записи\чтения.
    Ответ написан
    5 комментариев
  • Бесконечная загрузка Windows 10?

    @Drno
    Если новый ноут - отдать обратно в магаз. Если не новый - выше указали, переустановить систему. То что флешка читается 20 минут - это оч странно, должно быть около 1 минуты. Хотя может флешка битая...
    Если за лицензией не гонитесь, ставьте windows 10 ltsb, там нету той кучи гамна которая в остальных версиях
    Ответ написан
    6 комментариев
  • Как ускорить загрузку сайта?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Общие рекомендации для ускорения сайта. Этим методом я могу оптимизировать сайты до 100%. Другой вопрос - нужно ли это)))

    1) Установите плагины Fastest cache + Fastest cache premium + Autoptimize.
    В плагине Fastest Cache & Premium включите все пункты, КРОМЕ 3-х пунктов касающихся CSS
    5b7010485d97c901632931.png
    В плагине Autoptimize включите пункт оптимизации CSS, перейдите в расширенные настройки поставьте галочку Inline All CSS и из исходного кода скопируйте код, которые между . После чего сгенерируйте критичный CSS на сайте https://jonassebastianohlsson.com/criticalpathcssg... и добавьте его в плагин autoptimize.
    Этим вы уберете проблемы:
    "удалить js & css код препятствующий отображению". Согласно оф. источнику сам fastest cache не убирает render blocking CSS из-за чего мы и используем autoptimize.
    https://www.wpfastestcache.com/premium/optimize-cs...
    P.S. У вас сейчас на сайте именно на это гугл и жалуется.
    2) оптимизируйте изображения. Рекомендую использовать EWWW Image Optimizer и если позволяют финансы, то берите премиум пакет, чтобы лучше оптимизировать. В противном случае, гугл все равно жалуется. Или же можете вручную сжать фотографии, предварительно скачав их на компьютер. Для ручного сжатия я использую jpegoptim & jpegtran
    Cсылка - https://sheensay.ru/optimization-png-jpg#kak-ustan...
    https://ruhighload.com/jpegoptim
    Достаточно оставить % сжатия 25-30%

    3) Если вы разместили счетчики и различные информеры и кнопки "поделиться", то чтобы гугл не жаловался можно подключать их локально. Так как гугл не рекомедует подключать скрипты локально, так как они могут устареть, то обязательно создайте Cron задачу и регулярно обновляйте эти файлы. Пример рнр скрипта, который регулярно обновляет js скрипты.
    В корне сайта создайте папку js & рнр файл со следующим содержимым. А далее по крону запускайте этот файл. Достаточно обновлять раз в неделю... Соответственно, все скрипты подключайте локально предварительно изменив js код
    <?php
    function downloadJs($file_url, $save_to)
    {
        $content = file_get_contents($file_url);
        file_put_contents($save_to, $content);
    }
    // Yandex Metrika
    downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath("./js") . '/watch.js');
    // Yandex Share
    downloadJs('https://yastatic.net/es5-shims/0.0.2/es5-shims.min.js', realpath("./js") . '/es5-shims.min.js');
    downloadJs('https://yastatic.net/share2/share.js', realpath("./js") . '/share.js');
    // Google Analytics
    downloadJs('https://www.google-analytics.com/analytics.js', realpath("./js") . '/analytics.js');
    // Googla Adsense
    downloadJs('http://pagead2.googlesyndication.com/pagead/show_ads.js', realpath(".js") . '/show_ads.js');
    downloadJs('https://pagead2.googlesyndication.com/pagead/osd.js', realpath("./js") . '/osd.js');
    downloadJs('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js', realpath("./js") . '/adsbygoogle.js');
    // VK
    downloadJs('http://vk.com/js/api/openapi.js?139', realpath("./js") . '/openapi.js');
    // Google Plus Widget
    downloadJs('https://apis.google.com/js/plusone.js', realpath("./js") . '/plusone.js');
    // Google Recaptcha
    downloadJs('https://www.google.com/recaptcha/api.js', realpath("./js") . '/api.js');
    downloadJs('https://www.google.com/recaptcha/api2/webworker.js', realpath("./js") . '/webworker.js');
    downloadJs('https://www.google.com/recaptcha/api.js', realpath("./js") . '/api.js');
    ?>

    4) Если на сайте ВП используете аватарки от gravatar, то закэшируйте их при помощи плагина FV Gravatar Cache или Harrys Gravatar Cache
    5) Если на сайте вы используете вставку картинок, которые добавляются извне, то плагин LH Cache Remote Images поможет вам их закэшировать и отдавать локально
    6) Если гугл жалуется на Query String from static resources, то установите плагин Remove Query Strings From Static Resources

    На самом деле многое из предложенного выше являются лишним и наверное не стоит гоняться за % оптимизации. У себя я использую плагин Fastest Cache & Fastest Cache Premium и все. Но иногда заказчики просят именно результата 100% и тогда приходится прибегнуть к вышеуказанным мерам.
    Ответ написан
    Комментировать
  • Скрыть блок через CSS только на одной страничке?

    SilenceOfWinter
    @SilenceOfWinter
    та еще зажигалка...
    можно так
    if (window.location.pathname = '/raschet_stoimosti/kuxni/') {
        $('#subtn_5799d0c5144db').hide();
    }

    можно использовать setTimeout и через пол секунды когда код добавления блока отработает делать с ним все что угодно.
    Ответ написан
    4 комментария
  • Как реализовать добавление поля при клике checkboxa?

    coolswood
    @coolswood
    https://coolswood.github.io
    Ответ написан
    Комментировать
  • Как удалить белую полоску справа в мобильной версии сайта?

    UnluckySerivelha
    @UnluckySerivelha
    Дело в этом свойстве:
    @media (max-width: 991px)
    .video-gradient-background {
        position: absolute;
        width: 120%;
        height: 70%;
        margin-left: -10%;
        background-color: #6f011c;
        margin-top: 6%;
    }

    Поменяйте ширину на 100% вместо 120
    Ответ написан
    2 комментария
  • Как поменять иконку через CSS?

    LenovoId
    @LenovoId
    svg, css,js
    Это не в css это в разметке делается ....конкретно для вашего случая et-social-instagram т.е нужно для li задать такой class вот так
    <li class="et-social-icon et-social-instagram"></li>
    Ответ написан
    6 комментариев
  • Как открыть лайтбокс на мобильном устройстве?

    Bobert88
    @Bobert88
    Vice President of Javascript, very important guy.
    Привет, посмотрел в custom.js файле и в функции pixflow_portfolioPopup проверяется, что ширина экрана не менее 1024 пикселей, прежде чем открывать попап.

    Чтобы попап заработал на мобильном, нужно поправить функцию вот так:

    function pixflow_portfolioPopup() {
        'use strict';
    
        $('body').on('click',".inside .item-wrap.portfolio-popup",function(e){
            var element= e.target || e.srcElement;
            if ((e.which != 2) ) { // <-- убрал проверку ширины экрана здесь.
                if (element.attributes.class.nodeValue.indexOf('icon') < 0) {
                    $.magnificPopup.open({
                        items: {
                            src: $(this).find(".item-image").attr('data-src')
                        },
                        overflowY:'scroll',
                        type: 'image',
                        closeOnContentClick: false,
                        closeBtnInside: false,
                        mainClass: 'mfp-with-zoom mfp-img-mobile',
                        callbacks: {
                            beforeOpen: function () {
                            },
                            afterClose: function () {
                                $("html").css({'overflow-y': 'auto'});
                            },
                        }
                    }, 0);
                }
            }
        });
        $('body').on('click', ".outside .item-image.portfolio-popup", function () {
             //убрал проверку ширины экрана здесь.
                $.magnificPopup.open({
                    items: {
                        src: $(this).attr('data-src')
                    },
                    overflowY:'scroll',
                    type: 'image',
                    closeOnContentClick: false,
                    closeBtnInside: false,
                    mainClass: 'mfp-with-zoom mfp-img-mobile',
                    callbacks: {
                        beforeOpen: function () {
                        },
                        afterClose: function () {
                            $("html").css({'overflow-y': 'auto'});
                        },
                    }
                }, 0);
        });
    }


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