Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Иногда случается, что набор собственных функций или библиотек нужно подключить в Joomla. Но иногда подключить их нужно так, чтобы они присутсвовали во всей системе, вне зависимости, какой компонент сработал.
Это можно сделать самыми различными способами, но не все будут верными. Мы рассмотрим некоторые из них и опишем нюансы этих вариантов
Это наиболее рекомендованный вариант. Используем встроенную возможность подключения файлов через функцию jimport.
Создайте новую директорию внутри «<корень сайта>/libraries». Допустим это будет библиотека для работы с изображениями. Тогда назовем директорию «imagelib». Внутри создаем файл, который будет объявлять необходимый функционал. Пусть этот файл будет называться «init.php».
Теперь чтобы использовать этот функционал в любом месте фреймворка, просто напишите следующую строку:
Способ имеет один явный недостаток, везде придется использовать конструкцию с jimport, что на практике не очень удобно.
Еще один маленький минус — не получиться сделать установщик для Joomla 1.5. В весрии 1.6 и выше этот недостаток исправлен (теперь библиотеку можно устанавливать как расширение).
Плагины «прослушивают» систему и когда происходит определенное действие, то исполняется код плагина. Можно привязать собственный плагин к событию «onAfterInitialise», которое срабатывает сразу после инициализации фреймворка Joomla. Таким образом код плагина будет доступен практически из любой части системы. В теле метода «onAfterInitialise» можно использовать функцию jimport, описанную выше — так код будет чище.
Как и куда что писать подробнее можно прочитать в разделе по созданию плагинов Joomla.
В этом случае недостатком можно считать факт присутствия лишнего плагина в системе и её усложнения.
Не очень желательно использовать конструкции require, include. Но если уж сильно хочется, то придерживайтесь следующей конструкции.
Недостатки тут следующие:
Такой способ приемлем только на уровне загрузки фреймворка, когда еще не объявлен функционал плагинов и jimport. Но это очень редкий и крайний случай.
"Еще один маленький минус — не получиться сделать установщик для Joomla 1.5." - вот это можно "разжевать" подробнее...
То есть имеется ввиду, что файл не будет подхватываться если делать quickstart?
Не совсем понял что такое "quickstart".
В статье имеется виду, что библиотеки, начиная с версии 1.6, можно ставить так же как и любые расширения (плагины, шаблоны, модули...). В 1.5 этой возможности нету.