Недостающий функционал или как расширить Joomla без хаков

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

И вот в один прекрасный вечер меня осенила идея, что в Joomla уже есть механизм для подключения и размещения нужных классов и функций.

Есть такая функция jimport, начиная еще с Joomla 1.5, при ее вызове:

jimport('joomla.application.component.controller');

происходит подключение php файла /libraries/joomla/application/component/controller.php. В данном файле находится класс JController.

Таким образом наш файл с нужными классами/функциями необходимо разместить по следующему пути /libraries/you_class/helper.php и в коде шаблона (компонента и прочее) сделать вызов функции jimport:

jimport('you_class.helper');

Ваш файл будет подключен и вы сможете пользоваться его классами/функциями.

В следующей статье я опишу на реальном примере как добавить новый функционал по обработке даты и чисел (штук, работ и т.д., что имеет количественное значение).

PS. Небольшое разъяснение.

Лучше всего и конечно правильнее, чтобы ваш you_class был более человекопонятным. Например:

  • palpalych — наша веб-студия;
  • belkod — ник разработчика;
  • date — имя класса, обозначающее с чем работает функционал класса;
  • helper — имя файла класса.
  • и наконец DateHelper это сам класс в файле helper.php.

В результате получаем:

jimport('palpalych.belkod.date.helper');

Используем данный функционал jimport в нужных местах проекта и получаем возможность обработки даты с помощью функций класса DateHelper.

Чек-лист школьного сайта, о котором почему-то никто не говорит

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

Разработка корпоративного сайта: от стратегии до запуска

Разработка корпоративного сайта — не про «красивый дизайн» и шаблон на WordPress. Это про доверие, продажи, удобство партнёров и сотрудников. Разбираем, как сделать сайт, который работает на бренд, а не лежит «для галочки».

Посетители на сайт: полное руководство по подсчёту и источникам трафика для начинающих

Посещаемость есть, продаж нет? Значит, это не трафик, а статистическая иллюзия. Разбираем, как находить «правильных» людей, отсеивать шум и заставить аналитику работать на бизнес, а не на красивый график.

Пентест — тестирование безопасности вашего сайта и приложений

Киберугрозы эволюционируют: взлом СДЭК с ущербом 575 млн руб, рост атак на 60%, применение ИИ в фишинге и вредоносном ПО. Пентест — это санкционированное тестирование безопасности, выявляющее уязвимости до того, как их найдут хакеры. Узнайте, как защитить свой бизнес.

Последние кейсы
Посмотреть все проекты
Начать проект вместе с нами
Заполните форму и отправьте
нам сообщение!
Если у Вас возникли вопросы, предложения, либо Вы желаете оформить заявку на заказ услуги — Добро пожаловать!
Контакты:
Бронзовый партнер October CMS:
Бронзовый партнер October CMS