Skip to content

Joomline/contentcart

Repository files navigation

Content Cart

GitHub all releases GitHub release (latest) GitHub release (latest by date) Joomla License

Современное и безопасное решение для организации интернет-магазина на базе материалов Joomla. Пакет включает плагин контента и модуль корзины с поддержкой localStorage, AJAX и продвинутой системой безопасности.

Официальная страница: joomline.ru/rasshirenija/plugin/contentcart.html

Основные возможности

🛒 Современная корзина

  • localStorage - хранение корзины в браузере пользователя (не требует авторизации)
  • Настраиваемый TTL - время хранения корзины от 1 до 365 дней (по умолчанию 30 дней)
  • Умные кнопки - автоматическое обновление состояния при добавлении/удалении товаров
  • Динамический модуль - отображение списка товаров в реальном времени
  • Изменение количества - прямо в корзине без перезагрузки страницы
  • AJAX-взаимодействие - быстрая работа без перезагрузки страниц

🔒 Безопасность

  • CSRF-защита - для всех операций с корзиной
  • Серверная валидация цен - цены берутся только из пользовательских полей материалов
  • Защита от манипуляций - невозможно изменить цену через браузер
  • Валидация email - проверка корректности адреса перед отправкой
  • Контроль количества - серверная валидация (1-999 единиц)
  • Безопасные шаблоны - удалена опасная функция extract()

📋 Управление заказами

  • Отправка на E-mail - автоматическая отправка заказов администратору
  • Сохранение как материалы - заказы можно сохранять в выбранную категорию
  • Гибкие поля заказа - настройка полей клиента (имя, email, телефон, комментарий)
  • Автоочистка корзины - после успешного оформления заказа

⚡ Производительность

  • Система кэширования - снижение обращений к сессии на 90%
  • Оптимизация событий - сокращение нагрузки на 75%
  • Умная загрузка ресурсов - CSS/JS загружаются только когда нужно
  • Asset Management - через joomla.asset.json v4.1.2

🌐 Интернационализация

  • Многоязычный интерфейс - полная поддержка русского и английского языков
  • JavaScript i18n - переведенные сообщения и уведомления
  • Расширяемость - легко добавить новые языки

🎨 Настройка и дизайн

  • Адаптивный дизайн - работает на всех устройствах
  • Переопределение макетов - возможность кастомизации в шаблоне Joomla
  • Отключаемые стили - можно использовать собственные CSS
  • Гибкая конфигурация - фильтрация по категориям, области применения

Требования

  • Joomla: 5.x или 6.x
  • PHP: 7.4 или выше
  • Браузер: Современный браузер с поддержкой localStorage и ES6

Установка

  1. Скачайте последнюю версию пакета из раздела Releases
  2. Установите пакет через стандартную установку расширений Joomla (Система → Установка → Расширения)
  3. Активируйте плагин Контент - Корзина (Система → Плагины)
  4. Опубликуйте модуль Content Cart (Контент → Модули сайта)

Подробнее читайте в документации

Быстрая настройка

Настройка плагина "Контент - Корзина"

  1. Основные настройки:

    • Выберите пункт меню для страницы корзины
    • Укажите ID пользовательского поля для цены (если используете)
    • Установите валюту (например, ₽, $, €)
  2. Категории:

    • Выберите категории материалов, в которых будет отображаться кнопка "В корзину"
    • Настройте тип фильтрации (включить/исключить выбранные категории)
  3. Области применения:

    • Выберите где показывать кнопку: на странице материала, в блоге категории, списке категорий, избранных материалах
  4. Заказы:

    • Выберите категорию для сохранения заказов (необязательно)
    • Настройте поля клиента (имя, email, телефон, комментарий) - обязательные/необязательные/скрытые
  5. Дополнительно:

    • Включение/отключение стилей плагина
    • Настройка времени хранения корзины (TTL) от 1 до 365 дней

Настройка модуля "Content Cart"

  1. Позиция: Выберите позицию модуля в вашем шаблоне
  2. Отображение списка: Включите/отключите показ списка товаров в модуле
  3. Стили: Используйте встроенные стили или отключите для использования собственных

Что нового в версии 4.0.0

Критические улучшения безопасности

  • Полная защита от CSRF-атак
  • Серверная валидация цен и количества
  • Защита от манипуляции данными через браузер

Новая архитектура

  • Миграция на localStorage вместо PHP-сессий
  • AJAX API для взаимодействия с сервером
  • Namespace-архитектура с Dependency Injection
  • Современная структура файлов для Joomla 5/6

Повышение производительности

  • Улучшение скорости работы на 50-70%
  • Сокращение операций с сессией на 90%
  • Оптимизация обработки событий на 75%

Полный список изменений смотрите в CHANGELOG.md

История версий

  • 4.0.0 (декабрь 2025) - Поддержка Joomla 5/6, localStorage, безопасность, производительность
  • 2.0.0 (ноябрь 2022) - Поддержка Joomla 4
  • 1.x - Поддержка Joomla 3

Техническая информация

Структура пакета

pkg_contentcart/
├── plg_contentcart/              # Плагин контента
│   ├── src/
│   │   ├── Extension/            # Основной класс плагина
│   │   └── Helper/               # Вспомогательные классы
│   ├── assets/
│   │   ├── js/                   # JavaScript модули
│   │   ├── css/                  # Стили
│   │   └── joomla.asset.json     # Asset Management
│   ├── layouts/                  # Макеты (cart, default, mail)
│   ├── services/                 # Dependency Injection
│   └── language/                 # Языковые файлы
└── mod_contentcart/              # Модуль корзины
    ├── src/
    │   ├── Dispatcher/           # Обработчик модуля
    │   └── Helper/               # Вспомогательные методы
    └── tmpl/                     # Шаблон модуля

API и события

Плагин использует события Joomla:

  • onContentAfterDisplay - добавление кнопки "В корзину" после материала
  • onContentBeforeDisplay - обработка действий корзины

AJAX endpoints:

  • index.php?option=com_ajax&plugin=contentcart&group=content&format=json&action=getPrice - получение цены товара
  • index.php?option=com_ajax&plugin=contentcart&group=content&format=json&action=addToCart - добавление в корзину
  • index.php?option=com_ajax&plugin=contentcart&group=content&format=json&action=updateCart - обновление корзины

Поддержка проекта

Расширение развивается и существует исключительно на пожертвования пользователей.

Поддержать проект: Donate

Помощь и поддержка

Лицензия

GNU General Public License version 2 or later

Контакты


© 2018-2025 Joomline. All rights reserved.