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