• Как быстро создавать типовые сайты на Laravel?

    parotikov
    @parotikov
    Wordpress, Laravel, OctoberCMS, Vue, Nuxt.js
    Попробуйте October CMS. Это поверх Лары работает. Удивлен, что вы не погуглили laravel + cms.
    Ваш функционал выносится в плагины, которые модульны, независимы и переносимы (пространства имен, миграции, все дела)
    Вся рутина автоматизирована. Типовой функционал сделан в виде плагинов в маркетплейсе (мультиязычность, форма контактов). На новый функционал (типа новости, галерея, CRUD) уходит от 10 минут.

    Вот здесь я уже отвечал на похожий вопрос:
    OctoberCMS — Годится ли как основа для web-студии?
    https://vk.com/laravel_rus?w=wall-53758340_33047
    Ответ написан
    Комментировать
  • Как бы вы реализовали такой блок с языками?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Ответ написан
    Комментировать
  • Можно ли узнать по каким товарам пришли изменения из 1с на сайт?

    ArtamonovDenis
    @ArtamonovDenis
    Full-stack developer
    Плюс, к предыдущем ответу:
    1. Например, поставить в 1С галочку - Хранить файлы выгрузки на сервере
    2. Например, повесить свою функцию-обработчик на событие "После обмена с 1С" и логировать, как удобно
    3. Например, можно посмотреть на стороне 1С, еще до выгрузки на сайт, какие объекты зарегистрированы в журнале регистрации
    Ответ написан
    1 комментарий
  • Как определить что текст не помещается в input?

    Rastishka
    @Rastishka
    Никак.
    Можно только на js определять длину текста, и в зависимости от этого навешивать класс разрешающий показывать подсказку.
    function getWidthOfText(txt){
      var c=document.createElement('canvas');
      var ctx=c.getContext('2d');
      ctx.font = '16px arial';
      var length = ctx.measureText(txt).width;
      return txt + ' ' + Math.round(length);
    }
    Ответ написан
    Комментировать
  • Как аргументировать начальству создание существующего проекта заново, с ноля?

    yurakostin
    @yurakostin
    Front-end developer
    Умные люди уже написали всё, что хотел написать я, но вставлю свои пять копеек, уж извините.

    Я очень хорошо знаком с этой болью. И раньше тоже(на прошлых местах работы) неоднократно заводил разговор о том, что нужно всё переписывать. Молодо - зелено.

    Бизнесу действительно не выгодно тратить любого вида ресурсы(время, деньги) на переписывание с нуля.
    Здесь бизнес следует правилу, которое мы - разработчики периодически забываем "работает - не трогай".

    Другое дело, что мы, в отличие от бизнеса, понимаем, что ещё немного и кодовую базу будет невозможно поддерживать.
    И хочется бросить это всё и переписать, или просто бросить и уйти туда, где трава зеленее, код чище(идеален), где можно будет использовать любые фреймворки, библиотеки, инструменты, которые на данный момент кажутся вам самыми клёвыми. Однако этого не бывает практически никогда.

    Теперь о позитивном.

    Переработка кода - отличный опыт. Я бы даже сказал, что он ценнее, чем разработка на Angular 100500 версии, которую вы хотите использовать больше для того, чтобы сказать "теперь я умею angular(подставь своё) 100500 версии".
    Вам придётся быть ещё более внимательным чем обычно, так как обновлять код нужно осторожно, чтобы ничего не сломать. Ещё более вдумчивым, ещё более внимательными, ещё более *, так как читать/понимать/править чей-то код - великий труд. К слову, это может показаться бредом, но вы вполне можете изучить что-то новое для себя пока будете рефакторить.

    И да - рефакторить нужно частями. И чем части эти будут меньше, тем лучше.
    Поэтому рекомендую взять самый адовый на ваш взгляд модуль/кусок/файл с кодом и разбить на логические части его работу. Затем осознать, что нужно разбить ещё.. ещё.. и ещё... Словом, декомпозируйте до тех пор, пока не поймёте, что дальше декомпозировать некуда.
    В итоге вы обнаружите огромный список задач. С этим списком уже можно работать. Для начала необходимо оценить его в человеко-часах. Дальше можно показать его руководителю, показать временные оценки, а самое главное - объяснить, на кой чёрт нужно тратить столько времени на эти задачи, вместо того, чтобы запилить новую фичу.
    А тратить это время нужно по той простой причине, которую мы преследуем изначально - ради чистоты, понятности, поддерживаемости кода. И.. да - если рефакторите js, то делайте это через TDD, это должно облегчить вам задачу (хотя вначале будет казаться иначе).

    Моя коллега с первой работы сейчас занимается одним интернет-магазином. Мне невероятно нравится читать её сообщения о том, что она выпиливает css код тысячами строк. Даже не представляю, насколько приятно ей смотреть на результат своей работы.

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

    @MrTimon
    Ну во-первых не нужно в ф-цию sendGet ставить обработчик $(".btn-selector").click. Выберете или одно или другое. Я бы советовал убрать ынлайн ф-цию sendGet. А скрипт перепесать следующим образом

    $(document).ready(function() {
    
            $(".btn-selector").click(function () {
                    var imgsrc = $(this).attr('value');
    
                    $.ajax({
                        type: 'get',
                        url: 'ajax.php',
                        data: {
                            'data_item': imgsrc 
                        },
                        dataType : 'html',
                        success: function (data) {
                            $('#result').html(data);
                        }
                    });
                });
    
    });


    тоесть имидж нужно выберать с атрибутов батона ну или с нижестоящего имиджа. Если я правильно понял Ваше условие
    Ответ написан
    1 комментарий
  • Как выгрузить изминения БД в битрикс?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Пишите миграции. Производите все изменения в БД с помощью функций API. Тогда для переноса изменений достаточно будет запустить скрипт на проде.

    Наталкивался на такие статьи
    epages.su/blog/1c-bitrix-migrations-with-phpmig.html
    blog.crtweb.ru/?p=748
    Ответ написан
    4 комментария
  • Как массово заменить элемент на странице?

    Stalker_RED
    @Stalker_RED
    Замена innerHTML не всегда подходит. Даже наоборот.
    Делая так, вы сбросите все имеющиеся обработчики событий, например.

    Обычно лучше найти все таблицы document.querySelectorAll('table')
    Найти нужные строки в них, и потом заменить.

    Все в сборе: https://jsfiddle.net/1nymagk2/
    Если нужно заменять только те ячейки, в которых еденица, то нужно добавить еще одну проверку https://jsfiddle.net/1nymagk2/2/

    Но вообще, может и не стоит делать замену, а просто добавлять к ячейке класс?
    Ответ написан
    Комментировать
  • Как в битриксе используя ORM получить значение из нескольких сущностей?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Тут можно почитать про связи между ORM сущностями.

    Если сущности, о которых вы спрашиваете, связаны, то делается это довольно просто.

    Допустим вот так описано поле по которому идет связь между сущностью Book и Author внутри класса BookTable:
    new Entity\ReferenceField(
        'AUTHOR',
        'SomePartner\MyBooksCatalog\Author',
        array('=this.AUTHOR_ID' => 'ref.ID'),
        array('join_type' => 'LEFT')
    )

    тогда чтобы выбрать какое либо поле из сущности author надо в getList добавить Author.<Код поля>. например так:
    BookTable::getList(array(
        'select' => array(
            'TITLE',
            'AUTHOR_NAME' => 'AUTHOR.NAME',
            'AUTHOR_LAST_NAME' => 'AUTHOR.LAST_NAME'
        )
    ));

    Пример взят из статьи по ссылке приведенной выше.
    Ответ написан
    3 комментария
  • Как настроить переадресацию в Битриксе?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Добавил статью в закладки и использую по необходимости.
    Ваш вариант это 5. 301 редирект со страниц без слеша на слеш.
    Ответ написан
    5 комментариев
  • Как безопасно загружать данные от ckeditor?

    Stalker_RED
    @Stalker_RED
    В ckeditor есть настраиваемые фильтры
    docs.ckeditor.com/#!/api/CKEDITOR.htmlDataProcessor

    На сервере тоже нужно фильтровать, т.к. фильтр в браузере легко обходится.
    Что-то вроде htmlpurifier, например
    Ответ написан
    1 комментарий
  • Как изменить статический html файл?

    NN-webmaster
    @NN-webmaster
    Обожаю веб
    смысл в том что когда пользователь провел данные манипуляции на этой странице. и при следующем использовании она сохранила все эти изменения.

    хорошо б если был такой способ без использования серверной части


    Если вы хотите сохранить изменения для всех пользователей (собственно, на сервере), то без серверной части вам не обойтись. Вы должны будете сохранять эти изменения либо в файл с кодом страницы на сервере, либо в БД и потом скрипт будет генерировать страницу с обновлёнными записями из БД.

    Чтобы сохранять эти изменения только для пользователя (и только временно, до тех пор, пока он не обновит/покинет страницу, либо не очистит хранилище), то воспользуйтесь Локальным Хранилищем. Вот тут и вот тут

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

    krimtsev
    @krimtsev
    Возможно на собеседовании хотели узнать как вы будете выходить из этой ситуации? Способны вы думать или уверенно сказать нет. Это же обыденные тесты HR.

    Без условий - никак.
    Условия уже перечислили выше.
    Ответ написан
    2 комментария
  • Как сделать такие глаза?

    MikeKosulin
    @MikeKosulin
    https://dimon.navalny.com/static/js/script.fbb501e...
    смотреть с 438-500 строки отвечают за глаза
    // Глаза
    
    var head = document.querySelector('.head');
    var eyeLeft = document.querySelector('.eye--left');
    var eyeRight = document.querySelector('.eye--right');
    
    var x_coef = 5.0;
    var y_coef = 3.5;
    
    // для мобильных другие радиусы вращения глаз
    if (!window.matchMedia('(min-width: 768px)').matches) {
      x_coef = 3.5;
      y_coef = 3;
    }
    
    var doc = document.documentElement;
    
    function onMove(e) {
      var r, dist, y, x1, y1, x2, y2;
    
      x2 = e.clientX;
      y2 = e.clientY;
    
      // учет положения скролла
      // var left = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);
      var top = (window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0);
    
      // левый глаз
    
      x1 = eyeLeft.offsetLeft + 22;
      y1 = eyeLeft.offsetTop + 80 - top;
    
      dist = Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
      r = Math.atan(dist/20);
    
      var x_l = ((r * x_coef * (x2 - x1)) / dist);
      var y_l = ((r * y_coef * (y2 - y1)) / dist);
    
      // правый глаз
    
      x1 = eyeRight.offsetLeft + 22;
      y1 = eyeRight.offsetTop + 80 - top;
    
      dist = Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
      r = Math.atan(dist/20);
    
      var x_r = ((r * x_coef * (x2 - x1)) / dist);
      var y_r = ((r * y_coef * (y2 - y1)) / dist);
    
      // по вертикали беру среднее значение
      y = (y_l + y_r) / 2;
    
      // коэффициет независимости подвески зависит от расстояния
      // var indep_coef = 1.0 - 1 / (dist/10 + 2);
      var indep_coef = 0.8;
    
      var x_l1 = indep_coef * x_l + (1 - indep_coef) * x_r;
      var x_r1 = indep_coef * x_r + (1 - indep_coef) * x_l;
    
      eyeLeft.style.transform = "matrix(1, 0, 0, 1," + x_l1 + "," + y + ")";
      eyeRight.style.transform = "matrix(1, 0, 0, 1," + x_r1 + "," + y + ")";
    
    }


    Сами глаза:
    правый https://dimon.navalny.com/static/img/head/small/ey...
    левый https://dimon.navalny.com/static/img/head/small/ey...

    P.S. комментарии к коду прекрасны)
    Ответ написан
    1 комментарий
  • Есть ли Wordpress веб студии на массовые (1000 заказов / месяц) доработки?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Есть неплохой метод примерной оценки ресурсов работы:
    1000 заказов / 22 рабочих дня = ~45 заказов в день. В зависимости от сложности работы она займет от 1 до 5 человеко-часов, пусть будет 3 часа на задачу. Итого в день нужно 45*3=135 человеко-часов/день на данную работу. Примем рабочий день равным 7 часам, с учетом перекуров/чая/кофе. 135/7 = ~20 человек справятся с данной задачей, + возможно потребуется некоторое количество доп. персонала, менеджеров и кухарок допустим. Скажем человек 5-6.
    Итог: контора в 25-30 чел штата справится с потоком самостоятельно. При необходимости 2-3 менеджера посаженные на отлов фрилансеров и раздачу им задач могут сэкономить до 50% рабочего люда.
    Ответ написан
    7 комментариев
  • Кликабельный after или before?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Прекратите пихать туда ссылки и прочую хрень.
    Псевдоэлементы предназначены для совершенно других целей.
    Сделать можно, но я лучше отвечу "Никак", чтобы не плодить говнокода.
    Ответ написан
    2 комментария
  • Почему не работает регулярное выражение?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    $pattern = new RegExp('\\[\\d{1,4}\\]', 'g');
    https://developer.mozilla.org/ru/docs/Web/JavaScri...

    P.S.
    Литеральная запись обеспечивает компиляцию регулярного выражения при вычислении выражения. Используйте литеральную запись если регулярное выражение будет неизменным. Например, если вы используете литеральную запись для конструирования регулярного выражения, используемого в цикле, регулярное выражение не будет перекомпилироваться на каждой итерации.
    Ответ написан
    Комментировать
  • Переход из 1С в web-разработчики (PHP ) в 35 лет. С чего начать и реально ли?

    zualex
    @zualex
    Senior Software Engineer
    Возраст не помеха.
    Уже сейчас можешь пробовать устроиться на работу, бывают кампании, которые сами занимаются обучением сотрудников.
    Но пока ищешь работу вот план:

    Но не останавливайся в развитии, в этом тебе поможет Карта развития веб-разработчика
    Ответ написан
    Комментировать
  • Почему не происходит создания массива после отлова события?

    Stalker_RED
    @Stalker_RED
    Проблема, скорее всего, из-за неправильного вызова $.get
    Объект вручную собирать не обязательно, в jQuery есть .serialize(), а в "чистом" js есть FormData.

    $('input[name=invoice-invoice_number]').on('blur', function(){
      let myData = $(this.form).serialize();
      $.ajax({
        url: "/echo/json/",
        method: 'POST',
        data: myData
      }).done(function() {
        console.log (myData)
      });
    })

    Живая демка: https://jsfiddle.net/wb5nv0u8/
    gjSbv4K.png
    Ответ написан
    2 комментария
  • Как реализовать открытие формы при заходе на сайт?

    devspec
    @devspec
    Помогло? Отметь решением
    Нужно записать флаг в куку или в localStorage (лучше в куку) и проверять его наличие при каждом заходе на страницу. Если флаг есть - не показываем окошко, если нету - показываем.
    Ответ написан