Недостающий функционал или как расширить 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.

Начать проект вместе с нами
Заполните форму и отправьте
нам сообщение!
Если у Вас возникли вопросы, предложения, либо Вы желаете оформить заявку на заказ услуги — Добро пожаловать!
Телефоны и мессенджеры:
Москва: +7 (499) 389-42-40
Санкт-Петербург: +7 (812) 456-72-40