Доброе время суток. Пишу простейший плагин, но что-то заклинило, не могу его заставить работать. Задача плагина вставить JS-файл перед тегом </head> Вот что написал. Код (CODE): defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.plugin.plugin' ); class plggrayscale extends JPlugin { function plgSystemPlg_grayscale( &$subject ){ parent::__construct( $subject ); $this->_plugin = JPluginHelper::getPlugin( 'system', 'grayscale' ); $this->_mainframe= &JFactory::getApplication('site'); $this->_jqpath = ''; if($this->_mainframe->isAdmin())return; } function onAfterInitialise() { if($this->_mainframe->isAdmin())return; $document = &JFactory::getDocument(); $this->_jqpath = JURI::root (true)."/plugins/system/grayscale/gra.js"; $document->addScript($this->_jqpath); } } Но эффект нет , при загрузке страницы скрипта нет. Кто разбирается , подскажите где ошибка и как ее исправить, а то голова уже дымиться .
Для начала класс именуй как положено plgSystemGrayscale Из кода вообще неясно имя плагина, как оно в базу записалось. Имя файла плагина должно совпадать с именем плагина в базе. Потом сделай Код (PHP): function plgSystemGrayscale(& $subject, $config) { parent::__construct($subject, $config); $document = &JFactory::getDocument(); $jqpath = JURI::root (true)."/plugins/system/grayscale/gra.js"; $document->addScript($jqpath); } Вообще впечатление что плагин не работает из-за несовпадения имен плагина в базе, файла и класса. А вставить файл JS можно в любом месте плагина.
Попробовал так Код (PHP): defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.plugin.plugin' ); class plggrayscale extends JPlugin { function plgSystemGrayscale(&$subject, $config) { parent::__construct($subject, $config); $document = &JFactory::getDocument(); $jqpath = JURI::root (true)."/plugins/system/grayscale/grayscale.js"; $document->addScript($jqpath); } } Но, к сожалению, ничего , насчет имен вроде сейчас правильно.
Большое спасибо botanist ! Еще пришлось поменять положение плагина , для эксперимента поставил порядок 0 , и все заработало. С меня +