• Сужаются icons при наведении мышки на меню (a:hover), как исправить?

    neuotq
    @neuotq
    Прокрастинация
    border - влияет на геометрию(ширину и высоту) элемента, поэтому чтобы убрать эффект вам нужно либо задать border у элемента изначально(без наведения), пусть будет прозрачным:
    #topmenu a {
    // ...
     border-left: 1px solid transparent;
     border-right: 1px solid transparent;
    }

    Либо заменить border на трюк с псевдоэлементами(before и after) задав им соответствующие дизайну стили, либо поиграться со свойством background.
    Ответ написан
    Комментировать
  • Кастомизация гугл карт?

    neuotq
    @neuotq
    Прокрастинация
    У гугл карт огромные возможности для кастомизации, легче всего уже брать готовые сделанные сборки, например здесь: https://snazzymaps.com/ , там же есть и конструктор.
    Ответ написан
  • Как выполнить JS код на странице PHP?

    neuotq
    @neuotq
    Прокрастинация
    Первое что нужно понять, где выполняется ваш js код.
    Если это бекенд и сервер, то php тут вообще не нужен, выполнять код на сервере будет например окружение nodejs или аналоги.
    Если в браузере, то сам код либо добавляете в структуру html документа(теги script ):
    <script>
    console.log('Привет я код на javascript');
    </script>

    либо кладёте в публично доступное место на сервере и подключаете как скрипт(мы подключаем из того места где и корень сервера):
    <script src="/myscript.js"></script>
    В форме в action пишут куда сам браузер сделает запрос(get или post) и обычно это бекенд(тот же php)
    Вам же, для обработки в браузере, нужно перехватывать отправку формы в самом js скрипте через событие
    Допустим у формы id='form'
    function formSubmit(event) {  
      event.preventDefault();
     console.log('Форму пытались отправить');
    }
    const form = document.getElementById('form');
    form.addEventListener('submit', formSubmit);

    Опять таки, могут быть нюансы, зависит от задачи и скрипта
    Ответ написан
  • Частичная прозрачность через css filter?

    neuotq
    @neuotq
    Прокрастинация
    Может сработать так:
    Общая идея - формы две, одна выше другая ниже фоток.
    Сделать например поместив фотки в один контейнер. И через (например через псевдо элементы, или напрямую) сделать две трапеции, одна выше с прозрачностью(я думаю можно подобрать чтобы поверху фоток было ок), а вторая ниже фоток, для насыщенности фона.
    Ответ написан
    Комментировать
  • Как кастомизировать компонент Vue из готового проекта?

    neuotq
    @neuotq
    Прокрастинация
    Не знаю. Это всё как то муторно.
    В данном случае у вас два варианта.
    Либо вы работаете с постановкой ТЗ создателям и все нововведения через них.
    Либо делаете копию основной части(страницы или родительские компоненты), а все вложенные компоненты это как бы ваша библиотека компонентов которую вы подключаете выходит.
    Таким образом при обновлении будет легче и вы делаете спокойно ваши изменения, считая их сборку как бы за образец.
    Ответ написан
    Комментировать
  • Переходить ли с windows 10 на linux?

    neuotq
    @neuotq
    Прокрастинация
    Скорее всего нет. сам браузер требует сегодня всё же 4+ оперативки. Это при активной работе, если несколько вкладок, тяжелые сайты и тп.
    Ну либо работать в одно окно. Те либо браузер с одинм-двумя вкладками. Нужен ворд, закрыл браузер и только там делаешь дела.
    Загрузка диска идёт из-за кешей/свопов, собственно основная причина мало оперативной памяти, а в купе с медленным диском это приводит к тормозам. Так что либо смягчить переходом на ssd либо добавить ОЗУ (а лучше ито и другое).
    Супер принципиальной разницы не будет между win и Linux в этом плане, так как сайты и движки браузера примерно те же, поэтому основной жрущий элемент останется. Можно конечно установить легковесную оболочку и тп. Но снова таки, при активной работе, множество вкладок будет тоже самое. Никуда от этого не деться.
    У вас сейчас сразу два бутылочных горлышка: озу впритык минимально необходимого и спермедленный жесткий диск.
    PS Защитник виндовс не сильно влияет на работу, я бы его не отключал.
    Ответ написан
    Комментировать
  • Надо ли конвертировать картинки в webp?

    neuotq
    @neuotq
    Прокрастинация
    Если у вас огромный трафик и стоит задача решить проблему снижения объемов то да. Нужно думать как генерировать webp, с учетом обратной совместимости и тп. Сейчас ему на смену готовится выйти еще больше оптимизированный AVIF(он на основе нового видео формата), который скорее всего его победит, как более универсальный и менее привязанный к Google.
    А так помним. Любая работа это деньги и время. Может вам лучше вложить это в другие, более важные для вашего проекта направления?
    Ответ написан
    Комментировать
  • Почему не запускается laravel 7 локально?

    neuotq
    @neuotq
    Прокрастинация
    У вас что-то с версией php, нужно чтобы была >= 7.2.5.
    Проверьте и в консоле php -v и в вашей сборке XAMPP с помощью phpinfo()
    Версия в консоли важна, так как от неё зависит исполнение команд, артизана и установки в целом.
    Ну а на а сервере, что очевидно, чтобы вообще приложение работало.
    Ответ написан
    Комментировать
  • Laravel 7.1 и Mongodb 4.2 как использовать?

    neuotq
    @neuotq
    Прокрастинация
    Всё хотят и работа активно ведётся, делают новую версию(без обратной совместимости).
    Поэтому ждать релиза и пока продакшн проекты не обновлять.
    А так, есть dev ветка, можно поучаствовать в тестах и экспериментах. Laravel 7 уже поддерживается.
    Вот можно и следить за реализацией фич.
    Ответ написан
    3 комментария
  • Стоит ли переходить на Percona server с MariaDB/MySQL?

    neuotq
    @neuotq
    Прокрастинация
    Вопрос не тривиальный и переход должен делать специалист.
    Выбор всего движа должен происходить в том числе из реалий вашего бизнеса/проекта, команды специалистов и прочего.
    Таким образом, если сейчас всё работает и устраивает и вы сами лично не видите плюсов/минусов, и даже не сильно разбираетесь в настройках, то я бы рекомендовал сосредоточится на улучшении, развитии других частей проекта, в которых вы в теме.
    А для переезда, масштабирования БД выделить бюджет на специалиста, когда бюджет появится. А так, работает не трогай, тк переезд это всегда подводные камни, время, нервы и возможные простои. Оно вам надо? Я думаю нет.
    Поэтому не спешите.
    И в первую очередь составьте список, лёгкое ТЗ, проблем и задач администрирования БД в вашем случае. Затем его можно наложить на ваш текущий движ, и может быть всё не так уж и плохо. И скорее всего, есть много инструментов облегчающих, автоматизирующих работу и в MariaDB.
    А может вам вообще в самом sql функций не хватает, может вам нужен PostgreSQL?
    Нет, так дела не делаются, вопрос побольшому счёт вообще бессмысленный, разве что в комменты вы ждете любителей холиваров ради холиваров.
    Ответ написан
    1 комментарий
  • Как получить значения внутри sizes?

    neuotq
    @neuotq
    Прокрастинация
    У вас json поломанный, там лишнее кавычки вокруг квадратных скобок, в результате внутри photo не набор данных, а строка.
    $json = '{"photo": [ {"markers_restarted":true,"photo":"89f6559651:x","sizes":[["s",858136244,"195d27","LUU541je04g",75,28],["m",858136244,"195d28","5X0nTDYfROQ",130,48],["x",858136244,"195d29","8d1U8WuXDBo",604,225],["o",858136244,"195d2a","Yq9fT1Ueo3A",130,87],["p",858136244,"195d2b","3AiiPHulyak",200,133],["q",858136244,"195d2c","x-B5oe9Myhc",320,213],["r",858136244,"195d2d","RwVnagzyMgo",510,225]],"latitude":0,"longitude":0,"kid":"442decc8b415ad1496eee074ff555262","urls":["v858136244/195d27/LUU541je04g.jpg","v858136244/195d28/5X0nTDYfROQ.jpg","v858136244/195d29/8d1U8WuXDBo.jpg","v858136244/195d2a/Yq9fT1Ueo3A.jpg","v858136244/195d2b/3AiiPHulyak.jpg","v858136244/195d2c/x-B5oe9Myhc.jpg","v858136244/195d2d/RwVnagzyMgo.jpg"]}]}';
    
    $json_decoded = json_decode($json, TRUE);
    
    print_r($json_decoded['photo'][0]['sizes']);
    Ответ написан
    Комментировать
  • Как вывести "новую" переменную?

    neuotq
    @neuotq
    Прокрастинация
    Есть простой вариант, легче вам будет сделать так:
    в моделе User
    /**
     *  Получаем читаемую дату.
     *
     * @return string
     */
    public function getHumanDateAttribute()
    {
      //Таймзону лучше брать из настроек приложение, а не хардкод
      $timezone = config('app.timezone');
       return  Carbon::parse($this->created_at, $timezone)->isoFormat('Do MMMM YYYY');
    }


    Ну и потом в коде или в шаблонах вызываешь
    $user->human_date;
    Если делаешь сериализацию в json и нужно чтобы этот атрибут был и там, то в моделе добавляешь:
    /**
         * The accessors to append to the model's array form.
         *
         * @var array
         */
        protected $appends = ['human_date'];
    Ответ написан
  • Редизайн/концепция и авторское право?

    neuotq
    @neuotq
    Прокрастинация
    Всё норм. Незаконно: если ты сделал сайт копию зары, и продаешь с него одежду притворясь брендом Зары, а на самом деле делая подделку.
    Незаконно если ты сделал копию Нью-Йорк Тайм, и делаешь сайт, притворяясь ими.
    А так, это лишь фантазия, опыты, практика. Если нет прямого оскорбления, клеветы и тп, можно экспериментировать и выставлять что угодно. Иначе бы даже любое обсуждение брендов, и упоминание вслух было бы незаконно.
    Короче говоря не путайте.
    Максимум к чему могут напрямую придраться, это например к использованию фото/видео материалов. Но снова таки, здесь они тоже как поддержка оригинального бренда, нет особых проблем, тк бренду, обычно, это не выгодно.
    Хотя, есть случаи с Нинтендо, которая в свое время(и вроде и сейчас?) неадекватно относилась к стримерам игр на ютубе. В результате обзоров и летсплеев было ничтожно мало, везде приходила Нинтендо со своим копирайтом.
    В общем резюме:
    Делать свои версии: абсолютно обычная практика, все это делают, почти всегда бренд на это никак не реагирует (кроме случаев отрицательного пиара). Могут попросить удалить/заменить копирайченное фото/видео. Но обычно, на подобных площадках, это не делается.
    Конечно, если это коммерческий сайт и тп. И хочется пофантазировать на счёт своего виденье бренда(в корп блоге дизайн студии например), то асеты использовать свои, либо брать по лицензии.
    Ответ написан
    3 комментария
  • Какие актуальные книги есть по веб-разработке(или старые но информативные).И что читать(по вебу) в 2020?

    neuotq
    @neuotq
    Прокрастинация
    Начните с
    Идеальный программист. Как стать профессионалом разработки ПО, Роберт Мартин
    Не заставляйте меня думать. Веб-юзабилити и здравый смысл, Стив Круг .
    Это вне контекста веб, не веб. Но сильно поможет выстроить мозги и понять цели задачи. Не становясь обычным отрешенном условным скрипт-кидди
    Ответ написан
    Комментировать
  • Почему не работает array_uintersect?

    neuotq
    @neuotq
    Прокрастинация
    А зачем в вашем колбеке обращаетесь по ключам? нужо тогда так:
    function keyCompareFunc($key1, $key2) {       
            return strcasecmp($key1,$key2);
    }
    Ответ написан
  • Стоит ли использовать Laravel Airlock или можно не парится и использовать Passport?

    neuotq
    @neuotq
    Прокрастинация
    Если для вашхи задач Passport подходит, всё хорошо, оставайтесь на нём. Это правило касается любых решений и технологий. Более того, сам Passport не устарел, это официальный OAuth2 пакет от команды.
    Airlock же проще, использует другой подход для аутентификации, более легковесный, но закрывающй большинство задач стоящих перед "как нам проверить что за зверь стучится в API/от SPA".
    Вообще это тема отдельной статьи и они даже есть в инете, но грубо говоря Passport > Airlock , потому как из Airlock убрали все сложности Oauth
    Ответ написан
    Комментировать
  • Как убрать накопление данных во втором select`e при выборе значения из первого?

    neuotq
    @neuotq
    Прокрастинация
    Добавьте строчку

    $(document).on('change','#direct',function(){
      let id = document.getElementById("direct").value;
    
        $.getJSON("ajax", {id}, function (data) {
        	$("#modules").html('');
            $.each(data, function (index, item) {
          		$("#modules").append('<option value ="'+item.ID+'">'+item.NAME+'</option>');
        	});
        });
    });

    Ну и чтобы уменьшить обращения к DOM дереву, элемент #modules можно тоже скешировать.

    $(document).on('change','#direct',function(){
      let id = document.getElementById("direct").value; // Возможно тут вам тоже не нужен let? мб const
     const modulesEl = $("#modules");
    
        $.getJSON("ajax", {id}, function (data) {
        	modulesEl.html('');
            $.each(data, function (index, item) {
          		modulesEl.append('<option value ="'+item.ID+'">'+item.NAME+'</option>');
        	});
        });
    });
    Ответ написан
  • Как сделать, чтобы открывался сайт, а не ссылка?

    neuotq
    @neuotq
    Прокрастинация
    Тут не в ларавел дело, а в принципе работы тега a И его параметра href.
    Если вы не указывайте протокол, полный и понятный/известный пусть для бразуера, он будет считать что вы указали относительный путь.
    Поэтому добавляйте http:// или https:// и всё будет работать.
    Ответ написан
  • Почему длительность сеанса меньше чем длительность просмотра страницы?

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

    neuotq
    @neuotq
    Прокрастинация
    Нет, автоинкремент точно нет. Но если бизнес логика требует, можно сделать +1 к максимальному значению при создании нового, как пример.
    А так, для сортировки по умолчанию у тебя уже есть id, так что по нему и будет сортировка идти, при прочих равных (ну если у всех 0).
    Кстати, совутю поставить пакет spatie/eloquent-sortable, они сделали реализацию большей части нужной логики для сортировок, поэтому тебе только в нужных местах прописать вызов методов, поведение по умолчанию(можно использовать query scope), ну и запрос с фронта. И всё волшебно будет работать. Тебе схему и БД менять не нужно, только установить пакет и сделать соответвующие правки в код.
    Ответ написан
    2 комментария