2013-03-01 125 views
0

我想開發一個簡單的模塊使用jQuery,但我想禁用mootools。 我嘗試如default.php文件模塊開發Joomla

$user =& JFactory::getUser(); 
    if ($user->get('guest') == 1) { 
    $headerstuff = $this->getHeadData(); 
    $headerstuff['scripts'] = array(); 
    $this->setHeadData($headerstuff); } 

    <jdoc:include type="head" /> 

使用此代碼,但我得到這個錯誤:使用$這個時候不是在對象上下文....

我等待你的建議

回答

1

我不認爲你在做什麼是一個好主意。如果您想使用jQuery,請將其包含在noconflict模式中,並使用jQuery而不是$來引用它。

但是,無論如何,這是你想要的代碼。 $this應該是一個JDocument對象,所以你需要先弄明白。

$user = JFactory::getUser(); 
if ($user->get('guest') == 1) { 
    $doc = JFactory::getDocument(); 
    $headerstuff = $doc->getHeadData(); 
    $headerstuff['scripts'] = array(); 
    $doc->setHeadData($headerstuff); 
} 
+1

我同意...這不是一個好主意,禁用Mootools。有一些默認擴展正在使用它。 – 2013-03-01 13:25:38

+0

謝謝Marko D. – Fox 2013-03-01 19:54:11

0

我想你想編輯HTML文檔屬性。你會得到錯誤,因爲setHeadData()是一些Joomla類的方法。你不能在課堂外使用$這個。

嘗試獲取文檔對象,並調用setHeadData這樣的:

$doc =& JFactory::getDocument(); 
    $doc->setHeadData($headerstuff); 

無論如何,你可以在同一時間使用jQuery和mootools的。只要按照這篇文章:http://davidwalsh.name/jquery-mootools

+1

你爲什麼還在和你一起拖? – 2013-03-01 13:16:58

+0

@ValentinDespa以下是解釋:http://www.php.net/manual/en/language.references.pass.php#56820 – Sirtarius 2013-03-01 13:37:06

+2

@Sirtarius - 我相信自PHP 5.3以來棄用的&運算符 – Lodder 2013-03-01 14:14:32