Joomla 1.5 Плагин вставки скрипта

Тема в разделе "Программирование", создана пользователем volod3000, 28.07.2010.

  1. volod3000
    Offline

    volod3000 Недавно здесь

    Регистрация:
    03.06.2009
    Сообщения:
    74
    Симпатии:
    8
    Пол:
    Мужской
    Доброе время суток.

    Пишу простейший плагин, но что-то заклинило, не могу его заставить работать.

    Задача плагина вставить JS-файл перед тегом </head>

    Вот что написал.

    Код (CODE):
    1. defined( '_JEXEC' ) or die( 'Restricted access' );
    2.  
    3. jimport( 'joomla.plugin.plugin' );
    4.  
    5. class plggrayscale extends JPlugin {
    6.  
    7.     function plgSystemPlg_grayscale( &$subject ){
    8.         parent::__construct( $subject );
    9.         $this->_plugin = JPluginHelper::getPlugin( 'system', 'grayscale' );
    10.         $this->_mainframe= &JFactory::getApplication('site');
    11.         $this->_jqpath = '';
    12.         if($this->_mainframe->isAdmin())return;
    13.  
    14.     }
    15.  
    16.     function onAfterInitialise() {
    17.  
    18.         if($this->_mainframe->isAdmin())return;
    19.  
    20.  
    21.         $document = &JFactory::getDocument();
    22.  
    23.         $this->_jqpath = JURI::root (true)."/plugins/system/grayscale/gra.js";
    24.  
    25.                     $document->addScript($this->_jqpath);
    26.  
    27.  
    28.     }
    29. }


    Но эффект нет , при загрузке страницы скрипта нет.

    Кто разбирается , подскажите где ошибка и как ее исправить, а то голова уже дымиться . [!!!]
     
  2.  
  3. Offline

    botanist Активист => Cпециалист <=

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Для начала класс именуй как положено plgSystemGrayscale
    Из кода вообще неясно имя плагина, как оно в базу записалось. Имя файла плагина должно совпадать с именем плагина в базе.
    Потом сделай
    Код (PHP):
    1. function plgSystemGrayscale(& $subject, $config) {
    2.  
    3. parent::__construct($subject, $config);
    4. $document = &JFactory::getDocument();
    5. $jqpath = JURI::root (true)."/plugins/system/grayscale/gra.js";
    6. $document->addScript($jqpath);
    7. }

    Вообще впечатление что плагин не работает из-за несовпадения имен плагина в базе, файла и класса.
    А вставить файл JS можно в любом месте плагина.
     
  4. volod3000
    Offline

    volod3000 Недавно здесь

    Регистрация:
    03.06.2009
    Сообщения:
    74
    Симпатии:
    8
    Пол:
    Мужской
    Попробовал так


    Код (PHP):
    1. defined( '_JEXEC' ) or die( 'Restricted access' );
    2. jimport( 'joomla.plugin.plugin' );
    3.  
    4. class plggrayscale extends JPlugin {
    5.    
    6. function plgSystemGrayscale(&$subject, $config) {
    7.  
    8. parent::__construct($subject, $config);
    9. $document = &JFactory::getDocument();
    10. $jqpath = JURI::root (true)."/plugins/system/grayscale/grayscale.js";
    11. $document->addScript($jqpath);
    12. }
    13.  
    14. }


    Но, к сожалению, ничего , насчет имен вроде сейчас правильно.
     
  5. Offline

    botanist Активист => Cпециалист <=

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Код (PHP):
    1. class plgSystemGrayscale extends JPlugin {
     
    volod3000 нравится это.
  6. volod3000
    Offline

    volod3000 Недавно здесь

    Регистрация:
    03.06.2009
    Сообщения:
    74
    Симпатии:
    8
    Пол:
    Мужской
    Большое спасибо botanist !

    Еще пришлось поменять положение плагина , для эксперимента поставил
    порядок 0 , и все заработало.

    С меня +
     

Поделиться этой страницей

Загрузка...