Joomla загружать MooTools и / или JQuery на странице, где это необходимо только - PullRequest
0 голосов
/ 14 июня 2011

У меня есть сайт joomla 1.5, где я использую mootools (для хроноформ) и некоторый пользовательский код jquery.
В целом на всем сайте есть только 2 страницы, где мне нужны mootools или jquery, но обе загружаются на всестраниц.

Как я могу заставить Joomla загружать скрипты только на те страницы, где это необходимо?

Спасибо

Ответы [ 3 ]

2 голосов
/ 14 июня 2011

Я думаю, что вы можете включать и выключать jQuery, используя эти сценарии для конкретной страницы


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

Я не уверен, как отключить Mootool.Я боюсь, что это всегда прикрепить к системе. надеюсь, что это поможет.

ОК эту статью http://magazine.joomla.org/issues/Issue-Feb-2011/item/349-removing-mootools показать, как удалить mootool

0 голосов
/ 17 июня 2011

Вы можете использовать следующий код в шаблоне 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]);
        }
     }

}
0 голосов
/ 14 июня 2011

Вы можете изменить код 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);
 } 
...