• Какие современные технологии используются для разработки системы управления хостелом/гостиницей?

    Я аналог 1С простейший делал на PHP без фреймворков, даже с онлайн кассой атол интегрировал, из готового что использовал PHPExcel для генерации печаток, CKeditor, Jquery, Twitter Bootstrap.
    Есть альтернатива например YII.
    Вопрос вообще такой, что знаете лучше, на том и делайте...
    Ответ написан
    Комментировать
  • Изучил PHP, но как применить знания на пракитке не знаю. Что мне делать дальше?

    Слепите для начала простейшее приложение, возьмите twitter bootstrap или uikit чтобы много не верстать, а только бэкендом заниматься, возьмите JQuery чтобы с кроссбраузерностью костыли не лепить...
    Сделайте например кредитный калькулятор - в несколько полей указываешь параметры, кнопку жмешь и генерирует табличку с платежами, чтобы определиться с суммой платежа возьмите формулу аннуитетного платежа...

    Дальше можете сделать блог, поставьте на виртуалку тот же Ghost, посмотрите как все устроено - в админке список постов, по любому кликаешь и редактор открывается, а на внешней части тоже список, только выводятся они с пагинацией. Для редактора возьмите Editor.md или CKEditor или TinyMCE, попробуйте сделать загрузку картинок, тут вам понадобится небольшое знание SQL...

    Попробуйте сделать бота для вк, заводите группу, получаете ключик, все, лонгпулом получаете сообщения, кидаете на них ответ, тут придется вникнуть в curl.

    Попробуйте сделать парсер товаров и цен вашего любимого магазина, тут можете поиграться с регулярными выражениями.

    PHP это просто как инструмент, почти как паскаль, тут есть функции, циклы, переменные и все такое.
    Отдельно почитайте про обработку денег, чтобы 2.5+2.5 не получалось 5.0000001.

    Когда наиграетесь с чистым PHP, освоите всякие RabbitMQ, MySQL, Curl, Regexp, с нормализацией БД разберетесь, с индексами бд, типами данных, связями, поиграетесь с классами, автозагрузкой, наследованием и всяким таким, то придумайте какой-то проект для себя чтобы вечерком поиграться, берите например Yii, чтобы от кода к логике пойти, сделайте например интернет-магазин, пока особо можно не париться.
    Ответ написан
    Комментировать
  • WordPress не может создать папку, что не так?

    Попробуйте создать файлик например в корне test.php и в нем
    <?php
    echo exec("id");


    У вас вероятно не www-data пользователь от которого работает сервер, а какой-то свой ограниченный типа user1.group2
    Ответ написан
    7 комментариев
  • После перехода на php 7.1 появилась ошибка A non-numeric value encountered?

    Попробуйте вот так
    //$m[$i] = round($m[$i] / (int) 100 * $maxLevel, 1);
    $m[$i] = (((int) $m[$i]) /(100 * ((int) $maxLevel)));
    $m[$i] = round($m[$i], 1);
    Ответ написан
    1 комментарий
  • Событие родительского контейнера перекрывает все дочерние. Как исправить?

    Почитайте про делегирование событий родителю.
    Смысл в том, что если родителю задать onclick, то это будет срабатывать при клике по всему, что в нем расположено.

    Вот пример, не для вас конкретно, а очень обобщенный...

    table.onclick = function(event) {
      var target = event.target; // где был клик?
    
      if (target.tagName != 'TD') return; // не на TD? тогда не интересует
    
      highlight(target); // подсветить TD
    };


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

    @PavelBelyaev Автор вопроса
    Проверил только что, подгруженные внутри функции классы могут объявляться вне функции, но вот с переменными такое не пройдет, их надо в глобальную видимость объявлять.
    function LLL()
    {
    include PRIV.DS.'classes_crm.php';
    }
    
    LLL();
    
    $crm_cl = new ShopCRM;
    Ответ написан
    Комментировать
  • Linux скрипт для php, как написать?

    У меня много демонов крутится на PHP и между собой они общаются обычно через RabbitMQ (один другому задания шлет), запуск демона происходит вот так

    #!/bin/bash
    s_path="/bot1/sms/"
    PIDFILE=$s_path"daemon.pid"
    
    RUN="setsid /bin/php  /bot1/sms/daemon.php -a -b -c 10"
    LOG=$s_path"log.txt"
    SERVICE_NAME="MY DAEMON PHP"
    
    
    
    s_start() {
    
    test -f $PIDFILE && echo "$SERVICE_NAME is started" && exit
    
    echo -n "Starting $SERVICE_NAME: "
    `$RUN > $LOG & echo $! > $PIDFILE & disown -a` && echo 'ok' || echo 'error'
    
    }
    
    s_stop() {
    test -f $PIDFILE || echo "$SERVICE_NAME isn't started"
    test -f $PIDFILE || exit
    
    echo -n "Stopping $SERVICE_NAME: "
    kill -9 $(cat $PIDFILE) && echo 'ok' || echo 'error'
    rm $PIDFILE
    }
    
    
    case $@ in
         start)
              s_start
              ;;
         stop)
              s_stop
              ;;
         restart)
              s_stop
              s_start
              ;;
         *)
            echo "Use start|stop|restart"
            ;;
    esac


    В скрипте прописан путь до папки с демоном, туда при старте записывается pid процесса, по этому pid процесс убивается, конечно это такое решение для скрипта, как молотком по голове, ну ничего критичного не делается обычно, если убит скрипт и не успел что-то доделать, то при следующем старте доделает...
    Весь выхлоп скрипта в лог закидывается, но можно и в /dev/null отправить.
    Ответ написан
    Комментировать
  • Как вызвать статический метод в другом классе?

    Всё верно, статические методы можно вызывать без создания экземпляра класса в формате класс::метод()
    Из статическим методов нельзя вызывать $this, еще при вызове статических методов не нужно глобально переменную класса объявлять через global $class_obj.
    Ответ написан
  • Возможно ли с помощью Raspberry Pi организовать ежедневный бекап сервера?

    Debian есть - Raspbian, есть Ubuntu Server
    Бекап сделать можно, только желательно винт сделать в доп питанием.
    Rsync используйте например.
    Ответ написан
  • Скрипт добавления разделителя в каждом третьем элементе. Как правильно написать код?

    $('.popular-tems width33:nth-child(3n+3)').insertAfter('<div class="clear"></div>');


    Только что такое width33? Если класс то .width33

    Можно еще поиграться на чистом CSS через ::after
    Ответ написан
  • Как избежать закрытия соединения с БД, если коннект осуществляется из другой библиотеки?

    В самом mysql можно в конфиге прописать wait_timeout большой, но это не совсем выход...
    В том же php есть функция mysqli_ping или что-то такое, у меня тоже скрипт висел месяцами и изредка поймав запрос начинал его обрабатывать работая с бд, естественно коннект отваливался какой бы таймаут не указал, а сильно большие таймауты у сервера ведут к подвисшим соединениям незакрытым, поэтому, в своей программе продумайте такой момент в прослойке к БД, чтобы запоминало время последнего обращения к БД и если оно превышает например 2 минуты, то проверять коннект и если его нет, то переконектить.
    Ответ написан
    Комментировать
  • Почему при запросе cURL возникает ошибка, а при file_get_contents нет?

    У вас в системе корневые сертификаты для curl не залиты, самое простое решение - принимать все сертификаты без валидаци...
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    Ответ написан
    1 комментарий
  • Очистка скрипта php при обработке изображений?

    Самым простым решением будет SQL_CALC_FOUND_ROWS + LIMIT, например, LIMIT 0 10 (c нулевой строки и получить 10), а дальше узнаете сколько там нашлось записей до лимита через запрос
    SELECT FOUND_ROWS()
    узнаем сколько там записей, хотя проще COUNT(*) получить, если вы тупо все записи хватаете без выборки по условияю (обработан или нет).

    Смысл в том, что вы должны из базы брать например по 10 записей, обрабатывать, а потом следующие 10, например
    LIMIT 10 10
    LIMIT 20 10
    LIMIT 30 10
    небольшой пачкой брать по 10 записей, обрабатывать и потом следующие 10, зная сколько всего записей итерацию сделайте типа как постраничный вывод товаров, посмотрите как постраничная навигация делается на сайтах, так и делайте
    Ответ написан
    Комментировать
  • Что подправить, чтобы работало выежание по нажатию на кнопку?

    И что? класс active к li добавляете при клике по нему, а нет li.active ul {display:....} в css?
    Ответ написан
    1 комментарий
  • Как реализовать несколько городов на сайте?

    Не силен в вордпресс, делаю с нуля проекты, но мне кажется что вам нужно роутинг url крутить, парсить этот самый /msk /ekb ... и определенные переменные или константы проставлять с городом, а дальше их в шаблонах или модулях использовать типа телефон другой или адрес офиса местного подставлять... А если человек заходит на главный сайт, то надо по GeoIP его локацию определять или спрашивать какой у вас город и определять...

    Более того, надо функционал генерации юрл подпиливать, чтобы при выборе /msk все юрлы сразу на сайт нужного города вели, а не на общий.

    Вероятно, что для столь популярной CMS уже есть готовые плагины.
    Вот пример из гугла первый попавшийся, может и бесплатный сможете найти...
    Ответ написан
  • Как настроить virtualbox на хост машине windows 10, гостевая ubuntu для web разработки LEMP?

    Я всегда через сетевую папку (samba) расшариваю, правда на hyper-v окружение развертываю, в нем 10 гигабитная сеть и сетевая папка как локальная по скорости. В windows 10 еще и NFS-клиент есть, но он у меня тогда нестабильно работал, но это было еще на 1709 сборке, сейчас может пофиксили, но Samba работает прям идеально, уже года 4 так работаю как с мака на винду перешел...
    Ответ написан
    Комментировать
  • Как использовать анонимные функции в php?

    $anofunc =($A) use (вместо глобал передавать и самыу функцию можно ссылкуолй)
    {
    return $a;
    }; //ТУТ ВАЖНО ;
    
    $a("привет);
    Ответ написан
    Комментировать
  • Как вывести блок при нажатии по ссылке?

    Дать всем всплывающим блокам один класс и прежде чем открыть новый - закрыть все возможные, если они есть.
    Можно в переменную, которая изначально false, добавлять ссылку на открытый объект и в функции openbox проверять...

    var curr_open = false;
    
    function openbox(id){
       //проверим, не надо ли закрыть что-то
       if (curr_open!==false) curr_open.style.display='none';
    
        var el =  document.getElementById(id);
        curr_open = el;
        display =el.style.display;
    
    
        el.style.display = (display=='none') ? 'block' : 'none';
     
    }
    Ответ написан
  • Как сделать админку для бота вк?

    Берете какой-нибудь фреймворк типа yii и лепите формочки, кнопочки, таблички...
    Ответ написан
    Комментировать
  • Почему Windows-юзеры обычно держат окна приложений развёрнутыми на весь экран, а пользователи macOS — нет?

    У меня монитор 3440*1440, использую каждое окно на половину экрана, получается как два.
    На макоси начнем с того, что по дефолту окно вообще не разворачивается, а переходит в полноэкранный режим, но там с альтом вроде разворачивание идет как в винде на полный экран. Но так на маке я когда работал, то ставил утилиту shiftit, где можно было как в винде win+left чтобы слева расположить на половину экрана...

    Зависит вообще от задачи, например, тот же мессенджер удобнее оставлять маленьким окошком...
    Ответ написан
    Комментировать