Оптимизация CSS и JS для разных страниц

#
Оптимизация CSS и JS для разных страниц
Здравствуйте!
Подскажите, есть ли какой-то штатный способ разделение CSS и JS для разных макетов кроме написания для каждого в вкладках CSS или JS?
Возникала необходимость загружать как обычно с компрессией разные скрипты в зависимости от страницы: на главной один набор, в каталоге второй, в корзине третий.

Попробовал такой подменой, вроде работает, объединяется, сжимается (за эту возможность вам огромное спасибо). Но может есть какое-то более элегантное решение? Может хуки какие-то есть специальные.

И в моем решении я так понимаю отпадает вообще использование кэширования.


<?php
Core_Page::instance()->clearJs();
   $page = 2;
   switch ($page) {
      case 1:
         Core_Page::instance()->js('/hostcmsfiles/jquery/slider/jquery-ui.js')->js('/templates/template1/hostcms.js');
         break;
      case 2:
         Core_Page::instance()->js('/hostcmsfiles/jquery/lightbox/js/jquery.lightbox.js')->js('/hostcmsfiles/jquery/stars/jquery.ui.stars.js');
         break;
   }
Core_Page::instance()->showJs();
?>
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
Модератор
#
Re: Оптимизация CSS и JS для разных страниц
nikolajgromkov,
есть хук, например, Core_Page.onBeforeShowJs
все хуки вы можете найти в Core_Page
#
Re: Оптимизация CSS и JS для разных страниц
Примерно так?

class Core_Page_Observer
{
   static public function onBeforeShowJs($Core_Page)
   {
       // Здесь логика определения макета/страницы,
       // например $Core_Page->structure->template_id, затем
      $Core_Page->js('/hostcmsfiles/jquery/slider/jquery-ui.js');
   }
}
Core_Event::attach('Core_Page.onBeforeShowJs', array('Core_Page_Observer', 'onBeforeShowJs'));


Подскажите куда размещать сам observer?
Если в Core_Mail для хука размещали в /modules/core/mail/, то тут непонятно.
И к этому же вопрос: как правильно вообще эти обсерверы размещать для многосайтовости (на одном сайте надо, на другом не надо)? С хуке проверять совпадения по id сайта?
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
#
Re: Оптимизация CSS и JS для разных страниц
Модуль по управлению такими штуками почти готов
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Оптимизация CSS и JS для разных страниц
Цитата:
Подскажите куда размещать сам observer?


Можете создать папку page и разместить в нем.

Цитата:
С хуке проверять совпадения по id сайта?


Да, в самом хуке можете проверять на константу  CURRENT_SITE

«Не выходи из комнаты, не совершай ошибку…»
Авторизация