Open macik opened 10 years ago
Мне идея нравится. Пожалуй, попробую потестировать.
Кстати, есть сайты, в которых тема на Bootstrap 2, а админка новая, на Bootstrap 3. Как в таких случаях поступать?
Bootstrap wrapper в основном нацелен на клиентскую часть, т.е. темы оформления сайта и плагины использующие внутри себя бустрап. Админка же у нас, исторически, стоит несколько особняком. И в принципе мне такой подход нравится, т.к. сайт может быть (для) своих нужд архи-примитивным, но админка должна оставаться всё тем же удобным и функциональным инструментом. Такой подход (полное разделение), кстати, используют многие CMS.
Но…в чем суть cot-bootstrap
? В том, чтобы удобно поддерживать единую (желательно актуальную) версию, где это возможно, для последующего простого обновления (плюс единое переключение на CDN, если нужно).
Поэтому если тема на BS2, то вероятно ей не нужен враппер.
Да все это понятно. Просто надо указать в описании номер версии и дать пояснение по таким вот случаям
Номер версии соответствует версии плагина и наоборот. Немного дополнил README_ru.md
Ок, и еще: актуальная версия уже -- 3.2.0
Да, в курсе. Затык в том что я внутри для рускоязычных я использую CDN яндекса, как самый быстрый. А они до сих пор не выложили на него свежих версий. Видимо придется для всех использовать CDN гугл или jsDelevr.
Раз такая пьянка пошла, сделай уж сразу и Font Awesome
Ок. С очередной версией.
Так, а если в админке bootstrap нужен, а во front-end нет, что плагин будет делать?
Плагин сам по себе не имеет отношения ни к фронтенду, ни к админке. Он лишь контейнер с файлами библиотеки, которые через определенные им переменные можно удобно использовать.
В нормальном режиме в конкретной теме (будь то админка или фронт-енд, в файле theme.rc.php
) должен быть явный вызов для загрузки, типа такого:
global $cot_bootstrap;
// Проверяем установлен ли плагин, версию бутстрапа и грузим необходимые файлы
if ($cfg['bootstrap'] && version_compare($cfg['bootstrap'], '3.0.0', '>=')) {
cot_rc_add_file($cot_bootstrap['css_file']);
cot_rc_add_file($cot_bootstrap['theme_file']);
cot_rc_link_footer($cot_bootstrap['js_file']);
}
Исключение составляет включенный в настройках плагина параметр «автозагрузка» (по умолчанию он выключен) — тогда плагин сам загрузит файлы бутстрапа и в админке и в скине.
Я развиваю тему того, что для различных компонентов использующих Bootstrap (плагины/модули/темы оформления) необходим единый «контейнер» с файлами Bootstrap. Чтобы каждый плагин/тема не тащили свою копию, создавая зоопарк версий, и возможные коллизии.
Для этих целей написал небольшую оболочку для бутстрапа. За счет которой он устанавливается в систему, и предоставляет простой интерфейс для загрузки файлов из «единого источника» всем остальным модулям.
Вот тут расписал немного подробностей: http://www.cotonti.com/forums?m=posts&q=7681 https://github.com/Kilandor/cotonti.com/issues/11
Вот ссылка на сам плагин: https://github.com/macik/cot-bootstrap/ Тут некоторое описание на русском:
https://github.com/macik/cot-bootstrap/blob/master/README_ru.md
Если не вдаваться в подробности, то вот рабочий пример для «Юкона» — надо в блок загрузки ресурсов
header.tpl
добавить 2 условия (проверка на наличие бутсрапа в системе):После этого весь бутстрап из дистрибутива Юкона можно смело выкидывать, он будет грузиться либо из центрального «источника», либо с CDN, если «оболочка» бутстрап не установлена в системе.