Page 1 of 1
przełącznik wyglądu strony ?
Posted: Sat Mar 27, 2010 12:17 pm
by requish
witam,
nie wiem jak to sie nazywa po angielsku wiec pisze tu
Chodzi o taki button na każdej podstronie który pozwala na przełączenie wyglądu strony z A na B. Przykładowo są strony gdzie mozna zmienić kolor tła, mnie chodzi o cały wygląd. Ale z pozostawieniem struktury nawigacyjnej i nazw linków itd.
Czy ktoś spotkał się z czyms takim już, miał może okazję zrobić taki dodatek?
Proszę o wskazówki i pomoc.
Pozdrawiam.
Re: przełącznik wyglądu strony ?
Posted: Sat Mar 27, 2010 1:12 pm
by kenumir
ogólnie to nie słyszałem o takim dodatku
ja rozwiązałbym to w taki sposób że jak ktoś wchodzi na stronę i kliknie button do zmiany wyglądu to w cookie zapisuje się informacja o tym i ładowany jest odpowiedni szablon dla stron (czasami może wystarczy ładowanie samego css)
masz fajny pomysł na napisanie czegoś - nie szukaj gotowego, napisz to sam

lepsza zabawa
Re: przełącznik wyglądu strony ?
Posted: Sat Mar 27, 2010 2:06 pm
by requish
kenumir wrote:
masz fajny pomysł na napisanie czegoś - nie szukaj gotowego, napisz to sam

lepsza zabawa
hehe, tak ale ze mnie programista aplikacji taki że ho ho

jestem bardziej grafikiem który potrafi zakodować swoją grafikę i wstawić do CMSa
Pozdro.
Re: przełącznik wyglądu strony ?
Posted: Thu Apr 08, 2010 12:45 pm
by korpirkor
Napisane na szybko, nie testowałem tego ale jest szansa, że zadziała

1. Tworzymy katalog /templates/
2. Dodajemy do niego szablony podzielone na dwie części: to co przed {content} i to co po tym - tzn np:
pierwszy_gora.tpl
pierwszy_dol.tpl
drugi_gora.tpl
drugi_dol.tpl
3. W ustawieniach globalnych do Globalne Metadane dodajemy
Code: Select all
<__script__ type="text/javascript">
function setCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
</__script>
4. W miejscu, gdzie chcemy mieć linki do zmiany wyglądu wstawiamy:
Code: Select all
<a href="javascript:setCookie("szablon","pierwszy",10); window.location.reload();">szablon 1</a>
<a href="javascript:setCookie("szablon","drugi",10); window.location.reload();">szablon 2</a>
5. Szablon każdej strony będzie wyglądał mniej więcej tak:
Code: Select all
{process_pagedata}{assign var="szablon" value=$smarty.cookies.szablon}
{capture name="gora"}templates/{$szablon}_gora.tpl{/capture}
{* Jeżeli nazwa szablonu z cookisa jest zła to ustawiamy domyślny *}
{if !file_exists($smarty.capture.gora) }
{assign var="szablon" value='pierwszy'}
{capture name="gora"}templates/{$szablon}_gora.tpl{/capture}
{/if}
{capture name="dol"}templates/{$szablon}_dol.tpl{/capture}
{assign var="f" value=$smarty.capture.gora}
{include file="../../$f"}
{content}
{assign var="f" value=$smarty.capture.dol}
{include file="../../$f"}
I mam nadzieję, że to ruszy x-D
Re: przełącznik wyglądu strony ?
Posted: Thu Apr 08, 2010 8:32 pm
by requish
Super. Niedługo sprawedze to.
A w jakim celu jest 'gora' i 'dol' ?
Rozumiem, ze mam stworzyć jeden szablon, ktory bede przypisywal do stron, a w tym szablonie bedzie skrypt do zmian i czerpania szablonow!?
Pozdro

Re: przełącznik wyglądu strony ?
Posted: Fri Apr 09, 2010 1:25 am
by korpirkor
no w sumie może obejdzie się nawet z jednym... po prostu CMS MS każdemu {content} w szablonie tworzy odpowiadające mu pole edycji w PA... Bałem się, że dając wszystko do jednego pliku bym coś zepsuł
Skrypt JS i możliwość wyboru powinna się raczej znaleźć w każdym szablonie

