При создании каталога недвижимости на Joomla стандартные статьи не дают гибкости — нужны поля «Площадь», «Этаж», «Цена», да еще и галерея. Без K2 приходится изобретать велосипед: создавать таблицы вручную или ставить тяжелые расширения. Мы настраивали K2 для 15+ проектов: от новостных порталов до интернет-магазинов. В этой статье — практический опыт настройки K2 CCK, который сэкономит вам бюджет на дорогие плагины и часы разработки. Гарантируем, что после прочтения вы сможете самостоятельно настроить типы контента с кастомными полями.
Разберём на реальном кейсе: интернет-магазин электроники требовал карточки товаров с характеристиками (вес, размеры, цвет) и файлами инструкций. K2 позволил реализовать это за 2 дня без костылей — мы создали группу Extra Fields «Характеристики» и привязали её к категории «Товары». Редакторы получили удобную форму, а посетители — полную информацию.
Как установить K2?
Загрузить компонент с официального сайта K2. Установка стандартная: Расширения → Управление расширениями → Загрузить файл. K2 устанавливает компонент, модули (mod_k2_content, mod_k2_users) и плагин (plg_search_k2). После установки обязательно проверьте, что модули опубликованы в нужных позициях. Убедитесь, что хостинг поддерживает PHP 7.4+ и MySQL 5.7+. В настройках компонента включите кэширование — это снизит нагрузку на сервер.
Как создать тип контента с Extra Fields?
Создание кастомного типа контента в K2 сводится к настройке категорий и групп дополнительных полей. Рассмотрим на примере «Объект недвижимости».
- K2 → Extra Fields Groups → Добавить группу «Недвижимость»
- Внутри группы создайте поля: Площадь (Textfield), Количество комнат (Select), Этаж (Textfield), Цена (Textfield), Фотографии (Gallery)
- K2 → Категории → Создать «Квартиры», «Дома» → в настройках категории прикрепите группу «Недвижимость»
Теперь при создании материала в категории «Квартиры» редактор увидит все кастомные поля. Для более тонкой настройки используйте плагин K2 Extra Fields Checkbox — он позволяет скрывать или показывать поля в зависимости от выбранной категории. Ниже таблица типов Extra Fields, доступных в K2:
| Тип поля | Описание |
|---|---|
| Textfield | Однострочный текст |
| Textarea | Многострочный текст |
| Select | Выпадающий список |
| Multiselect | Множественный выбор |
| Radio | Переключатели |
| Checkbox | Флажки |
| Link | URL с текстом |
| CSV | Список через запятую |
| Datetime | Дата и время |
| Image | Изображение с заголовком |
| Gallery | Галерея изображений |
| File | Вложение файла |
| Header | Заголовок-разделитель для группировки полей |
Почему стоит выбрать K2?
K2 предоставляет функционал, который в стандартной Joomla либо отсутствует, либо требует установки дополнительных расширений. Сравним K2, стандартные Custom Fields Joomla и Flexible Custom Fields:
| Функция | K2 | Custom Fields (Joomla) | Flexible Custom Fields |
|---|---|---|---|
| Кастомные поля | Да (13 типов) | Да (базовые типы) | Да (10+ типов) |
| Вложения файлов | Да | Нет | Да (плагин) |
| Галерея изображений | Встроенная | Нет | Да (плагин) |
| Профиль автора | Расширенный | Стандартный | Стандартный |
| Теги и облако тегов | Встроенное | Через расширение | Через расширение |
| Встроенное голосование | Да | Нет | Нет |
K2 лучше подходит для проектов, где нужны файлы, галереи и сложные авторские разделы. Для простых сайтов достаточно нативных Custom Fields.
Когда K2 не подходит?
Если вы используете Joomla 4 или 5, K2 может создавать избыточность — нативные Custom Fields покрывают базовые потребности. Также K2 конфликтует с некоторыми шаблонами, использующими Bootstrap 5. В таких случаях рассмотрите Flexible Custom Fields или поддержку через плагины.
Вывод Extra Fields в шаблоне
// В шаблоне item.php if (count($this->item->extra_fields)) { foreach ($this->item->extra_fields as $field) { if (!$field->value) continue; echo '<div class="extra-field extra-field--' . $field->name . '">'; echo '<span class="extra-field__label">' . $field->title . ':</span> '; echo '<span class="extra-field__value">' . $field->value . '</span>'; echo '</div>'; } } // Конкретное поле по name $area = null; foreach ($this->item->extra_fields as $field) { if ($field->name === 'area_sqm') { $area = $field->value; break; } } Подробнее о кэшировании Extra Fields
Для ускорения работы рекомендуем включить системный кэш Joomla и кэш компонента K2. Также используйте плагин K2 Cache для кэширования списков Extra Fields. Это снижает количество SQL-запросов и улучшает TTFB.
Процесс работы
- Аналитика — выявляем типы контента и их поля.
- Проектирование — создаём схему Extra Fields Groups и категорий.
- Настройка — устанавливаем K2, создаём группы, привязываем к категориям.
- Интеграция — адаптируем шаблон для вывода полей (как в примере выше).
- Тестирование — проверяем отображение на всех устройствах.
- Деплой и обучение — передаём документацию и доступы редакторам.
Что входит в работу
- Конфигурация K2: установка, настройка прав доступа, кэширование.
- Создание до 5 типов контента с 10+ Extra Fields каждый.
- Вёрстка шаблонов вывода полей с адаптацией под дизайн.
- Документация по заполнению полей для редакторов.
- Поддержка в течение 2 недель после сдачи.
Наш опыт
Мы работаем с Joomla более 10 лет, настроили K2 для 15+ проектов — от корпоративных порталов до интернет-магазинов. Используем проверенные паттерны: кэширование через Joomla Cache, оптимизацию SQL-запросов, встраивание полей через item.php без костылей. Согласно официальной документации K2, поддержка PHP 8.1 появилась с версии 2.11.
Сроки
Ориентировочно от 3 часов до 2 дней в зависимости от сложности типов контента и количества полей. Оценим ваш проект бесплатно — просто напишите.
Свяжитесь с нами для бесплатной оценки вашего проекта. Закажите настройку K2 под ключ — гарантируем возврат средств, если результат вас не устроит.







