• Есть ли хорошие плагины для создания справочника?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    В WordPress уже есть категории, подкатегории, записи и изображения записей, кастомные поля можно сделать с помощью ACF или Carbon Fields

    Так до конца и не ясно с чем конкретно у вас возникают сложности. Если задача в том, чтобы сделать сортировку постов по алфавиту, то это достаточно просто и без плагинов

    https://stackoverflow.com/questions/22335470/wordp...
    Ответ написан
    3 комментария
  • Как на php ставить задачи в очередь например при парсинге сайта?

    @Flying
    Подобная задача решается через т.н. брокеры сообщений (Message broker). Есть несколько возможных вариантов, к примеру выделенные сервера, реализующие протокол AMQP (например RabbitMQ, ActiveMQ и другие), стриминговые сервера (к примеру Kafka), сервисы очередей (Amazon SQS и подобные), а также другие реализации паттерна PubSub, к примеру в Redis.

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

    В вашем сценарии скорее всего будет подразумеваться две очереди:
    1. Очередь задач на scraping. а которую подписываются множество worker'ов, осуществляющих непосредственный сбор данных
    2. Очередь с результатами сбора данных, куда worker'ы будут скидывать данные и на которую подписываются обработчики, решающие что же делать с данными дальше

    Возможно есть ещё какие-то задачи и реальная схема будет сложнее, но в целом, надеюсь, идея понятна.

    Для PHP существуют немало binding'ов к серверам, реализующим message brokering. Не знаю что именно на сервер вы выберете, поэтому навскидку приведу php-amqplib/php-amqplib для работы с AMQP (в первую очередь с RabbitMQ), enqueue/amqp-tools (также для AMQP) и superbalist/php-pubsub для реализации PubSub паттерна, к примеру через Redis.

    Вы не указали на чём написан ваш проект, но в целом также можно посмотреть в сторону компонента Messenger для Symfony, его можно использовать и вне Symfony и он даёт хорошую базу для реализации схем обмена сообщениями.
    Ответ написан
    3 комментария
  • Как грамотно связать работу backend и frontend?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Просто выберите концепцию:
    1. Тонкий клиент. Все рисует сервер, клиент лишь берет на себя чисто визуальные штучки, вроде анимаций, переключений элементов и т.п.
    2. Толстый клиент. Сервер передает клиенту только данные через Rest API. Желательно наличие на стороне клиента како-то фреймворка (эмбер, ангуляр и т.п.)

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

    Делать такое для одного сайта, по сути лишняя работа.
    Ответ написан
    9 комментариев
  • Актуальны ли админ панели на PHP?

    danielchistyakov
    @danielchistyakov
    Frontend Engineer
    Если проект серьёзный, SAAS или высоконагруженные интерфейсы, то пишем сами на Node.JS и React/Vue/Angular, а если ИП-шнику магазин с цветами замутить, то можно и на PHP спокойно жить :).
    Ответ написан
    8 комментариев
  • Какой ЯП для Десктопа?

    @ittakir
    Qt С++ подойдет для всего этого.
    При желании можно собрать 1 exe файл без внешних зависимостей, но если только вопросы лицензирования не волнуют.
    Знать какие-то сложные фишки C++14+ не требуется. Библиотека Qt просто шикарная, причем не только GUI, но и контейнеры, работа с сетью, БД, картинками, графиками, реестром, умеет печатать сразу в PDF, полная поддержка Unicode. Стандартная библиотека C++ полный отстой по сравнению с Qt. Более менее без переделок программу можно собрать и под Linux.
    Единственное, что у меня было не очень, это экспорт в Word. Я его осилил конечно, но это было очень неудобно. Но опять же зависит от библиотеки. Я использовал стороннюю библиотеку, не Qt.

    Delphi думаю, что не стоит. Устарело оно, будущего никакого. Вы же хотите, чтобы ваш опыт работы можно было как-то использовать, например, на работу устроиться. С Qt это можно сделать.
    Ответ написан
  • На что обращать внимание при выборе веб-студии или же фрилансера помимо их/его портфолио?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Проверки:
    1. В момент озвучивания стоимости работы, попросите объяснить стоимость расчёта вёрстки, детализировав сам процесс.
    Сможет - значит делает сам, нет - значит перепродаёт.
    2. Если ответит, что "у меня стоимость часа [такая-то], а сколько это займёт - пока неясно". Сразу отказывайтесь!
    3. Вёрстка - всегда пост-оплата или договор (проверяйте только с юристом)!
    4. Проверяйте HTML-код на валидность сразу же, как только будет готов пустой каркас ("белый лист").
    5. Проверяйте ОБЯЗАТЕЛЬНОЕ! наличие семантической HTML5-разметки (header, nav, article, section, aside, footer, address, main, figure и т.д.).
    6. Проверяйте наличие микро-разметки: гугл, яндекс.
    7. Все анимации блоков - в отдельном НЕ СЖАТОМ! js-файле!
    8. Все формы/калькуляторы/поисковые строки - ТОЛЬКО в HTML: никаких AJAX-ов и валидаций быть не должно до момента установки вёрстки на бэкенд!

    Ссылки:
    1. Про качество и рейт: здесь
    2. Про стоимость вёрстки: здесь
    3. Про мотивацию: здесь
    4. Про проверку вёрстки и настроек сайта на хостинге: здесь
    Ответ написан
    7 комментариев
  • Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

    Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
    1. получение данных с сервера (обычно в формате JSON, или XML)
    2. добавление новых данных на сервер
    3. модификация существующих данных на сервере
    4. удаление данных на сервере

    Операция получения данных не может приводить к изменению состояния сервера.

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев
  • Как понимать термин "предметная область"?

    @nirvimel
    В других работах по распознаванию в качестве предметной области указано - нейронные сети, что по сути является лишь методом решения проблемы.

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

    «Разработка алгоритмов групповых решений в задачах распознавания образов». Столкнулся с тем, что нужно описать предметную область.

    Распишите там как важна эта задача в современном мире, как давно она стоит (с середины XX века можно начинать прослеживать историю). Весь математический аппарат для решения задачи распишите. Это и будет описанием предметной области.
    Ответ написан
    Комментировать
  • Как добавить новое родительское меню в админку Bitrix?

    Такую кнопку можно добавить через событие OnBuildGlobalMenu.
    Для этого регистрируем обработчик, например в init.php
    AddEventHandler('main', 'OnBuildGlobalMenu', 'addMenuItem');

    После добавляем новую кнопку в функции:
    function addMenuItem(&$aGlobalMenu, &$aModuleMenu)
    {
        global $USER;
    
        if ($USER->IsAdmin()) {
    
            $aGlobalMenu['global_menu_custom'] = [
                'menu_id' => 'custom',
                'text' => 'Bitrix Studio',
                'title' => 'Bitrix Studio',
                'url' => 'settingss.php?lang=ru',
                'sort' => 1000,
                'items_id' => 'global_menu_custom',
                'help_section' => 'custom',
                'items' => [
                    [
                        'parent_menu' => 'global_menu_custom',
                        'sort'        => 10,
                        'url'         => 'your_new_page.php?lang=ru',
                        'text'        => 'your_new_page',
                        'title'       => 'your_new_page',
                        'icon'        => 'fav_menu_icon',
                        'page_icon'   => 'fav_menu_icon',
                        'items_id'    => 'menu_custom',
                    ],
                    [
                        'parent_menu' => 'global_menu_custom',
                        'sort'        => 20,
                        'url'         => 'your_new_page_2.php?lang=ru',
                        'text'        => 'your_new_page_2',
                        'title'       => 'your_new_page_2',
                        'icon'        => 'fav_menu_icon_2',
                        'page_icon'   => 'fav_menu_icon_2',
                        'items_id'    => 'menu_custom',
                    ],
                ],
            ];
    
        }
    }
    Ответ написан
    6 комментариев