Подключение кастомных стилей и скриптов

Пример: сейчас в Админпанели много всего выводится на экран. Вывод надо как-то оформлять, и приходится либо в шаблоны встраивать объявления стилей, либо вообще инлайнить. Что совсем не есть гуд. Хотелось бы вынести все это хозяйство в отдельный файл и подключать на тех страницах, которые модуль выводит.

Например, так:

$this->Viewer_AddHeadCss('admin.css');// в заголовке хтмл-страницы будет подключен 
                                      // файл admin.css из активного скина - все пути и
                                      // оформление тега, как положено по спецификации,
                                      // Viewer задаст автоматом

$this->Viewer_AddHeadJs('admin.js'); // в заголовке хтмл-страницы будет подключен 
                                     // файл admin.js из активного скина

$this->Viewer_AddHead($text);      // в заголовок хтмл-страницы будет вставлен текст,
                                   // это может быть css-объявление, код javascript, 
                                   // ссылка на js-файл из гугловского репозиария и 
                                   // т.д. - т.е. любой текст; и тут, конечно, уже
                                   // правильность оформления тегов и проч. - на 
                                   // программере модуля

7 комментариев

avatar
Я сейчас на заказ работаю над модулем Loader, предназначенный для управления загрузкой JS, CSS файлов. Помимо того, что можно будет подключать или отключать в произвольном месте js и css, он будет собирать их в один js-файл и один css-файл (для ускорения загрузки страницы).

Помимо этого в админ панеле предусмотрено управление js и css для статических страниц. Хотим расширить этот функционал на общее управление вьювером, сейчас этот вариант обдумывается.

Если есть желание получить этот модуль — пишите, договоримся.
avatar
Речь не о том. Если мне лично для конкретного ресурса надо будет подключать доп. файлы, сливать их, кешировать, сжимать — я сделаю это без особых проблем. Упоминание Админпанели — это всего лишь для примера.

Мне кажется, подобные методы для модуля Viewer вообще будут полезны для разработчиков. К тому же, если подключать css и js файлы именно так, как я выше описал, то это первый шаг к оптимизации загрузки подобных файлов.
avatar
В таком случае воспринимайте мой комментарий как дополнительное предложение к вашему:

$this->Viewer_AddHeadJs('admin.js');

не просто подключает на страничку admin.js, а указывает специальному методу или модулю (loader`у) на это файл. А уже при формировании header`a странички подключаем слитые файлы, сформированные этим самым loader`ом.
avatar
Да, как раз о том и речь. Если вообще этот метод будет реализован, и большинство файлов именно так и будет подключаться, то остальное — дело техники.

Кстати, Макс активно юзает разработки Дм.Котерова, а у того недавно вышла вторая версия библиотекиHTTP_StaticMerger: www.dklab.ru/lib/HTTP_StaticMerger/
avatar
Интересная разработка. Только вот reverse proxy не самый оптимальный вариант, если делаешь под заказ. Да и в движек такое не совсем пойдет. Я использую свою систему файлового кеша.
avatar
сделаем
на счет объединения js и css файлов, да и вообще клиентской оптимизации, я за использование веб-оптимайзера от webo.in
  • ort
  • 0
avatar
он из коробки глючит на дефолтном шаблоне, хотя поддержка ЖУ и заявлена еще 2 версии назад.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.