1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

js в Joomla!

Тема в разделе "Joomla", создана пользователем nikoter, 30 янв 2011.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. nikoter

    nikoter

    Регистр.:
    29 май 2008
    Сообщения:
    195
    Симпатии:
    23
    Как заставить загружаться js только на тех страницах на которых они нужны
    допустим что бы jquery загружался только в компоненте zoo
    а highslide только на тех страницах на которых он установлен
    а то у меня все эти скрипты начинают все вместе грузиться и их вес достигает 700 кб
     
  2. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Тема эта интересная, я её поднимал уже и здесь и на форумах по 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

    Единственный минус у этого способа в том, что если ставить новый плагин на сайт, то нужно лезть в него и смотреть что он подгружает.
     
  3. Andy_ham

    Andy_ham Джедай на пенсии

    Регистр.:
    3 сен 2007
    Сообщения:
    450
    Симпатии:
    263
    Можно использовать минимальные познания в php и подключать js в зависимости от компонентов или страниц. Для этого в шаблоне пишем примерно такую конструкцию
    PHP:
    <?php if ($option=='com_frontpage' or ($option=='com_content' && $task=='blogsection' && $id==) ) { ?>
    <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 ?>
    Само собой, компоненты и условия пишем свои. Эти приведены для примера! :)
     
    bork75 и nikoter нравится это.
  4. nikoter

    nikoter

    Регистр.:
    29 май 2008
    Сообщения:
    195
    Симпатии:
    23
    вот. вот это уже дело )
    на днях попробую обязательно
    вот только тяжко у меня со знанием php
    не могли бы более подробно пояснить за что что отвечает и как точно надо писать
    для того что бы было более понятно вот сайт
    http://vuchalah.ru
     
  5. Andy_ham

    Andy_ham Джедай на пенсии

    Регистр.:
    3 сен 2007
    Сообщения:
    450
    Симпатии:
    263
    Объяснять на пальцах трудновато будет, надо просто знать ОСНОВЫ. А чтобы было проще разобраться в вышеприведенной конструкции, то вот расшифровка
    PHP:
    <?php if ($option=='com_frontpage') { ?>
    //либо такой вариант
    <?php if ($option=='com_frontpage' or ($option=='com_content' && $task=='blogsection' && $id==) ) { ?>
    // т.е относительная свобода творчества присутствует
    тут путь к нужному скрипту
    <?php } else if ($option=='com_хзчто') { ?>
    тут путь к нужному скрипту
    .... //повторяй предыдущеие 2 строки n раз, пока расширения или ID не кончатся (по желанию, есно)
    <?php ?>
    Все нужные параметры $option, $task, $id и прочее можно увидеть в адресной строке браузера при отключенном SEF
     
  6. nikoter

    nikoter

    Регистр.:
    29 май 2008
    Сообщения:
    195
    Симпатии:
    23
    <?php if ($option=='com_frontpage') { ?>
    я так понимаю это определение компонента
    <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/javascript/нужный_скрипт.js"></script>
    а это так понимаю подгрузка самого именно скрипта
    и интересно в J1.6 решили этот вопрос
    или так и осталось
     
  7. Andy_ham

    Andy_ham Джедай на пенсии

    Регистр.:
    3 сен 2007
    Сообщения:
    450
    Симпатии:
    263
    Именно так. Определяем компонент, при необходимости определяем task и(или) id и если условие выполняется - подгружаем нужный скрипт ( картинку, файл, что угодно).
    В 1.6 не думаю, что этот вопрос выведен в отдельное решение. Ибо это "проблема" ваша и вашего шаблона, а отнюдь не CMS. :)
     
  8. Andy_ham

    Andy_ham Джедай на пенсии

    Регистр.:
    3 сен 2007
    Сообщения:
    450
    Симпатии:
    263
    Сие уже есть флуд.
    Обсуждаем проблему подгрузки скриптов, а совсем не то, что больших порталов не сделать( что в корне не верно, ибо по вышеописанному способу решается масса проблем с лишними скриптами, картинками или файлами). Сделать можно любой портал.
    Мне интересно - есть ли что-то подобное, но в виде готового решения - модуля или плагина? Для начинающих оно было бы проще. :)
     
    nikoter нравится это.
  9. nikoter

    nikoter

    Регистр.:
    29 май 2008
    Сообщения:
    195
    Симпатии:
    23
    вот в виде плагина и пытался найти сие решение
    даже в принципе готов был выложить некую сумму
    так что если будет желание можете состряпать а я в качестве благородного зрителя не пожалею в фонд donate
    и сори за флуд )
     
  10. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Идея та же, но вообще-то я предложил лучше вариант. ))

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

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

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