Смена стилей шаблона из админки для Joomla

Опубликовано: 2019-09-18
Просмотров: 674
Настроение: Как всегда
+4
: 4
Задача: сделать возможным смену стилей в шаблоне Artisteer для Joomla из админ панели. Например что бы вид шаблона менялся согласно временам года. Есть подобные решения в виде скриптов, которые делают смену стилей автоматически через определенные промежутки времени, но у нас немного другая цель, сделать именно ручное управление из админки.

Вопрос был поднят на форуме. Так как подобное решение может кому то понадобиться, чтобы не потерялось, решил как посоветовали, вывести его блогом.

1. Для смены стилей простым редактированием в index.php:

Вначале сделаем просто без админки, возможно кого то устроит этот вариант.
Схема такая, делаете шаблон, и экспортируете в три разные папки с тремя разными стилями.
То есть вначале делаете зиму, экспортируете, потом лето, тоже экспортируете, но уже в другой вспомогательный шаблон из которого берете стили и переименовываете например в template2.css, кидаете его в папку стилей основного шаблона.
То же делаете и для двух остальных сезонов.

Теперь изображения, можно сделать так, переименовываем из вспомогательного шаблона папку images в images2, и кидаем в папку с шаблоном. Открываем вспомогательный файл стилей template2.css в Notepad++ находим первый же стиль с УРЛ к картинке примерно будет так:
Код PHP:
  1.  
  2. background: #FFFFFF url('../images/page.png') fixed;
  3.  
выделяем в нем слово images , и идем во вкладку Notepad++ вверху "Поиск" жмем на "Поиск..."
Дальше по картинке, нажимаем "заменить", ставим что на что менять, жмем "заменить все"

""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.


И так для всех четырех папок и стилей соответственно.

Теперь когда нужно сменить стиль на который нужно, открываем файл index.php

и меняем в нем в строке:
Код PHP:
  1.  
  2. <link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.css" media="screen">
  3.  
template.css на нужный.


Это примерный ход действий, но еще то же самое надо сделать для стилей для ИЕ.

2. А теперь смена из админки, как и было сказано

1. Вначале делаем все как писал выше, только для примера я назвал файлы стилей не template2.css, template3.css, а переименовал их примерно так zima.css, leto.css. Напомню что согласно заданию у нас должно получится 4 стиля для разных сезонов и к ним папки images

2. Все изменения делаем в еще не установленный шаблон, то есть делаем все в том шаблоне в котором собрали все 4 стиля для будущих смен сезонов.

3. Открываем папку шаблона и в ней нам нужны три файла index.php, templateDetails.xml и language/en-GB/en-GB.tpl_styleadmin.ini

Которые открываем в Notepad++ и делаем изменения:
1. файл index.php находим вверху между head подключение стиля:
Код PHP:
  1.  
  2. <link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.css" media="screen" />
  3.  
и заменяем на такую строку:
Код PHP:
  1.  
  2. <link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/<?php echo $this->params->get('sitStyle'); ?>.css" media="screen" />
  3.  
Закрываем файл index.php

2. Редактируем файл templateDetails.xml

Находим в конце него строку:
Код PHP:
  1.  
  2.  
  3. <field name="siteTitle" type="text" size="50" label="TPL_SITE_TITLE" description="TPL_SITE_TITLE_DESCRIPTION"/>
  4.  
И сразу после неё вставляем такую же строку но меняем в ней данные:
Код PHP:
  1.  
  2. <field name="sitStyle" type="text" size="50" label="TPL_SIT_STYLE" description="TPL_SIT_TITLE_DESCRIPTION_STYLE"/>
  3.  
Обратите внимание, что в этой строке name="sitStyle" имеет то же значение, что и для вывода в стилях (которое делали) в index.php

Закрываем файл.

3. Редактируем файл language/en-GB/en-GB.tpl_styleadmin.ini

То есть добавляем туда параметры значений из добавленной строки в файл templateDetails.xml

Код PHP:
  1.  
  2. TPL_SIT_STYLE="Style"
  3. TPL_SIT_TITLE_DESCRIPTION_STYLE="zima leto osen vesna"
  4.  
Обратите внимание значения в них добавлены на английском, что бы не было крякозябр, сами значения можно написать любые это название и описание будущего нового поля в админке.

Закрываем файл.

Теперь запаковываем архив в папку .zip

Далее устанавливаем шаблон, делаем его по умолчанию, заходим в админке в его настройки, и должны увидеть такую картинку.
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.



В новое поле Style вписываем значение zima (то есть одного из наших файлов .css) которые делали ранее под каждый сезон шаблона.

Жмем на кнопку "Import Content From Template" то есть устанавливаем контент.
Дальше на все "сохранить".

Теперь если нужно поменять стиль шаблона на другой сезон вводим в поле Style просто другое имя файла стилей например leto

Как то так. smoke
Забыл, это сделано только для основного стиля, для стиля ИЕ все делаем аналогично только изменяем соответственно данные, что бы не пересекались, ну, и для админки называем что бы было понятно.
Кстати для ИЕ может вообще не надо делать? joke
Комментарии (1)
WaRRan #
: 0
Респект за статью, жаль что раньше не увидел.

Случайное из блогов

samson
Темы для WP от Artisteer в админке имеют довольно много настроек, но в связи с тем, что у них не переведены...
8 - +6
artnikov
Доброго всем здоровья! что единственное самое главное, а остальное, как нибудь получится. После...
13 - +6
samson
Всем известны сервисы по сбору статистики от Google, Яндекс и Liveinternet. Предлагаю свой альтернативный...
6 - +9
samson
Доля покупок и оказания услуг в интернете все увеличивается. Нам все больше приходится платить он лайн....
3 - +8
samson
Так как многих давно интересовало как сделать суффиксы модулей для Джумла в Artisteer 4.1-4.2 то выкладываю...
7 - +11