• Overflow-y:scroll - отображение снизу?

    var objDiv = document.getElementById("your_div");
    objDiv.scrollTop = objDiv.scrollHeight;
    Ответ написан
    Комментировать
  • Как разобрать строку?

    RAX7
    @RAX7
    function parse(str) {
      const result = [];
      let openBrackets = 0;
      let regExpString = "";
    
      for (let i = 0; i < str.length; i++) {
        const char = str[i];
    
        if (char === "{") {
          openBrackets++;
          if (openBrackets === 1) {
            continue;
          }
        }
        else if (char === "}") {
          openBrackets--;
    
          if (openBrackets === 0) {
            regExpString = regExpString.replace(/(^\/)|(\/$)/g, "");
            result.push(new RegExp(regExpString));
            regExpString = "";
            continue;
          }
        }
    
        if (openBrackets === 0) {
          switch (char) {
            case "0": {
              result.push(/\d/);
              break;
            }
            default: {
              result.push(char);
            }
          }
        }
        else {
          regExpString += char;
        }
      }
    
      return result;
    }
    
    const str = "+1({/[1-9]/}00) 000 000{/[1-9]/}";
    const r = parse(str);
    console.log(r); // -> ["+", "1", "(", /[1-9]/, /\d/, /\d/, ")", " ", /\d/, /\d/, /\d/, " ", /\d/, /\d/, /\d/, /[1-9]/]
    Ответ написан
    Комментировать
  • Как сделать вклад в развитие PHP?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Все шаги подробно описаны: https://wiki.php.net/rfc/howto

    Однако, я бы не рекомендовал вам тратить своё и чужое время на это предложение.
    Во-первых:
    If you don't have the skills to fully implement your RFC and no-one volunteers to code it, there is little chance your RFC will be successful.

    А во-вторых, это настолько нишевое и малополезное предложение, что усложнять язык ради него никто не станет.
    Ответ написан
    6 комментариев
  • Вызов несуществующего метода?

    Stalker_RED
    @Stalker_RED
    Вам не нужно ничего передавать "в виде массива", движок пхп сделает это сам, если не найдет существующий метод.
    https://ideone.com/EsnAEZ

    EtT1rUn.png
    Ответ написан
    1 комментарий
  • Защита от бесконтрольного создания картинок?

    neuotq
    @neuotq
    Прокрастинация
    Гуглите "Rate Limiting" для вашего фреймворка, библиотеки, возможно на уровне веб сервера или чего ещё. И постройте логику приложения так, что если нужно отдавать не статитку, то условно свободно, а если генерировать, то тут ограничения. Обычно это делается на одно условное устройство/пользователя и/или отдельно на отдельный роут/операцию/функцию.
    Ну например, на пользователя 5 раз в секунду, на роут генерации картинки 100 раз в секунду, если больше любого лимита, возвращай код 429.
    Ответ написан
    3 комментария
  • Как передать значение переменной между файлами шаблона на wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    UPDATE 2020:

    Для будущих поколений: начиная с версии WordPress 5.5.0 функция get_template_part() поддерживает третий параметр array $args. Подробнее в официальном посте.

    Оригинальный ответ:

    +1 к ответу, Капитан Какао. Впрочем, я использую все-таки стандартный get_template_part() для удобства, а переменные передаю через другое API - query_vars:
    // В файле из которого вызываем
    set_query_var( 'my_var', $my_var );
    get_template_part( 'content', 'part' );
    
    // В вызванном файле
    echo $my_var;

    Почему так? Для очевидности, в этом случае ты наглядно понимаешь что передаешь в темплейт.
    Ответ написан
    2 комментария
  • Где оценить дизайн сайта?

    @McBernar
    Найдите ментора.
    Любая публичная оценка будет субъективной и в основной массе исходить от непрофессионалов.
    Ответ написан
    Комментировать
  • На что вы ориентируетесь перед началом прорисовки дизайна?

    Nekto_Habr
    @Nekto_Habr
    Чат дизайнеров: https://t.me/figma_life
    На что вы ориентируетесь, когда приступаете к разработке нового макета?

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

    Основная сложность это оценить объем работ. Понятно что клиенту хотелось бы максимум полезности за минимум цены и времени, а дизайнеру - максимум цены за минимум полезности и времени. Поэтому половина работы это тупо болтовня. Переговоры. Расспросы. Уточнения. Хорошая практика - согласовать ТЗ. Если клиент сам не может написать нормальное конкретное ТЗ - лучше сделать это за него.

    Дальше дело техники.
    Ответ написан
    Комментировать
  • На что вы ориентируетесь перед началом прорисовки дизайна?

    @McBernar
    Выше верно заметили — вопрос очень правильный.

    Сейчас опишу два мира — идеальный и реальный.

    Идеальный

    К вам приходит клиент, который занимается уборкой квартир и хочет получать новых клиентов через интернет. Что нужно сделать вам:

    1. Узнать все про клининговый бизнес. Как происходит процесс уборки? Какие средства используются при уборке? Что именно входит в уборку? Какие бывают проблемы при уборке и общении с клиентами? Чего клиенты боятся? А чего хотели бы? Какой портрет потенциального клиента? На все эти и другие вопросы ваш клиент точно знает ответ, если не первый день в бизнесе. Если же первый день — вам придется искать ответы самому.

    2. На основе собранных данных вы уже будете иметь представление о следующих вещах:

    а. Постоянные клиенты заказывают уборку на регулярной основе. Значит надо сделать для них удобный интерфейс подписки.

    б. Новые клиенты боятся пускать к себе в дом посторонних людей и оставлять их одних на время уборки. Ок, напишем, что уборщики максимально проверены и работают очень давно.

    в. Новые клиенты пока не готовы заказать уборку, потому что непонятно — надо ли им это и деньги просто так тратить не хочется. Ок, дадим им скидку 20% на первый заказ при подписке на новости. Клиент получит скидку, а ваш клиент получит постоянный контакт через почту.

    д. У клиентов есть маленькие дети и животные, которые могут остро реагировать на химикаты. Хорошо, описываем, что в работе используется только супер-безопасные средства.

    И так далее. Если в двух словах — вам нужно понять все вопросы, все страхи людей, для которых будете делать продукт, и ответить на них с помощью сайта. И, самое главное, сделать так, чтобы процесс заказа/покупки был максимально простым и незаметным.

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

    В итоге у вас будет отличный багаж для старта. А что делать с ним дальше — это уже вам решать. Хотите прототипы? Пожалуйста. Хотите сразу дизайн? Без проблем. Как вам угодно.

    А, ну и да — реальный мир.
    Тут все гораздо веселее.
    К вам приходит клиент, который занимается уборкой квартир и хочет получать новых клиентов через интернет. Приходит он обязательно с вордовским файлом, в котором лежит 40 референсов на различные сайты, которые по стилю противоречат друг другу на 100 процентов. И, конечно же, просит нарисовать семь красных линий, две из которых зеленые, а четвертая квадрат. И, кстати, в том же вордовском документе лежит логотип, который ему рисовал сын маминой подруги, но исходников нет, а есть только джипег 50х50px.
    Ответ написан
    1 комментарий
  • Как запланировать событие на Wordpress?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    Плагин WPCrontrol позволит понять что творится по части крона.

    Вы воткнули функцию которая добавляет задачу крону просто в php. Соответственно она выполняется при каждом запросе - каждый раз когда кто то входит.

    Например можно сделать так:
    function t432897_my_action(){
      if(is_page('contacts')){
        wp_schedule_single_event( time() + 60, 'my_new_event' );
      }
    }
    add_action('template_redirect', 't432897_my_action');


    В этом случае событие будет добавляться только если кто то зайдет на страницу 'contacts'

    Условие и хук - зависит от желаемого действия. Под любое действие или сценарий можно подобрать хук и условие.
    Ответ написан
    3 комментария