Розробка кастомного плагіна для Pico CMS під ключ

Навіщо потрібен кастомний плагін для Pico CMS

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Розробка кастомного плагіна для Pico CMS під ключ
Середній
~2-3 дні

Наші компетенції:

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1317
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1014
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

Навіщо потрібен кастомний плагін для Pico CMS

Ми — команда з 7-річним досвідом розробки на PHP, спеціалізуємося на Pico CMS з 2018 року. Реалізували понад 50 проєктів, включаючи професійну розробку плагінів для Pico CMS. Вартість простих плагінів стартує від 3000 грн, складних — від 15000 грн.

Уявіть: вам потрібно додати на всі сторінки Pico CMS кастомну форму зворотного зв'язку, яка надсилає дані в зовнішню CRM. Штатними засобами — тільки Twig-парціали та ручна обробка. Без плагіна доведеться правити ядро, що загрожує конфліктами при оновленні. Правильне рішення — написати ізольований PHP-плагін, який підключається через Composer. Плагін — це єдиний спосіб розширення Pico CMS без зміни ядра. Встановлення через Composer плагін робить оновлення простим. Ми займаємося цим більш ніж у 50 проєктах — від простих редиректів до повноцінних корпоративних порталів.

Редагування ядра Pico безпосередньо — шлях до технічного боргу. При наступному оновленні CMS ваші зміни перезапишуться, а якщо ви забудете, що правили, — сайт зламається. Плагін же живе в окремій директорії, підключається через Composer і не чіпає ядро. Це стандартна практика в сучасній PHP-розробці.

