Forums / National / Russian / Тех. поддержка / Условия в загрузках ресурсов (CSS)

как правильнее сделать

Macik
#1 2012-04-17 14:40

В некоторых проектах, подключая различные CSS и JS модули/фреймворки периодически сталкиваюсь с необходимостью в заголовок страницы вставлять
условия для загрузки ресурсов в зависимости от версии браузера. 

Пример:
 

<!--[if lt IE 7]><link rel="stylesheet" href="bootstrap/css/bootstrap-ie6.min.css"><![endif]-->

Если этот код необходим для всего проекта - проблем нет - зашиваем «намертво» эту строку в шаблон темы оформления.

Но когда такое нужно использовать только на определенной странице (плагине) приходится создавать отдельный файл в плагине, вешать его на «Hooks=header.first» и там править данные $out['head_head']. 

Вопрос, есть ли какой-либо более элегантный способ включить такую строку только для определенных страинц? 

 

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Trustmaster
#2 2012-04-17 15:38

Если на уровне шаблона, то используя конструкцию IF шаблонизатора. Если на стороне PHP, то описанным способом. Ещё можно было бы добавить параметр в cot_rc_link_file(), позволяющий указать код полностью, а не только имя файла.

May the Source be with you!
esclkm
#3 2012-04-18 05:57

скорее параметр позволяющий делать доступные для людей логики. ибо условных комментариев не так много)))

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Moool13
#4 2012-04-18 09:18

Ещё можно было бы добавить параметр в cot_rc_link_file(), позволяющий указать код полностью, а не только имя файла.

За.

Dayver
#5 2012-05-03 23:02

Воспользуюсь этой темой что бы задать свой похожий вопрос.

 

Итак в сиене для того что бы модуль мог подключить свои css js файлы в секции <head>...</head> можно в хуке rc вызвать функцию cot_rc_add_file('адрес_js_или_css_файла'), но дело в том что как все знаю последовательность css правил имеет огромное значение(а значит и последовательность подключения файлов) и тут могут возникнуть проблемы если воспользоватся таким автоматическим подключением. Поскольку в секцию <head> такие инклуды попадают по принцыпу все что на хуке rc, а потом уже из файла {$cfg['themes_dir']}/{$usr['theme']}/{$usr['theme']}.rc.php то инклуды в расширениях можно сортировать отсносительно друг друга, а вот отсносительно подключаемого через тему уже нельзя что вызывает проблемы.

 

Соответственно вопрос в том как модуль может подключить css файл после того что подключается в {$cfg['themes_dir']}/{$usr['theme']}/{$usr['theme']}.rc.php ?

Может нужно  как то продумать возможность сортировки ресурсов в массиве $cot_rc_reg который управляется функцией cot_rc_consolidate ?

Pavlo Tkachenko aka Dayver
Macik
#6 2012-05-04 18:43

Да, я тоже постоянно с этим сталкиваюсь. Пока решаю это следующим образом:

  • В plug.rc (hook=rc) гружу (как правило) только JS файлы, через cot_rc_link_footer(); (через cot_rc_link_footer для некоторого ускорения загрузки страницы)
  • CSS файлы гружу через plug.header (Hooks=header.first), используя cot_rc_link_file(); для заведомого размещения после RC файлов темы оформления.

но это, однозначно, костыли.

Если бы был механизм определения порядка закгрузки я тоже был бы рад.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Trustmaster
#7 2012-05-05 06:42

Можно добавить параметр числового приоритета, аналогично Order у хуков. Как вам такой вариант?

May the Source be with you!
esclkm
#8 2012-05-05 07:00

прекрасно над ним же думал... и параметр logic)

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Eugene
#9 2012-05-05 13:14
#34200 Trustmaster:

Можно добавить параметр числового приоритета, аналогично Order у хуков. Как вам такой вариант?

Отлично.

Dayver
#10 2012-05-05 13:57

Согласен

и параметр logic)

А это для каких целей?

Pavlo Tkachenko aka Dayver