Задать вопрос
  • Как получить полный адрес поста и добавить его в базу?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нет, нельзя получить idшник поста, еще до того, ка пост был создан.

    В данном случае сама задача получения "полного адреса поста" абсолютно бессмысленная.
    Мало того что ссылка может со временем поменяться - например вместо ламерского протокола http будет настроен нормальный https - но, главное, это сама по себе бессмысленная операция - сохранять те данные, которые уже есть в базе. То есть этот урл легко генерируется при получении данных из базы.

    Непонятно только, почему в коде отсутствует сохранение ид юзера.
    Ответ написан
    2 комментария
  • Какие файлы и папки проекта заливать на GitHub?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Вопрос даже не столько про GitHub, сколько про систему контроля версий. Что в нее должно попадать, а что - нет. По идее там должны быть все текстовые файлы, которые мы правим руками, и все, что нужно для сборки проекта. Чтобы можно было себе репозиторий склонировать, нажать кнопочку, и все недостающее собралось.

    Если по типам файлов:
    • Исходники с вашим кодом - однозначно да. Это самое главное.
    • Все конфиги для сборки - да. Иначе без них проект не собрать. Исключение - какие-то ситуативно-локальные конфиги с ключами, паролями, и всем тем, что не должно попасть к другим людям. Но тогда это нужно описать в доках, что и где должно быть.
    • Картинки - зависит от. SVG - скорее да, т.к. это текст. Растровые, особенно большие, может быть стоит хранить отдельно. Но это зависит от проекта и соглашений, главное избегать крайностей, чтобы репозиторий с лендингом не весил по пол гигабайта из-за исходников картинок или макетов. И это к любым бинарникам имеет отношение.
    • node_modules - нет. Зависимости и зависимости зависимостей - это обычно тысячи файлов, которые вы никогда (ну почти никогда) не будете править своими руками. Они могут скачиваться при сборке проекта, в репозитории им делать нечего.
    • Собранный и минифицированный проект - может быть. Зависит от применения. Обычно это не нужно хранить в системе контроля версий в том смысле, что минифицированные файлы мы все равно получаем при сборке и руками их не правим. Но иногда могут возникать ситуации вроде "хочу использовать репозиторий на GitHub как зеркало для моего NPM пакета" или "хочу захостить что-то на GitHub Pages", или "хочу, чтобы любая домохозяйка могла скопировать мой скрипт в свой бложик на wordpress и не парилась со сборкой", или еще что-то в этом духе. Иными словами, минифицированные файлы могут туда попасть, если вы понимаете, зачем это вам, какую задачу это решит. В общем случае пользы от этого никакой.
    Ответ написан
    Комментировать
  • Какой вид лучше придать ссылкам на сайте для СЕО? Лучше использовать кириллицу, транслит или английский язык?

    @archelon
    Кириллицу лучше не использовать. Особого вреда нет, но и пользы никакой: Кириллица в URL — полезно ли для SEO?
    Из приведенных вариантов лучше:
    mysite.com/service/alarm-installation или mysite.com/uslugi/ustanovka-signalizacii
    при условии, что страница service или, соответственно, uslugi существует.
    Если в структуре сайта вложенности нет, то mysite.com/service-alarm-installation
    Транслит или перевод — дело вкуса.
    Ответ написан
    Комментировать
  • Как реализовать такой слайдер на GSAP?

    profesor08
    @profesor08 Куратор тега JavaScript
    gsap это библиотека для анимации циферок. Не самая лучшая, не самая легкая, не самая бесплатная.

    Лично меня заинтересовала https://animejs.com/

    Что касается твоей задачи, не понятно в чем проблема? Тебе надо сверстать сначала все. Потом инициализируешь scrollmagic и добавляешь нужные блоки к сцене, указываешь когда и сколько их показывать. Если хочешь что-то делать с блоком, менять картинки например, то подписываешься на события от scrollmagic и делаешь что надо основываясь на значении прокрутки.
    Ответ написан
    Комментировать
  • Как сделать так чтобы при нажатии кнопки добавлялось значение ?sort=p.price&order=DESC в конец строки?

    Seasle
    @Seasle Куратор тега JavaScript
    Как вариант:
    const toggleOrder = () => {
      const params = new URLSearchParams(window.location.search);
    
      params.set('order', params.get('order') === 'DESC' ? 'ASC' : 'DESC');
      window.location.search = params.toString();
    };

    Пример. Код.
    Ответ написан
    Комментировать
  • Должен ли front-end уметь верстать?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    Фронт это всё, что видит пользователь. В том числе и вёрстка. В принципе не очень ясно, как можно адекватно заниматься фронтом, если не понимаешь, а с чем вообще имеешь дело. Куда вставляются данные, как они будут отображаться и так далее.

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

    delphinpro
    @delphinpro
    frontend developer
    Такие вещи как корзина нужно согласовывать с бэкэнд-программистом. У него может быть CMS c готовым модулем, который вам нужно перестилизовать. А может он любую разметку прикрутить готов.
    Удаление товара может быть реализовано как с перезагрузкой страницы. так и аякс-запросом. Это тоже нужно уточнять.
    Для подсчета стоимости вам нужны данные — цена и количество, и возможно скидки. Также нужно согласовать, каким образом вы будете получать эти данные, в дата-атрибутах, отдельным объектом на странице или аякс запросом.

    А может от вас просто требуется статичная верстка. =))
    В общем, не по адресу вопрос задаете. Обговаривайте это с заказчиком или коллегами.
    Ответ написан
    3 комментария
  • Как мне провалидировать массив?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Коротко:

    const isValid = arr =>
      arr.every(n => Object.values(n).every(m => !m.isRequired || m.value));

    Длинно:

    function isValid(arr) {
      for (const n of arr) {
        for (const k in n) {
          if (n.hasOwnProperty(k) && n[k].isRequired && !n[k].value) {
            return false;
          }
        }
      }
    
      return true;
    }
    Ответ написан
    Комментировать
  • Чем классы отличаются от функций в python?

    @kisaa
    Это вам надо основы объектно-ориентированного программирования (ООП) почитать (вообще, и применительно к Питону - в частности):
    https://it-black.ru/osnovy-oop/
    https://proglib.io/p/python-oop/
    https://python-scripts.com/object-oriented-program...
    Ответ написан
    Комментировать
  • Какие есть способы восстановить пароль из хеша?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    из хеша НЕВОЗМОЖНО восстановить пароль. Почитайте смысл хеширования.
    Можно только подобрать.
    Подобрать можно по словарю, брутфорсом и радужными таблицами.
    Ответ написан
    5 комментариев
  • Как сделать картинку героя поверх других слоёв, без использования absolute?

    RomanTRS
    @RomanTRS
    Не совсем понятно, чем не устраивает position: absolute
    "Герой" — это отдельный элемент. Соответственно разместить его поверх других элементов, кроме как через absolute невозможно!
    Даже с использованием JS или JQ, под капотом все равно будет тот же absolute.

    Если смущает выпадание элемента из родителя, то используйте overflow: hidden

    .block {
      position: relative;
      overflow: hidden;
    }
    .block__hero {
      position: absolute;
    }


    Ах да! Еще можно использовать множественные фоны:
    .block {
      background-image: url(hero.jpg), url(bg.jpg);
    }
    Ответ написан
    Комментировать
  • Можно ли с локального node js подключиться к MySQL на сервере?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Если порт сервера открыт и в базе разрешено подключение для этого хоста и пользователя то да. Это кстати не рекомендуется. Другой путь это туннелирование через ssh это чуть сложнее но действует везде
    Ответ написан
    1 комментарий
  • Как подлючить второй монитор, без встроенной графики?

    @lonelymyp
    Хочу вылезти из минуса по карме.
    Нет встроенного - подключай к дискретному адаптеру, На дискретном нехватает разъёмов - меняй видуокарту или покапай ещё одну видеокарту и включай в неё.
    Ответ написан
    Комментировать
  • Некорректно отображается шрифт в bold на сайте, как поправить?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    100% уверен, что у вашего шрифта отсутствуют жирное и курсивное начертание и поэтому каждый раз, когда вы задаете любому тексту с данным шрифтом свойство font-weight: bold, браузер самостоятельно создает это начертание и вот тут возможны такие "ляпы".
    Варианты такие:
    1. Использовать другой шрифт
    2. Поискать этот шрифт в начертании bold и определить его в font-face
    3. Использовать только normal начертание с этим шрифтом на сайте
    Ответ написан
    2 комментария
  • Как использовать скрипт nodejs на сервере с laravel?

    darakanoit
    @darakanoit
    У Вас должен быть поднят отдельный сервис\микросервис, который будет связан с laravel по http\либо чем-то ещё. В рамках одного проекта(laravel +node.js) вы не сможете их совместить как 2 разных ЯП, который должны крутиться на серверной стороне. У Вас размыта грань js на сервере и на клиенте.
    Ответ написан
    1 комментарий
  • Как можно объяснить подобное поведение песевдо-элемента :after?

    Lynn
    @Lynn
    nginx, js, css
    Судя по тому, что картинка которая должна быть шириной не более 446px на вашем скриншоте имеет ширину 557px где-то выставлен масштаб 125%

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

    Так же в хроме можно поменять дефолтный масштаб со 100% на другое значение. Это тоже строит проверить в настройках хрома (открыть chrome://settings и поискать слова zoom/масштаб)
    Ответ написан
    Комментировать
  • Возможен ли парсинг на GPU?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Очень зависит от задачи, вероятно нет, потому что парсинг обрабатывает данные одномерно и часто возвращается назад. Кроме того, это задача с низкой локальностью данных, а значит, много времени будет уходить на пересылки.

    GPU быстро работает тогда, когда нужно перемолоть много данных с минимумом ветвелений. Парсинг этому противоположен по структуре алгоритма.
    Ответ написан
    Комментировать
  • Объясните, плиз зачем нужен react и vue?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Ну раз вам проще сделать $('h1').text('hello world') чем this.title = 'hello world', то продолжайте манипулировать DOM-ом. Вы пока не доросли до фронтенд фреймворков.
    Ответ написан
    Комментировать
  • Объясните, плиз зачем нужен react и vue?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Когда-то я писал на PHP. Писал много. Сначала это было месиво из кода на PHP и HTML, потом появились всякие шаблонизаторы, стало чуть чище.
    Проекты росли, кода становилось все больше и хотелось некоторые кусочки переиспользовать. Так я пришел к управлению кодом через Composer.
    На каком-то этапе разработки я столкнулся с тем, что у меня было 2 разных веб-интерфейса делающих одно и то же. Вдобавок нужно было часть данных отдавать в систему логистики. Причем это должно было быть автоматизировано. Тогда я уже знал, что есть такая штука - автоматизированные программные интерфейсы (API).
    Наскоро было что-то написано и оно заработало. По итогу, оба веб-интерфейса и система логистики использовали одни и теже функции. Но поддерживать 2 разных интерфейса было очень геморно. В те времены был jQuery самым главным. Очень сложно было добиться правильного отображения, посколько Javascript код был в перемешку с HTML, часть которого генерировалась из PHP. Возникали ошибки. Данных было много, разных скриптов было много (сотни), части скриптов были копиями друг друга с небольшими отклонениями. По итогу, на решение простых задач вроде редактирования строчки в таблице с обновлением на сервере уходило много времени, дни, иногда даже недели.
    Потом я увидел Mustache.js, это был предок Ангуляра и Реакта. Что-то вроде шаблонизатора, но только на стороне клиента. Работало оно только в одну сторону, отображало данные в HTML, но потом была та же жесть из jQuery.
    Затем я познакомился с Angular1. Идея была простая - пишешь шаблон, подставляешь в него данных. Оно отображается, само! Никаких тебе извращений, найди класс или идентификатор, или еще какая-нибудь ерунда.
    Кодить стало проще. Стало можно создавать библиотеки компонентов и просто редактировать стили. Можно было сделать компонент для ввода и проверки почты, и использовать его сразу во всех проектах и исправлять ошибки в одном месте, а не бегать по сотням скриптов и искать в каждом этот повторяющийся косяк.
    Поначалу я тоже относился к Ангуляру с предубеждением, столько траблов, стоят ли они того. Но как только я стал чаще сталкиваться с задачами, когда мне понадобились разные интерфейсы для отображения одних и тех же данных, это стало сходить на нет.
    Пока вы пилите простые штуки, всякие фреймворки вам не втарахтели. Даже jQuery не нужен. Но иногда начинается жопа, когда одному уже проект не вытащить, ибо охеренеть, как сложно, а еще и делать надо быстро. Поэтому лучше разделиться, кто-то делает бэкенд, кто-то фронт. Так просто удобнее, а общаться через API. Вначале вы вместе просто пишите спецификацию для API, это занимает день или два. А потом вы бомбите месяц в параллель. Причем фишка такого подхода в том, что есть инструменты, которые просто выдают заглушки для кода на фронте. Т.е. если фронт пишется быстрее, то его проще тестить и все такое. Аналогично с бэкендом. Его тоже можно тестить даже если фронт не готов. Причем эти все фишки особенно круты, когда вас не двое, а например 20, да и живете вы по всему миру в разных часовых поясах и т.д.
    Ответ написан
    1 комментарий
  • Объясните, плиз зачем нужен react и vue?

    Kozack
    @Kozack Куратор тега Vue.js
    Thinking about a11y
    Уже задавали этот вопрос не раз и не два. Правильный ответ один: если вы не понимаете зачем это вам нужно, значит оно вам и не нужно.

    Инструменты создаются, чтобы решать определённые проблемы. Если вы с этими проблемами не сталкивались, то и понять смысла инструментов не сможете.

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

    UPD:
    вопрос был о практической легкости внесения изменений.


    martin_eden_msk, Вот, набросал простенькую демку:


    Поклацайте, попробуйте повносить изменения.

    Обратите, внимание, здесь нет ни файлов-шаблонов, ни jsx, ни препроцессоров, ни webpack, ни чего-то ещё. Этот код можно просто вставить в любой документ, хоть в сайт на php и он будет работать.

    Я даже больше скажу, многие воспринимают Vue, как маленький, простенький фреймворк, для написания таких вот сложных виджетов, которые потом будут интегрированы в сайт написанный на чем-то ещё.
    Ответ написан