Згідно з офіційною документацією Pico, "плагіни є основним способом розширення функціональності" (https://github.com/picocms/Pico).

Як працює система подій Pico

Кожен плагін Pico — це клас, що наслідує AbstractPicoPlugin. Він підписується на події, які CMS генерує в строгому порядку: від завантаження конфігу до рендерингу Twig-шаблону. Методи-обробники отримують аргументи за посиланням (&$variable), що дозволяє модифікувати дані на льоту.

<?php class MyPlugin extends AbstractPicoPlugin { const API_VERSION = 3; protected $enabled = true; public function onConfigLoaded(array &$config): void { if (!isset($config['my_plugin'])) { $config['my_plugin'] = ['option' => 'default']; } } public function onMetaHeaders(array &$headers): void { $headers['redirect'] = 'Redirect'; $headers['auth_required'] = 'AuthRequired'; } public function onPageRendering(string &$templateName, array &$twigVariables): void { $meta = $twigVariables['meta']; if (!empty($meta['redirect'])) { header('Location: ' . $meta['redirect'], true, 302); exit; } } } 

Файл кладеться в plugins/MyPlugin/MyPlugin.php. Стандартна структура директорії:

plugins/ └── MyPlugin/ ├── MyPlugin.php ├── config.yml.template └── README.md 

Які події використовуються найчастіше?

Ось ключові точки входу для Pico 3.x. Ми використовуємо їх у 90% проєктів.

Подія Опис Типове застосування
onPluginsLoaded Усі плагіни завантажені Доступ до інших плагінів
onConfigLoaded Конфіг розібрано Зміна параметрів
onRequestUrl URL запиту відомий Редиректи, обмеження
onMetaHeaders Список YAML-заголовків Додавання метаполів
onContentParsed Markdown → HTML Вставка шорткодів
onPageRendering Перед Twig-рендерингом Додавання змінних

Приклад із практики: плагін авторизації за IP

public function onConfigLoaded(array &$config): void { $this->allowedIps = $config['ip_restrict']['allowed'] ?? []; $this->restrictedPaths = $config['ip_restrict']['paths'] ?? []; } public function onRequestUrl(string &$url): void { $clientIp = $_SERVER['REMOTE_ADDR'] ?? ''; foreach ($this->restrictedPaths as $path) { if (str_starts_with($url, $path)) { if (!in_array($clientIp, $this->allowedIps, true)) { header('HTTP/1.1 403 Forbidden'); echo 'Access denied'; exit; } } } } 

Такий плагін корисний для закриття адмін-панелі або staging-оточення. Він працює на ранньому етапі — onRequestUrl — і блокує доступ до початку обробки контенту, що економить ресурси.

Шорткоди в Pico: як додати?

Pico не підтримує шорткоди з коробки — їх реалізують через onContentParsed. Ми створюємо кастомні Twig фільтри для форматування даних, а також використовуємо Pico API для інтеграцій.

public function onContentParsed(string &$content): void { $content = preg_replace_callback( '/\[youtube\s+id="([a-zA-Z0-9_-]+)"\]/', static function (array $matches): string { $id = htmlspecialchars($matches[1], ENT_QUOTES); return sprintf( '<div class="video-embed"><iframe src="https://www.youtube.com/embed/%s" ' . 'allowfullscreen loading="lazy" title="YouTube video"></iframe></div>', $id ); }, $content ); } 

Типи плагінів: що ми вміємо?

Тип плагіна Складність Приклади
Обробник однієї події 1-2 дні Редирект за мета-полями, додавання Google Analytics
Кастомні Twig-функції 2-3 дні Форма зворотного зв'язку, слайдер на основі YAML
Інтеграція із зовнішнім API 3-5 днів Імпорт із CRM, WebHook на оновлення контенту
Комплексна бізнес-логіка від 5 днів Каталог з фільтрацією, управління доступом

Плагін на Pico розробляється в 3 рази швидше, ніж аналогічне розширення для WordPress, завдяки простій архітектурі подій та мінімалістичному ядру.

Які помилки допускають при розробці плагінів Pico?

  1. Неправильний порядок подій: наприклад, спроба використати onContentParsed до onPageRendering — контент ще не оброблено.
  2. Відсутність перевірки на існування масиву: $config['my_plugin'] може не бути — використовуйте ??.
  3. Використання глобальних змінних замість переданих за посиланням: це ламає ізоляцію.
  4. Забутий exit після редиректу: скрипт продовжує виконання, і ви отримаєте помилку заголовків.
  5. Відсутність тестів: плагін може зламатися при оновленні Pico.

Процес розробки

Ми дотримуємося чіткого регламенту, щоб ви отримали передбачуваний результат:

  1. Аналіз — ви описуєте завдання, ми уточнюємо деталі та оцінюємо терміни.
  2. Проєктування — визначаємо список подій, структуру конфігу та Twig-змінні.
  3. Розробка — пишемо код на PHP 8.1+ з урахуванням PSR-12, покриваємо тестами PHPUnit.
  4. Інтеграційне тестування — перевіряємо плагін на вашому хостингу або в середовищі, наближеному до продакшену.
  5. Здача — передаємо вихідний код з ліцензією MIT, документацію, конфіг-шаблон та звіт про тестування.

Що входить у роботу

  • Вихідний код плагіна з підтримкою Composer-встановлення
  • README з описом встановлення та налаштування
  • Приклад конфігу в YAML
  • Юніт-тести (PHPUnit) з покриттям не менше 80%
  • 30 днів безкоштовної підтримки: виправлення багів, консультації

Гарантії та підтримка

Ми гарантуємо сумісність з останніми версіями Pico та PHP, відсутність конфліктів з іншими плагінами завдяки ізольованій архітектурі. Кожен плагін проходить код-рев'ю та статичний аналіз. Уся Pico CMS розробка ведеться з урахуванням PSR-12. Якщо у вас є нестандартна задача — напишіть нам, обговоримо рішення. Щоб замовити плагін Pico, заповніть форму зворотного зв'язку. Отримайте консультацію по вашому проєкту — визначимо необхідні події та терміни за 1 годину.

Замовте розробку плагіна — ми проаналізуємо ваше завдання та запропонуємо оптимальне рішення протягом дня. Зв'яжіться з нами, щоб обговорити деталі.