Re: przełącznik wyglądu strony ?
Posted: Fri Apr 09, 2010 8:26 am
by requish
Ok, sprawdziłem obie możliwości. Niestety nie działa. Szablon czerpie treści, ale grafiki i css nie. Rowniez nie przełącza podlinkowanych szablonow.

Re: przełącznik wyglądu strony ?
Posted: Fri Apr 09, 2010 4:31 pm
by korpirkor
no CSSy w takiej sytuacji trzeba statycznie ustawić... a grafiki powinno pobierać:P
Re: przełącznik wyglądu strony ?
Posted: Sat Apr 10, 2010 8:21 am
by requish
korpirkor wrote:
no CSSy w takiej sytuacji trzeba statycznie ustawić... a grafiki powinno pobierać:P
aha, no ale i tak przełącznik nie zadziałał. szablon sie nie zmienial po kliknienciu w link do szablonu 2.
Re: przełącznik wyglądu strony ?
Posted: Sat Apr 10, 2010 8:55 am
by GoGo
to sie nazywa styleswitcher! Jedna css-file pro wyglad!
Re: przełącznik wyglądu strony ?
Posted: Sat Apr 10, 2010 9:13 am
by requish
GoGo wrote:
to sie nazywa styleswitcher! Jedna css-file pro wyglad!
Ale nie chodzi o przełącznik css. Bo
układ i
rozmieszczenie divow i innych elementow bedzie inny, a cssem tego nie zrobie.
Re: przełącznik wyglądu strony ?
Posted: Sat Apr 10, 2010 10:09 pm
by korpirkor
Jak nie działa, gdy działa ?

Napisze jeszcze raz, prościej

1. tworzymy katalog
templates/
2. A w nim są pliki:
- pierwszy_gora.tpl
- pierwszy_dol.tpl
- drugi_gora.tpl
- drugi_dol.tpl
- w plikach
_gora jest to co PRZED {content}
- w plikach
_dol to co PO {content}
3. Dodajemy Znacznik Użytkownika o nazwie
zmienstyl
Code: Select all
echo '<__script__ type="text/javascript">function setCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}</__script>';
echo '<a href="javascript:window.setCookie(\'szablon\',\'pierwszy\',10);window.location.reload();">szablon 1</a>
<a href="javascript:setCookie(\'szablon\',\'drugi\',10);window.location.reload();">szablon 2</a>';
Edytujemy go zależnie od nazw styli itd.
4. Nasz szablon w CMSie powinien wyglądać tak:
Code: Select all
{process_pagedata}{assign var="szablon" value=$smarty.cookies.szablon}
{capture name="gora"}templates/{$szablon}_gora.tpl{/capture}
{* Jeżeli nazwa szablonu z cookisa jest zła to ustawiamy domyślny *}
{if !file_exists($smarty.capture.gora) }
{assign var="szablon" value='pierwszy'}
{capture name="gora"}templates/{$szablon}_gora.tpl{/capture}
{/if}
{capture name="dol"}templates/{$szablon}_dol.tpl{/capture}
{assign var="f" value=$smarty.capture.gora}
{include file="../../$f"}
{content}
{assign var="f" value=$smarty.capture.dol}
{include file="../../$f"}
Uwagi końcowe:
- Właśnie pomyślałem, że nie trzeba używać _gora i _dol, wystarczy {content assign=..} ale już nie chce mi się tego aktualizować
- żeby wstawić parę {content block=...} trzeba się pogłowić, ale to jest jak najbardziej możliwe
- Nasz główny szablon musi się nazywać pierwszy_gora.tpl i pierwszy_dol.tpl. kolejne dowolnie, pod warunkiem, że odpowiednio zmienimy znacznik użytkownika
zmienstyl
- powinniśmy zastosować statyczne pliki CSS i pozbyć się znacznika {stylesheet}
- znacznik {zmienstyl} wstawiamy w każdym szablonie (np _gora)
Re: przełącznik wyglądu strony ?
Posted: Sun Apr 11, 2010 8:12 am
by requish
Hmm w wolnej chwili spróbuję jeszcze raz wdrożyć Twoj sposób.
Póki co dzięki, a jak będzie działać to kliknę Ci [applaud]
Pozdro i do usłyszenia