• Как обойти anti-adblock на qaru.site?

    neuotq
    @neuotq
    Прокрастинация
    Как временное решение можешь в консоли разработчика (Ctrl - Shift - J в хроме) в браузере написать:
    $('.desc').parent().removeClass();
    Это удалит класс, который они добавляют для того чтобы перевернуть вид всех элементов.
    Ответ написан
    Комментировать
  • Почему передаётся пустой объект после изменения адреса роута?

    neuotq
    @neuotq
    Прокрастинация
    Все просто, ресурсный контроллеры создают роуты с переда автоматически на основе базового имени роута, таким образом у вас теперь:
    Route::resource('/blog', 'NewsController'); и таким образом ваш ресурсный контроллер ожидает переменную одну, а получает другую. Вообще у тебя должны быть написано Route::resource('blogs', 'NewsController'); и таким образом в параметры уйдет переменная blog с объектом. Но так как метод у тебя уже написан $news (да не удачно, как же единственное число, хех. Впрочем сам я такое попадался).
    Так, короче говоря в web :
    Route::resource('blog', 'NewsController')->parameters([
        'blog' => 'news'
    ]);

    Ну и в параметрах методов контроллера замени везде "$id" на "News $news", хотя в целом у тебя уже не ресурсный контроллер, например метод store. Так что возможно тебе лучше расписать все в ручную. В целом изначально ресурсные контроллеры подходя либо под api логику работы, когда ты имеешь дело с Моделью/Сущностью как с ресурсом и тебе нужны стандартные методы, либо многие используют в своих CRUD логиках, но опят таки только если логика без дополнительных усложнений и переплетений как у тебя. Де факто у тебя не ресурсный контроллер и я настоятельно рекомендую расписать его в ручную.
    PS еще для отладки роутов отлично подходит команда php artisan route:list будет видны все роуты которые ларавел генерирует, с соответствующими параметрами переменными.
    Ответ написан
    1 комментарий
  • Как из ларавел выкидывать логи например на почту, телеграмм?

    neuotq
    @neuotq
    Прокрастинация
    На самом деле все просто, если почитать документацию, можно узнать про клевый класс App\Exceptions\Handler , который обрабатывает исключения, тебе нужен его метод report, который ты можешь переопределить и написать свою логику.
    Вот даже легко гуглится пример с отправкой имейла (человек даже свой пакет сделал https://github.com/squareboat/sneaker ).
    Короче говоря сюда, и вперед творить волшебство:
    5b7bb11abd163261551026.png
    Ответ написан
  • Как такое сделать адаптивно?

    neuotq
    @neuotq
    Прокрастинация
    Все просто
    1) Адаптивный: левую боковую панель "Розовый фильтр, смайлики и комментарии" прячешь через media queries , с помощью их же показываешь эти же подписи внутри "таблицы" (ну да, будет дубляж в тексте, но кому сейчас легко), далее через js определяешь что мы на мобильном и инициализируешь карусель.
    Ну и да верстать это нужно будет не на таблицах, а наверное на флексе.
    2) Практически аналогичен первому, только проверку на мобильность делаем на стороне сервера, и он подгружает соответствующий компонент шаблона, которые подходит устройству пользователя.
    Ответ написан
    Комментировать
  • Что делают? и: в php и js?

    neuotq
    @neuotq
    Прокрастинация
    'Если это правда' ? 'Вернуть это' : 'Иначе вернуть это'
    Ответ написан
    Комментировать
  • Некорректный выбор языковой версии результатов поиска?

    neuotq
    @neuotq
    Прокрастинация
    У вас в форме поиска жестко прописан адрес для запроса, action="https://oliver-posud.com.ua/" поэтому и выходит что поисковый запрос идет на украинскую версию.
    Короче говоря нужно исправить шаблон формы чтобы она учитывая выбранный язык.
    Ответ написан
    5 комментариев
  • Редирект на мобильную версию сайта?

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

    neuotq
    @neuotq
    Прокрастинация
    У вас на сайте захардожены ссылкси с http:// поэтому каждый раз используется редирект. Короче говоря проведите ревизию и справьте все ссылки, а лучше чтобы это делал движок который верно генерирует их.
    Ответ написан
  • Можно ли при миграции передать функцию БД?

    neuotq
    @neuotq
    Прокрастинация
    Так не выйдет.
    У вас варианты либо используя события модели (creating) и писать всю логику в php, либо реализовать это в триггере в PostgreSQL который будет срабатывать при создании новой записи.
    Ответ написан
  • Какой плагин для Lazyload вы используете?

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

    neuotq
    @neuotq
    Прокрастинация
    Не морочьте себе голову берите из проверенных решений, например у Bootstrap так :
    // Extra small devices (portrait phones, less than 576px)
    // No media query for `xs` since this is the default in Bootstrap
    
    // Small devices (landscape phones, 576px and up)
    @media (min-width: 576px) { ... }
    
    // Medium devices (tablets, 768px and up)
    @media (min-width: 768px) { ... }
    
    // Large devices (desktops, 992px and up)
    @media (min-width: 992px) { ... }
    
    // Extra large devices (large desktops, 1200px and up)
    @media (min-width: 1200px) { ... }

    Или в обратном порядке (указанный размер либо меньше):
    // Extra small devices (portrait phones, less than 576px)
    @media (max-width: 575.98px) { ... }
    
    // Small devices (landscape phones, less than 768px)
    @media (max-width: 767.98px) { ... }
    
    // Medium devices (tablets, less than 992px)
    @media (max-width: 991.98px) { ... }
    
    // Large devices (desktops, less than 1200px)
    @media (max-width: 1199.98px) { ... }
    
    // Extra large devices (large desktops)
    // No media query since the extra-large breakpoint has no upper bound on its width
    Ответ написан
    Комментировать
  • Как в Laravel Mix объединить mix.scripts([]) c mix.js() и mix.styles([]) c mix..sass() d 2 файла?

    neuotq
    @neuotq
    Прокрастинация
    Есть два метода для этих целей: combine и minify.
    Но если с css это еще относительно безопасно использоваться, то с js все же либо отдельно те библиотеки пусть будут отдельно, либо завернуть все разруливание в resources/assets/js/app.js те пусть этим занимается сборщик и запаковывает все по уму, с более высоким шансом поимать конфликты раньше, хотя снова таки, нужно исходить из кода вашего проекта в целом.
    Ответ написан
    1 комментарий
  • Как научится понимать Bitrix за один вечер?

    neuotq
    @neuotq
    Прокрастинация
    Перво наперво настойчиво рекомендую сообщить об этом заказчику, саму верстку выполнить в полном объеме согласно принятому описанию заказа, а далее предложить варианты заказчику. Либо вы заканчиваете полностью просто верстку статичных html для последующей интеграцией специалиста по bitrix в саму систему, либо вы сами берете на себя эти доработки но с условиями расширения времени заказа (и может быть оплаты).
    Вашей вины в том что заказчик полностью не описал задачу нет, но и самого заказчика конечно же полностью в этом винить нельзя и будет по честному для заказчика как можно быстрее ему сообщить о проблеме и наиболее легкие пути выхода для всех сторон.
    Если там человек адекватный, он оценит честность и думает пойдет вас на встречу если вы аргументировано обоснуете иные сроки или иные условия выполнения заказа.
    Ну и в крайнем случае можно закрыть заказ по согласовыванию сторон, если же он подаст жалобу, то у вас тоже есть право жаловаться на условия ТЗ, в которых не было раскрыта истинная сложность задания.
    И еще раз повторю, я настоятельно рекомендую быть прежде всего честным с заказчиком, а не стараться сделать то что у вас очень может быть не получится и таким образом неожиданно для заказчика сорвать сроки/качество продукта. Поэтому лучше как можно раньше предупредить, чтобы человек тоже скорректировал свои планы и оценил вашу честность.
    Ответ написан
    Комментировать
  • Редирект после отправки письма с конкретной формы?

    neuotq
    @neuotq
    Прокрастинация
    Http-редирект реализуется так:
    window.location.replace("https://ya.ru");
    Поэтому пиши все свои обработчики, проверки и тп, а затем перенаправляй на нужно тебе страницу.
    Ответ написан
  • Выбор cms для заметок сис.админа?

    neuotq
    @neuotq
    Прокрастинация
    Я вам советую завести на git и хостить(можно к примеру gitlab у них есть бесплатные приватные репозитории ), а можно и не хостить. А сами заметки/блог вести в Markdown. Markdown имеет простейший и удобный синтаксис + есть огромное количество бесплатных редакторов.
    Таким образом вы получите портируемую, слабо от чего-либо зависящую систему удобных заметок с историей изменений добавлений.
    Ответ написан
    Комментировать
  • Не могу получить данные кнопки через ajax, как получить?

    neuotq
    @neuotq
    Прокрастинация
    Значение кнопки игнорируется так как вы нестандартным путем передаете форму , в качестве решения можете попробовать проверить:
    for (var value of formData.values()) {
       console.log(value); 
    }

    Как быть?
    Создать скрытый инпут, и в момент нажатия кнопки давать этому инпуту её(кнопки) значение, после этого формировать formData и отправлять все на сервер.
    Либо уже сам formData дополнять необходимым значением:
    formData.append(btnName,btnValue);

    Пример здесь.
    Ответ написан
  • Функция не реагирует на параметр, в чем ошибка?

    neuotq
    @neuotq
    Прокрастинация
    Итак ваша функция началась.
    Что-то случилось вначале. потом switch с переменной $hms, допустим в переменной значение "hms" и сработало первое условие. оно выполнилось, НО тут засада, нет break;, поэтому выполнение кода продолжается дальше. и выполняется дальнейшая проверка условий, но так как их нет, срабатывает default.
    Короче, добавите break;
    Ответ написан
    1 комментарий
  • Как в PHP наложить текст с CSS стилем на картинку?

    neuotq
    @neuotq
    Прокрастинация
    Нет, это делается не таким образом.
    Работа с изображениями в php через специальный библиотеки GD/ImageMagick.
    Но чтобы не возиться самому с велосипедо строением, лучше уже использовать готовые обертки.
    Я советую image.intervention.io, у них отличная документация, широкие возможности по манипуляциям с изображениям, фильтры, кропы, эффекты и тд и тп. В том числе и работа с текстом, поддержка шрифтов.
    Если уж хочется именно css/html шаблоны, то есть библиотека https://github.com/niklasvh/html2canvas , но тут уже вам стоит разделить логику и отображение. Мы у себя успешно использовали эту библиотеку для реализации генерации баннеров автоматически под нужный размер, используя адаптивную верстку. Сама библиотека не идеал, на практике бывают всплывают косяки и проблемы, но думаю для вашей задачи более чем подойдет.
    Ответ написан
    1 комментарий
  • Как в laravel добавить в выборку данные метода?

    neuotq
    @neuotq
    Прокрастинация
    Ответ на основе обновленных данных
    Где-то в модели Product (обновил добавил проверку)
    protected $appends = ['prev_product_json'];
    
     public function getPrevProductJsonAttribute()
    	{	    
    	    $product = Product::where('id', '<', $this->id)->first() ?? Product::where('id', '>', $this->id)->first();
    	    return isset($product) ?  $product->toJson() : NULL;
    	}

    Ну и после этого где нужно:
    $product = Product::find(2);
    dd($product->prev_product_json);

    PS только сразу подумайте, возможно вам нужно прошерстить поля и создать список полей которые не стоит выводить в json , тогда в моделе делаем protected $hidden = ['field_name'];
    Ответ написан
    2 комментария
  • Вертикальное выравнивание в Bootstrap 4?

    neuotq
    @neuotq
    Прокрастинация
    Вот сверстал пример.
    Суть:
    Левой колонке делаешь направление флекса - колонкой класс хелпер d-flex flex-column
    Инпут у тебя в свое обертке, а блоку который должен быть по центру делаешь вертикальные марджины - авто: my-auto, таким образом он будет пытаться занять центральную позицию.
    Ответ написан
    1 комментарий