Kasha Опубликовано 18 июля, 2012 Жалоба Поделиться Опубликовано 18 июля, 2012 Озадачился просмотром готовых шаблонов которые предлагают фрилансеры для Simpl'ы... Наткнулся на то, что у всех есть скриншоты шаблонов, а поставить шаблон на демо-магазин можно только по предварительной договоренности. Решил что удобно будет сделать модулик который будет менять тему не из админки, а со стороны клиента. Выкладываю в паблик, может кому пригодиться.Установка:Заменяете файл view/indexview.php на этотЗаливаете в папки с темами файл themechanger.tplИ в каждой теме, в файле index.tpl после добавляете код{include file='themechanger.tpl'}В итоге получаем возможностью посмотреть все продаваемые шаблоны в онлайне и сразу.p.s. кто реализует более элегантное и грамотное решение просьба делиться решениями в паблик. ver. 2.1.0 Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 22 июля, 2012 Жалоба Поделиться Опубликовано 22 июля, 2012 Минус в этой реализации так то, что выбранная тема записывается в БД, что есть не очень хорошо.Я пробовал реализовывать через куки и у меня вполне стабильно все переключалось, но увы у меня были проблемы с корзиной, входом пользователя, регистрации и т.д. в общем все что связанно с куками.Попробую доделать модуль и выложу в паблик. Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 22 июля, 2012 Жалоба Поделиться Опубликовано 22 июля, 2012 Блин, такую ерунду сложно даже модулем назвать, а вы устроили тут практически консилиум. Есть сеты темы - подменяем их на сеты с сессии, если их нет то тема по умолчанию. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 22 июля, 2012 Жалоба Поделиться Опубликовано 22 июля, 2012 Визар собсно я так и сделал=) Цитата Ссылка на сообщение Поделиться на другие сайты
Kasha Опубликовано 22 июля, 2012 Автор Жалоба Поделиться Опубликовано 22 июля, 2012 Ой да ну, проблем в том что тема сохраняется в бд нет, а вот с тем что она криво чистит компилед - есть. Модуль не модуль - не суть важно. Главное что можно в живую смотреть шаблоны, а не ждать пока сонный дизайнер поставить тебе тему на демо магазин... Знаете-ли время нынче дорого стоит...p.s. если кто поправит реализацию - буду благодарен, мне пока некогда (( Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 22 июля, 2012 Жалоба Поделиться Опубликовано 22 июля, 2012 2-5 заказчиков, каждый из них выбрал нужную тему и соответственно в БД то одна то другая записалась, если одновременно это делать то не факт что каждый заказчик увидит ту тему которую выбрал он, а скорее всего увидит ту которую выбрал другой.Вот и выйдет такая белеберда.С куками же намного проще, храним имя темы в куке, далее через шаблон вызываем и каждый пользователь сайта видит свою выбранную тему=) Цитата Ссылка на сообщение Поделиться на другие сайты
Kasha Опубликовано 22 июля, 2012 Автор Жалоба Поделиться Опубликовано 22 июля, 2012 Выложи в паблик, думаю дизы оценят Цитата Ссылка на сообщение Поделиться на другие сайты
SimplaTemplate Опубликовано 28 июля, 2012 Жалоба Поделиться Опубликовано 28 июля, 2012 Можно как-то реализовать смену шаблона по ссылке? Из минусов после смены шаблона необходимо обновлять страницу. Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 27 апреля, 2013 Жалоба Поделиться Опубликовано 27 апреля, 2013 Так выложите решение Цитата Ссылка на сообщение Поделиться на другие сайты
Kasha Опубликовано 27 апреля, 2013 Автор Жалоба Поделиться Опубликовано 27 апреля, 2013 оно выложено, ссылки кривенькие, но работают Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 9 мая, 2013 Жалоба Поделиться Опубликовано 9 мая, 2013 Так в этом решении выбранная тема записывается в БД, а я имел ввиду решение, чтобы по ссылке (как валюты) менялось.Т.е. чтобы основная тема была основной, но при желании вызываем другую тему типа: /?theme_name=sosПри этом другие пользователи, видят сайт в основной теме.Помогите, потому-что даже по аналогии не могу допереть... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 view/View.php после строки parent::__construct(); пишем такой код: // Выбор шаблона if($template = $this->request->get('template', 'text')) $_SESSION['template'] = $template; if($template = $this->request->post('template', 'text')) $_SESSION['template'] = $template; api/Design.php ищем код: // Берем тему из настроек $theme = $this->settings->theme; и меняем его на следующий: // Берем шаблон из сессии if(isset($_SESSION['template'])) $theme = $_SESSION['template']; // Берем шаблон из настроек else $theme = $this->settings->theme; Теперь менять шаблон можно дописав &template=sport к ссылке на любой странице сайта, примерно так http://simplacms.ru/?template=sport Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 Да, Noxter, все работает, спасибо огромное!!!Конечно, там есть моменты со стилями (стиль берется не из шаблона сессии, а из темы по-умолчанию, объяснил как понимаю), но думаю можно допилить.Я это планирую попробовать подогнать под интеграцию с Вконтакте.Теоретически это тупой, но простой способ. А-то за 100 уев, как здесь предлагали не камильфо...Оцените шансы такого способа... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 Совсем забыл. <link href="design/{if $smarty.session.template}{$smarty.session.template}{else}{$settings->theme|escape}{/if}/css/style.css" rel="stylesheet" type="text/css" media="screen"/> Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 Ха, кстати, это также можно использовать для мобильной версии (принудительно), сложность со стилями убивается заменой {$settings->theme|escape} на название шаблона. Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 Совсем забыл. <link href="design/{if $smarty.session.template}{$smarty.session.template}{else}{$settings->theme|escape}{/if}/css/style.css" rel="stylesheet" type="text/css" media="screen"/>Ну да, Твое решение, красивше будет! Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 // Берем шаблон из сессии if(isset($_SESSION['template']) && is_dir($this->config->root_dir.'design/'.$_SESSION['template'])) $theme = $_SESSION['template']; // Берем шаблон из настроек else $theme = $this->settings->theme;Вот еще проверка на существование дирректории Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 Noxter, подскажи плиз, как подставить страницу шаблона:имею ввиду при переходе на шаблон http://site.ru/?template=sport нет тегов описания и прочего, а на странице http://site.ru/index.php?template=sport все это есть.Те как сделать редирект с ?template=sport на index.php?template=sport или идеальный вариант как с валютами, ссылка на ?template=sport и сразу показывается с этим шаблоном без шаблона в адресе. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 Noxter, подскажи плиз, как подставить страницу шаблона:имею ввиду при переходе на шаблон http://site.ru/?template=sport нет тегов описания и прочего, а на странице http://site.ru/index.php?template=sport все это есть.Те как сделать редирект с ?template=sport на index.php?template=sport или идеальный вариант как с валютами, ссылка на ?template=sport и сразу показывается с этим шаблоном без шаблона в адресе.Я уже все реализовал, чуть позже напишу туториал ожидай либо сам пробуй.Подскажу одно в форме используй POST запрос. Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 Спасибо, попробую сам, хотя... Если получится напишу. Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 Noxter, я извиняюсь, можешь больше подсказать а-то я закипаю уже.Не могу понять Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 мая, 2013 Жалоба Поделиться Опубликовано 10 мая, 2013 <form action="/" method="post"> Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 12 мая, 2013 Жалоба Поделиться Опубликовано 12 мая, 2013 К сожалению на локале, но действительно работает. Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 17 мая, 2013 Жалоба Поделиться Опубликовано 17 мая, 2013 C интеграцией Вконтакте, все получилось, правда не без сложностей! Но возникла проблема:Если пользователь находится на сайте Вконтакте в приложении магазина (где используется шаблон Вконтакте) и переходит на сайт базовый (где используется шаблон, пусть Simpla), то на базовом сайте он видит шаблон Simpla и это правильно ведь сессия одна.А как сделать проверку сесси на домен?Типа, если не simpla.ru // Берем шаблон из сессии и проверяем существование директории шаблона if(isset($_SESSION['template']) && file_exists($this->config->root_dir.'design/'.$_SESSION['template'])) && проверяем домен $theme = $_SESSION['template']; // Берем шаблон из настроек else $theme = $this->settings->theme;Не знаю возможно ли это вообще, подскажите плз Цитата Ссылка на сообщение Поделиться на другие сайты
Ogybil Опубликовано 17 мая, 2013 Жалоба Поделиться Опубликовано 17 мая, 2013 Прошу прощения на базовом сайте он видит шаблон Vkontakte Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.