js в Joomla!

Статус
В этой теме нельзя размещать новые ответы.

nikoter

Местный житель
Регистрация
29 Май 2008
Сообщения
195
Реакции
24
Как заставить загружаться js только на тех страницах на которых они нужны
допустим что бы jquery загружался только в компоненте zoo
а highslide только на тех страницах на которых он установлен
а то у меня все эти скрипты начинают все вместе грузиться и их вес достигает 700 кб
 
Тема эта интересная, я её поднимал уже и здесь и на форумах по Joomla.
Готового решения нет.
В каждом плагине прописано добавлять скрипты в head, для того что бы самостоятельно контролировать скрипты, нужно поработать напильником.
Из основного шаблона index.php в папке template, нужно убрать
<jdoc:include type="head" /> и прописать необходимый head самому.
Добавить <jdoc:include type="modules" name="script" />
Прописать его в templateDetails.xml

Подгружаемые скрипты плагинов прописать в модулях. Для этого подойдёт популярный Jumi (для вывода java, css и т.д.)
Задать этим модулям позицию script
Контролировать вывод нужного модуля в нужном месте через Advanced Module Manager

Единственный минус у этого способа в том, что если ставить новый плагин на сайт, то нужно лезть в него и смотреть что он подгружает.
 
Можно использовать минимальные познания в php и подключать js в зависимости от компонентов или страниц. Для этого в шаблоне пишем примерно такую конструкцию
PHP:
<?php if ($option=='com_frontpage' or ($option=='com_content' && $task=='blogsection' && $id==2 ) ) { ?>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/javascript/нужный_скрипт.js"></script>
<?php } else if ($option=='com_zoo') { ?>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/javascript/нужный_скрипт.js"></script>
<?php } ?>
<?php } else if ($option=='com_forum') { ?>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/javascript/нужный_скрипт.js"></script>
<?php } ?>
Само собой, компоненты и условия пишем свои. Эти приведены для примера! :)
 
вот. вот это уже дело )
на днях попробую обязательно
вот только тяжко у меня со знанием php
не могли бы более подробно пояснить за что что отвечает и как точно надо писать
для того что бы было более понятно вот сайт
 
Объяснять на пальцах трудновато будет, надо просто знать ОСНОВЫ. А чтобы было проще разобраться в вышеприведенной конструкции, то вот расшифровка
PHP:
<?php if ($option=='com_frontpage') { ?>
//либо такой вариант
<?php if ($option=='com_frontpage' or ($option=='com_content' && $task=='blogsection' && $id==2 ) ) { ?>
// т.е относительная свобода творчества присутствует
тут путь к нужному скрипту
<?php } else if ($option=='com_хзчто') { ?>
тут путь к нужному скрипту
.... //повторяй предыдущеие 2 строки n раз, пока расширения или ID не кончатся (по желанию, есно)
<?php } ?>
Все нужные параметры $option, $task, $id и прочее можно увидеть в адресной строке браузера при отключенном SEF
 
<?php if ($option=='com_frontpage') { ?>
я так понимаю это определение компонента
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/javascript/нужный_скрипт.js"></script>
а это так понимаю подгрузка самого именно скрипта
и интересно в J1.6 решили этот вопрос
или так и осталось
 
<?php if ($option=='com_frontpage') { ?>
я так понимаю это определение компонента
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/javascript/нужный_скрипт.js"></script>
а это так понимаю подгрузка самого именно скрипта
и интересно в J1.6 решили этот вопрос
или так и осталось
Именно так. Определяем компонент, при необходимости определяем task и(или) id и если условие выполняется - подгружаем нужный скрипт ( картинку, файл, что угодно).
В 1.6 не думаю, что этот вопрос выведен в отдельное решение. Ибо это "проблема" ваша и вашего шаблона, а отнюдь не CMS. :)
 
Сие уже есть флуд.
Обсуждаем проблему подгрузки скриптов, а совсем не то, что больших порталов не сделать( что в корне не верно, ибо по вышеописанному способу решается масса проблем с лишними скриптами, картинками или файлами). Сделать можно любой портал.
Мне интересно - есть ли что-то подобное, но в виде готового решения - модуля или плагина? Для начинающих оно было бы проще. :)
 
вот в виде плагина и пытался найти сие решение
даже в принципе готов был выложить некую сумму
так что если будет желание можете состряпать а я в качестве благородного зрителя не пожалею в фонд donate
и сори за флуд )
 
Идея та же, но вообще-то я предложил лучше вариант. ))

В примере Andy_ham, нужно также отключать head, т.е. убрать
<jdoc:include type="head" /> иначе скрипты будут прописываться.

При добавлении плагина, нужно лезть в index.php и руками каждый раз прописывать, что выводить и для чего. В моём варианте не нужно знать php и лезть в код, всё делается через панель. Т.е. код прописывается в модуле и для модуля указывается где его выводить (например для определённого раздела, категории, страницы, а так же языка, браузера и т.д.)

Готовое решение вряд ли есть, потому что, нужно знать, какой плагин, что подгружает.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху