Возможность указывать порядок вывода javascript файлов в макете или зависимость от других скриптов
Например, нам нужно вывести jquery, slick и код инициализации из макета.
В коде макета указываем вот так:
На вкладке Javascript в макете указываем инициализацию:
(function($){
// slider
$('.object_pic').slick({
dots: true,
infinite: true,
speed: 300,
slidesToShow: 1,
adaptiveHeight: true,
arrows: false
});
})(jQuery);
В итоге все это будет выведено в таком порядке:
Что приводит к ошибке.
Комментарии
-
Core_Page::instance()
// jQuery
->prependJs('/includes/slick/slick.min.js')
// всплывает в начало очереди
->prependJs('/hostcmsfiles/jquery/jquery.min.js')
->showJs();Спасибо, так работает.
На мой взгляд, не совсем интуитивно понятно, получается инвертированное отображение.prependJs() добавляет в самое начало, единичное использование добавить просто в начало, если вызывать несколько раз, то последний prependJs() добавит в самое начало, сместив ранее добавленные через prependJs()
-
Предложенный вариант позволяет только добавить скрипты вначало, но не указывает порядок.
Например, мне нужно подключить скрипты четко в следующем порядке (иначе просто работать не будет):
/hostcmsfiles/jquery/jquery.min.js
/includes/slick/slick.min.js
/templates/template21/script.js
Если я укажу вывод так, как вы мне советуете, то ничего не получится, например вот этот код:
Core_Page::instance()
// jQuery
->prependJs('/hostcmsfiles/jquery/jquery.min.js')
->prependJs('/hostcmsfiles/jquery/jquery.min.js')
->showJs();
выводит у меня в таком порядке:
script src="/includes/slick/slick.min.js"
script src="/hostcmsfiles/jquery/jquery.min.js"
script src="/templates/template21/script.js"
так как скрипт slick.min.js зависим от jquery.min.js, то он работать не будет, если его вывести до подключения jquery.min.js.Core_Page::instance()
// jQuery
->prependJs('/hostcmsfiles/jquery/jquery.min.js')
->prependJs('/includes/slick/slick.min.js')
->showJs();
-
Не совсем понял задачу, если вам нужно скрипты подключать в макете в другом порядке, то есть варианты с http://www.hostcms.ru/documentation/step-by-step/templates/template/
Core_Page::instance()
// jQuery
->prependJs('/hostcmsfiles/jquery/jquery.min.js')