Не хватает одной $wa_theme_version для всех ситуаций с JS и CSS в темах дизайна

4

В последнем обновлении заменял /wa-system/view/waView.class.php на свой и решил написать предложение на форум на основе каких-то давних правок для этого файла.

Допустим есть приложения Сайт, Блог, Магазин, Фото. Для них есть тема дизайна XXX.
Номера версий и номера редакций темы для приложений следующие:
Сайт - version 3.0 и edition 4500
Блог - 3.4 и 190
Магазин - 3.1d и 1878
Фото - 3.1 и 65

В итоге {$wa_theme_version} в разных приложениях, в зависимости от структуры сайта будет отдавать всяко-разно, но по факту ерунду, которую и трактовать не особо удобно, а складывающиеся номера редакций вообще тяжко. Зачем делать это так, чтобы у одного и того же общего CSS или JS в разных приложениях менялся номер версии и редакции?

Все CSS и JS условно делятся на два типа: подключаемые в рамках шаблонов темы только одного конкретного приложения (локальные) и общие для нескольких приложений (глобальные), которые обычно выносятся в каталоги site/themes/xxx/js или site/themes/xxx/css.

Логично бы подключать глобальные как

{$wa_parent_theme_url}css/theme.css?{$wa_parent_theme_version}

а локальные в нужных шаблонах как

{$wa_active_theme_url}js/shop.js?{$wa_active_theme_version}

Если родительская тема у Сайта, то в номер версии для общих файлов отдавать всегда данные от родителя т.е. 3.0.4500
Для локально подключенных отдавать в зависимости от приложения 3.4.190, 3.1d.1878 или 3.1.65 и ничего там не суммировать и не перемножать и не подкладывать вместо 3.1d Магазина 3.0 от Сайта.
Собственно в моих проектах так и отдается. Всегда видно версию темы приложения и номер редакции и тип подключаемого css или js файла. При правках номера редакций корректно меняются. Со сменой версии темы тоже все прозрачно.

И сразу понятно откуда какие ноги растут. Проверочный код для "посмотреть что почем" очень простой. В index.html достаточно написать

<!--
{$wa_theme_url} - wa_theme_url
{$wa_active_theme_url} - wa_active_theme_url
{$wa_parent_theme_url} - wa_parent_theme_url

{$wa_active_theme_path} - wa_active_theme_path
{$wa_parent_theme_path} - wa_parent_theme_path

{$wa_theme_version} - wa_theme_version
{$wa_active_theme_version} - wa_active_theme_version
{$wa_parent_theme_version} - wa_parent_theme_version
-->

и смотреть что на выходе. Для родительской темы строки в группах будут одинаковые. В приложениях пойдут изменения.

Однако существующая схема не дает нормально администрировать эту часть в шаблонах при сборке темы дизайна, поэтому лепится как есть на том, что доступно. Работает же и ладненько.

На скриншоте waView.class.php измененные и добавленные строки отмечены комментариями (пришлось написать). Все старые конструкции работают как и ранее без изменений, но можно применять и новые как в двух примерах выше.



Правки кода выглядеть могут как-то иначе (вариантов много). Для себя остановился когда-то давно на такой версии. Не без изъянов скорее всего, но мои потребности закрывает.

Основная идея предложения заключается в том, чтобы дать немного больше (+2) понятных переменных для получения без проблем номера версии и редакции темы любого приложения и родительской темы и наглядно видеть подключения файлов от родителя или только внутри приложения. Реализация может быть любой. Важен результат в виде простых юзабельных переменных.

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

    Добавить комментарий

    Чтобы добавить комментарий, зарегистрируйтесь или войдите