Меню показать Меню скрыть
Современные
проекты
от ПаЛыЧа
Белокопытов Константин Белокопытов Константин
7 мес. назад

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

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

Добавить комментарий

Наверх