Всем доброго времени суток!
В одном из шаблонов от Dezerit Web Group, мне понравилась реализация смены стилей CSS в шаблоне сайта.
Т.К. Я не нашел этой реализации в блогах и форуме, в своём первом посте хочу рассказать о том, как это можно реализовать!
1. В файле template.php добавить переменные
После
Добавить ниже
2. Изменить строку в которой прописан путь к файлу стилей шаблона (добавляется только id)
Это
Заменить на это и добавить ниже скрипт
style — это название папки со стилем, а <?php echo $selStyle;?> — та переменная, которая будет выступать ввиде номера папки
3. В нужном месте шаблона вставить кнопки, с помощью которых пользователь будет выбирать стиль сайта
4. Последнее что остаётся сделать, это создать отдельные папки для каждого стиля и закинуть ваши разные стили!
В корне шаблона создать 2 папки с названием style1 и style2. (можно больше, зависит от количества Ваших стилей)
За выбор номера папки будет отвечать переменная $selStyle, которую создали ранее
Структура вложенных папок должна быть примерно такой:
пример:
-style1
--css
--images
--js
При выборе стиля пользователем, настройки сохраняются даже после закрытия браузера. При повторном открытии сайта, будет загружен последний выбранный пользователем стиль.
Демо можно посмотреть тут
Удачи!!!
В одном из шаблонов от Dezerit Web Group, мне понравилась реализация смены стилей CSS в шаблоне сайта.
Т.К. Я не нашел этой реализации в блогах и форуме, в своём первом посте хочу рассказать о том, как это можно реализовать!
1. В файле template.php добавить переменные
После
$inUser = cmsUser::getInstance(); $inCore = cmsCore::getInstance(); $mod_count['top'] = cmsCountModules('top'); $mod_count['sidebar'] = cmsCountModules('sidebar');
/*Стиль шаблона*/ $selStyle="1"; /*Введите между кавычек номер стиля загружаемого по умолчанию*/
Это
<link id="dyncss" href="/templates/_ваш шаблон_/style<?php echo $selStyle;?>/css/main.css" rel="stylesheet" type="text/css" />
<script type="text/javascript"> function selStyle(url) { if (!arguments.length) { url = (url = document.cookie.match(/\bdyncss=([^;]*)/)) && url[1]; if (!url) return ''; } document.getElementById('dyncss').href = url; d.setFullYear(d.getFullYear() + 1); return url; } selStyle(); </script>
3. В нужном месте шаблона вставить кнопки, с помощью которых пользователь будет выбирать стиль сайта
//Пример для вставки Вариант в виде контекстной ссылки <a href="javascript://" onclick="selStyle('Ссылка на стиль 1.css');return false;">Стиль 1</a> <a href="javascript://" onclick="selStyle('Ссылка на стиль 2.css');return false;">Стиль 2</a> Вариант с картинкой, которая выступает в роли ссылки <img style="border:0 none;cursor:pointer;" src="Ссылка на картинку" onclick="selStyle('/templates/_ваш шаблон_/style/blue.css')" /> <img style="border:0 none;cursor:pointer;" src="Ссылка на картинку" onclick="selStyle('/templates/_ваш шаблон_/style/green.css')" />
В корне шаблона создать 2 папки с названием style1 и style2. (можно больше, зависит от количества Ваших стилей)
За выбор номера папки будет отвечать переменная $selStyle, которую создали ранее
Структура вложенных папок должна быть примерно такой:
пример:
-style1
--css
--images
--js
При выборе стиля пользователем, настройки сохраняются даже после закрытия браузера. При повторном открытии сайта, будет загружен последний выбранный пользователем стиль.
Демо можно посмотреть тут
Удачи!!!
Реклама #
WALTERZ 12 лет назад #
+
CROSS ツ 12 лет назад #
P.S. Этим методом можно сделать смену макета сайта (grid сетки)
Mr.Andreius 12 лет назад #
убирать / добавлять сайдбар
менять расположение позиций
Mr.Andreius 12 лет назад #
не проще в одной папке положить два разных стиля и менять их названия?
<link id="dyncss" href="/templates/_ваш шаблон_/css/styles-style<?php echo $selStyle;?>.css" rel="stylesheet" type="text/css" />
CROSS ツ 12 лет назад #
CROSS ツ 12 лет назад #
Олег 12 лет назад #
Прикольно.
CyberMan 12 лет назад #
CROSS ツ 12 лет назад #
Сделать по тому же принципу!
Я у себя это не сразу сделал! Стиль был один!
CyberMan 12 лет назад #
CROSS ツ 12 лет назад #
Прописать путь к картинке в css, так сделано в дефолтном шаблоне инстанта))
CROSS ツ 12 лет назад #
Dost 12 лет назад #
Def 12 лет назад #
CROSS ツ 11 лет назад #