Розробка кастомних шаблонів та сніпетів Kirby на PHP

Стандартні шаблони Kirby часто призводять до дублювання коду та складнощів з підтримкою, коли проект виростає до сотень сторінок. Оптимізація через модульні сніпети та контролери — ключ до масштабування. Отримайте консультацію по вашому проекту — ми допоможемо спроектувати архітектуру шаблонів.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Розробка кастомних шаблонів та сніпетів Kirby на PHP
Середній
~3-5 днів

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

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

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

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

Стандартні шаблони Kirby часто призводять до дублювання коду та складнощів з підтримкою, коли проект виростає до сотень сторінок. Оптимізація через модульні сніпети та контролери — ключ до масштабування. Отримайте консультацію по вашому проекту — ми допоможемо спроектувати архітектуру шаблонів.

Ми розробляємо кастомні шаблони Kirby на PHP, використовуючи чистий код без шаблонізаторів. Кожен файл у папці templates відповідає за свій тип сторінки. Але як ефективно організувати код, перевикористовувати блоки та обробляти кастомні поля? Наші інженери показують на реальних прикладах: корпоративний сайт з каталогом на 2000 товарів та інтернет-магазин з блочним редактором. За багаторічний досвід ми накопичили практику, яка дозволяє прискорити розробку на 40% і скоротити бюджет на 30%.

Проблеми та рішення в розробці шаблонів Kirby

Чому модульні сніпети економлять час?

Кожен сніпет відповідає за одну зону — хедер, футер, картку товару, блок контенту. Це скорочує дублювання коду на 60% і спрощує підтримку. При зміні дизайну достатньо відредагувати один файл, а не 10 шаблонів. Модульні сніпети кращі за монолітні шаблони в 2 рази за швидкістю розробки. Вони також забезпечують кращу читаність завдяки чіткому розподілу відповідальності.

Які проблеми вирішуємо

  • Дублювання коду — без сніпетів один і той самий висновок копіюється в кожному шаблоні. Використання сніпетів зменшує дублювання на 60%.
  • Складна фільтрація — наприклад, висновок каталогу продуктів з пагінацією та фільтром за категоріями. Реалізуємо через контролери та URL-параметри.
  • Нестандартні поля — Kirby плоска, але ми вміємо працювати з structure, blocks, file-полями, щоб створювати гнучкі адмін-інтерфейси.
  • Продуктивність — неоптимізовані запити уповільнюють сайт. Використовуємо кешування опкодів та індексування, що знижує час завантаження сторінок на 30%.

Коли варто виносити логіку в контролер?

Якщо в шаблоні з'являються складні обчислення, фільтрація або підготовка даних — пора виносити їх у контролер. Контролер Kirby — це функція, яка повертає масив змінних для шаблону. Це покращує читаність і тестованість коду. Контролери кращі за монолітні шаблони в 3 рази за читаністю. Також це дозволяє перевикористовувати одну й ту саму логіку для різних шаблонів. Згідно з офіційною документацією Kirby, використання контролерів є рекомендованою практикою для складних сторінок.

Приклади реалізації

Шаблон статті з кастомними полями

Використовуємо підхід: blueprint → контролер → шаблон → сніпети. Приклад для сторінки article:

# site/blueprints/pages/article.yml title: Стаття fields: subtitle: type: text cover: type: files text: type: blocks 

Контролер передає оброблені дані в шаблон:

<?php // site/controllers/article.php return function ($page) { $subtitle = $page->subtitle()->or('Без підзаголовка'); $cover = $page->cover()->toFile(); $blocks = $page->text()->toBlocks(); return compact('subtitle', 'cover', 'blocks'); }; 

Шаблон збирає все через сніпети:

<?php snippet('header', ['title' => $page->title()]) ?> <main> <article> <?php snippet('hero', ['cover' => $cover, 'subtitle' => $subtitle]) ?> <?php snippet('content-blocks', ['blocks' => $blocks]) ?> </article> </main> <?php snippet('footer') ?> 

Кожен сніпет відповідає за свою зону. Це прискорює розробку в 2 рази порівняно з монолітним шаблоном.

Сніпет для фільтрації каталогу

У контролері сторінки products збираємо продукти з папки content/products. Використовуємо $kirby->collection() або $pages->find('products')->children().

<?php snippet('catalog-filter', ['categories' => $categories, 'active' => $active]) ?> 

Сніпет catalog-filter.php виводить список категорій з активним класом. Разом з пагінацією це дає готовий каталог за 1 день.

Типові помилки та найкращі практики

Які помилки найчастіші?

  • Розміщення логіки в шаблоні замість виносу в контролер. Це ускладнює тестування та підтримку.
  • Відсутність обробки порожніх полів — призводить до помилок при висновку. Використовуйте ->or() або ->isNotEmpty().
  • Ігнорування кешування — для сайтів з великою кількістю сторінок (1000+) без кешу TTFB зростає до 3 секунд.

Типи полів та варіанти шаблонів

Тип поля Методи виведення Приклад
text $page->field()->html(), ->kirbytext() $page->title()->html()
files ->toFile(), ->url(), ->crop() $page->cover()->toFile()->crop(800, 400)->url()
structure ->toStructure(), ->count() $page->gallery()->toStructure()
blocks ->toBlocks() $page->text()->toBlocks()
date ->toDate('d.m.Y'), ->isNotEmpty() $page->date()->toDate('Y-m-d')

Використання методів безпосередньо в шаблоні — часта помилка. Краще виносити логіку в контролер.

Суфікс шаблону Призначення Файл
(без) Основний article.php
.preview Попередній перегляд article.preview.php
.rss RSS-версія article.rss.php
.json JSON-вивід article.json.php

Kirby сам обирає відповідний шаблон за контекстом. Можна явно вказати: $page->render(['template' => 'article.rss']). Також використовуйте Kirby API для роботи з даними, наприклад kirby()->collection('products').

Наш процес та умови співпраці

Етапи роботи та що входить

  1. Аналіз blueprint та вимог до полів.
  2. Проектування системи сніпетів і контролерів.
  3. Реалізація шаблонів з урахуванням адаптивності.
  4. Інтеграція блочного редактора та кастомних блоків.
  5. Тестування на різних типах сторінок.
  6. Деплой та документація.

У вартість входить: вихідний код всіх шаблонів і сніпетів, документація по структурі полів, доступ до репозиторію, навчання редакторів, підтримка 1 місяць. Ми гарантуємо якість коду та використовуємо PSR-4 автозавантаження та об'єктно-орієнтований підхід.

Терміни та вартість

Типовий шаблон для одного типу сторінок — від 2 до 3 днів. Повний набір для корпоративного сайту — від 1 до 2 тижнів. Вартість одного шаблону — від 10 000 до 30 000 грн залежно від складності. Середня економія бюджету порівняно з іншими CMS — до 30%. Зв'яжіться з нами для обговорення вашого проекту — ми підготуємо комерційну пропозицію з детальним описом.