2012-04-28 20 views
0

のJoomla 2.5のプラグインでJSを追加しますが、私はそれが仕事を得るカント私のコード:全てのは、私はちょうどJSファイルを追加しようと

<?php 

defined('_JEXEC') or die('Restricted access'); 
jimport('joomla.plugin.plugin'); 

class plgSystemInfinityScroll extends JPlugin { 
protected $_execute; 

function __construct(&$subject, $config) { 
    $app = JFactory::getApplication(); 

    if($app->isAdmin()) 
    { 
     return; 
    } 

    parent::__construct($subject, $config); 
    $this->loadLanguage('', JPATH_ADMINISTRATOR); 
    $this->_execute = true; 
} 

public function onBeforeCompileHead() { 

    $document =& JFactory::getDocument(); 
    $document->addScript('/plugins/system/sjdinfinitescroll/jquery.infinitescroll.js'); 

} 

public function onAfterRender() { 

} 

} 
+0

は、あなたのプラグインがインストールされ、有効になっているのですか?イベントが呼び出されますか?あなたのスクリプトがどのように動作しているかを見るために、コンストラクタとイベントで 'JFactory :: getApplication-> enqueMessage( 'message')'を呼び出すことを試みてください。 – Alex

+0

これをonBeforeCompileHead関数に追加するとサイトが壊れますが、__constructに入れても変更はありません:/ – Mackelito

+0

正しいとは言えません.'enqueMessage'は単にメッセージを表示するだけです。 php4を実行している場合、 '__construct'の代わりに' public function plgSystemInfinityScroll'を使う必要があります。コンストラクタは常に呼び出されるべきです。私は以前のタイプミスをしました。それは 'JFactory :: getApplication() - > enqueMessage( 'xxx')'でなければなりません。 – Alex

答えて

1

まず、Idはプラグインのイベントを使用します。

function onBeforeRender(){ 

} 

は、第二に、あなたのパスが間違って指しています。

変更し、それに:あなたは、同じページにロードされたMooToolsのを持っている場合は

//J1.6+ 
$script= JURI::root(true).DS.'plugins'.DS.'system'.DS.'sjdinfinitescroll'.DS.'jquery.infinitescroll.js'; 
$document =& JFactory::getDocument(); 
$document->addScript($script); 

は、あなたがjQuery.noConflict()を使用する必要があります。競合を回避する。

すべて一緒に

function onBeforeRender(){ 
     $script= JURI::root(true).DS.'plugins'. 
      DS.'system'.DS.'sjdinfinitescroll'.DS.'jquery.infinitescroll.js'; 
     $document =& JFactory::getDocument(); 
     $document->addScript($script); 
     $document->addScriptDeclaration('jQuery.noConflict();'); 
     $document->addScriptDeclaration('jQuery(function($){ $('#myid'.append('<h2>my header</h2>');});'); 
} 
+0

あなたのクラス名にタイプミスがあります: – Stilero

関連する問題