2011-06-14 104 views
0

我有一个joomla 1.5网站,我使用mootools(用于chronoforms)和一些自定义jquery代码。
整个网站上只有2个页面,我需要mootools或jquery,但它都加载在所有页面上。joomla加载mootools和/或只需要页面上的jquery

如何让Joomla仅在需要的页面上加载脚本?

感谢

回答

0

您可以修改的Joomla代码:

去:

库/的Joomla/HTML/HTML/behaviour.php

搜索装载Mootools的地方。

添加的if/else:

例如:

$component = JRequest::getVar("option"); 
//xmap does not support Mootools 1.2 
if($component == "com_xmap") { 
    JHTML::script('jquery.js', 'media/system/js/', false); 
} 
+0

谢谢,明天我会试试 – Ruben 2011-06-15 07:46:10

2

我想你可以把jQuery的开和关,通过使用这些脚本的特定页面

 

$document = &JFactory::getDocument(); 
$document->addScript('[path to jquery]'); 
$noconflict = 'jQuery.noConflict();'; 
$document->addScriptDeclaration($noconflict); 

我不知道如何把Mootool关闭。我担心它总是附着在系统上。 希望得到这个帮助。

OK本文http://magazine.joomla.org/issues/Issue-Feb-2011/item/349-removing-mootools展示如何删除mootool

+0

感谢,但我在哪里把这个代码? – Ruben 2011-06-15 07:45:53

+0

你可以把它放在Chrono的表单中,别忘了 Panuwizzle 2011-06-15 08:06:24

0

你可以在你的模板的index.php文件使用下面的代码:

$app  =& JFactory::getApplication(); 

if ($app->isSite()) { // Make changes only on Front-end 

    $frontpage = (isset($this->_metaTags['standard']['title']) && $this->_metaTags['standard']['title'] == "Frontpage")? true : false; 
    $com = JRequest::getVar("option"); 


    // When you need Mootools on frontpage only 
    if(!$frontpage) { 
     $prohibited = array (
      '/media/system/js/core.js', 
      '/media/system/js/mootools-core.js', 
      '/media/system/js/mootools-more.js', 
      '/media/system/js/caption.js' 
     ); 

} 

    // When you need jQuery, for example in "com_xmap" only 
    if($com != "com_xmap") { 
     $prohibited = array (
      'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js', 
     ); 
    } 

    foreach ($this->_scripts as $key => $value) { 
     if(in_array($key, $prohibited)) { 
      unset($this->_scripts[$key]); 
     } 
    } 

}