Настройка Panel (админ-панели) Kirby

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

Разработка и обслуживание любых видов сайтов:

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка Panel (админ-панели) Kirby
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

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

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка Panel (админ-панели) Kirby

Panel — встроенный интерфейс управления контентом Kirby. Работает на Vue.js, открывается по /panel (или настраиваемому пути). Всё поведение панели описывается через Blueprint-файлы в YAML — никаких кликов в настройках, всё версионируется вместе с кодом.

Первоначальная настройка

При первом обращении к /panel без существующих пользователей Kirby показывает форму регистрации администратора. После создания — форма закрывается автоматически. Для отключения ручного создания:

// site/config/config.php
return [
    'panel' => [
        'install' => false, // запрещает создание пользователей через браузер
        'slug'    => 'manage', // /manage вместо /panel
    ],
];

Blueprint для главного сайта

# site/blueprints/site.yml
title: Настройки сайта

tabs:
    general:
        label: Основное
        icon: settings
        fields:
            site_name:
                type: text
                label: Название сайта
                required: true
            site_description:
                type: textarea
                label: Описание
                maxlength: 160
            logo:
                type: files
                label: Логотип
                max: 1
                query: site.files.filterBy("extension", "svg")

    contacts:
        label: Контакты
        icon: email
        fields:
            email:
                type: email
                label: Email
            phone:
                type: tel
                label: Телефон
            address:
                type: textarea
                label: Адрес

    social:
        label: Соцсети
        icon: globe
        fields:
            social_links:
                type: structure
                label: Ссылки
                fields:
                    platform:
                        type: select
                        options:
                            telegram: Telegram
                            vk: VKontakte
                            youtube: YouTube
                            github: GitHub
                    url:
                        type: url

Blueprint страницы с вкладками

# site/blueprints/pages/service.yml
title: Услуга

columns:
    left:
        width: 2/3
        sections:
            content:
                type: fields
                fields:
                    title:
                        type: text
                        label: Заголовок
                        required: true
                    intro:
                        type: writer
                        label: Вводный абзац
                        marks:
                            - bold
                            - italic
                    body:
                        type: blocks
                        label: Содержимое
                        fieldsets:
                            - heading
                            - text
                            - image
                            - list
                            - callout

    right:
        width: 1/3
        sections:
            meta:
                type: fields
                fields:
                    slug:
                        type: slug
                        label: URL
                        sync: title
                    status:
                        type: select
                        label: Статус
                        options:
                            draft: Черновик
                            listed: Опубликовано
                    sort:
                        type: number
                        label: Порядок сортировки
                    icon:
                        type: files
                        label: Иконка
                        max: 1
                    seo_title:
                        type: text
                        label: SEO заголовок
                    seo_description:
                        type: textarea
                        label: SEO описание
                        maxlength: 160

Настройка прав доступа

Роли описываются в site/blueprints/users/:

# site/blueprints/users/editor.yml
title: Редактор

permissions:
    access:
        panel: true
        settings: false
        users: false
    pages:
        create: true
        delete: false
        duplicate: true
        update: true
        changeSlug: false
        changeStatus: true
    files:
        create: true
        delete: true
        update: true
    user:
        changePassword: true
        changeRole: false

Для тонкой настройки прав через код:

// site/config/config.php
return [
    'permissions' => [
        'pages' => [
            'delete' => function (): bool {
                /** @var \Kirby\Cms\User $user */
                $user = kirby()->user();
                // только администраторы могут удалять опубликованные страницы
                if ($this->isListed()) {
                    return $user->isAdmin();
                }
                return $user->role()->id() === 'editor';
            },
        ],
    ],
];

Кастомные разделы панели

Раздел — это список дочерних страниц или файлов с кастомной конфигурацией:

# site/blueprints/pages/blog.yml
title: Блог

sections:
    articles:
        type: pages
        label: Статьи
        template: article
        status: all
        layout: table
        info: "{{ page.date.toDate('d.m.Y') }}"
        columns:
            title:
                label: Заголовок
                width: 1/2
            date:
                label: Дата
                width: 1/4
            tags:
                label: Теги
                width: 1/4
        sortBy: date desc
        empty: Статей пока нет

    drafts:
        type: pages
        label: Черновики
        status: draft
        template: article
        layout: list

Поле «pages» для связей

related_articles:
    type: pages
    label: Похожие статьи
    query: site.find('blog').children.listed
    max: 3
    template: article
    layout: cards
    image:
        query: page.cover.toFile
        cover: true

Кастомизация вида карточки в списке

# в разделе или поле pages
info: "{{ page.date.toDate('d.m.Y') }} · {{ page.readingTime }} мин"
image:
    query: page.cover.toFile
    ratio: 3/2
    cover: true

Переопределение CSS панели

// site/config/config.php
return [
    'panel' => [
        'css' => 'assets/panel.css',
    ],
];
/* assets/panel.css */
:root {
    --color-black: #1a1a2e;
    --color-focus: #e94560;
}

.k-header-logo img {
    height: 32px;
}

Сроки

Базовая настройка панели с blueprints для 5–7 типов страниц и двумя ролями: 1–2 дня. Со сложными структурными полями, кастомными правами и кастомным CSS: 2–3 дня.