Cambio Skin Dinamico

« Older   Newer »
 
  Share  
.
  1.     +25    
     
    .
    Avatar

    Advanced Member

    Group
    M. Onorario
    Posts
    3,204
    Activity Level
    0
    Location
    Milano

    Status
    Offline

    Cambio skin dinamico



    Menu posto in basso alla pagina con icone che permette di cambiare la skin dinamicamente, mantenendo memorizzato nel browser la scelta selezionata.

    Caratteristiche

    - Possibilità di avere più di una skin per il proprio forum da far scegliere all'utente, NON cambiando all'aggiornamento, ma rimanendo fino alla fine della sessione o della cancellazione dei cookie.
    - Crea un piccolo menù personalizzabile e posizionabile in qualunque punto della pagina.
    - Non vengono utilizzate immagini per la barra di sfondo.
    - Design pulito e semplice.
    - Creazione di un codice personalizzato tramite generatore.

    Anteprima

    Un'anteprima dello script lo potete trovare QUI

    Installazione

    Il codice può essere generato molto semplicemente dal Generatore apposito. In ogni caso, per chi volesse personalizzarlo manualmente, ecco le istruzioni per l'installazione (questo menu di esempio avrà 2 icone, una per la skin di default e una con lo stile modificato):

    In Grafica>Codice HTML>Codice HTML che sarà mostrato in CIMA a tutte le pagine:

    CODICE
    <script type="text/javascript"><!--
    // ===================================
    // Cambio skin dinamico (compatibile con Forumfree)
    // Realizzato da _Lati_
    // (C) 2012 http://ffmagazine.forumfree.it/
    // Versione 1
    // =================================== -->
    function def() {
           document.write();
    }
    function skin1() {
           document.write("<style>STILE_DELLA_SECONDA_SKIN</style>");
    }
    if (localStorage.getItem('skin') === null) {
           localStorage.setItem('skin','def');
    }
    else if (localStorage.getItem('skin') === 'def') {
           null
    }
    else if(localStorage.getItem("skin") == "skin1") {
           skin1();
    }
    </script>


    Il funzionamento di questa parte è abbastanza semplice, in pratica rileva tramite lo Storage (supportato per lo più dai browser più recenti) quale stile applicare al forum/blog; la modifica del codice è altrettanto semplice:

    CODICE
    document.write("<style>STILE_DELLA_SECONDA_SKIN</style>");


    Come si può intuire, in questa parte si deciderà che stile applicare al forum una volta premuto un certo bottone che poi vedremo più avanti. Basterà sostituire STILE_DELLA_SECONDA_SKIN con lo stile della skin.

    Nel caso volete aggiungere altre skin basterà ripetere questa parte:

    CODICE
    function skin1() {
           document.write("<style>STILE_DELLA_SECONDA_SKIN</style>");
    }


    e

    CODICE
    else if(localStorage.getItem("skin") == "skin1") {
           skin1();
    }


    quante volte volete, ovviamente modificando skin1 con un'altro nome, un esempio:

    CODICE
    function skin1() {
           document.write("<style>STILE_DELLA_SECONDA_SKIN</style>");
    }
    function skin2() {
           document.write("<style>STILE_DELLA_TERZA_SKIN</style>");
    }


    e lo stesso vale anche per il secondo codice:

    CODICE
    else if(localStorage.getItem("skin") == "skin1") {
           skin1();
    }
    else if(localStorage.getItem("skin") == "skin2") {
           skin2();
    }


    Una volta completata questa parte, in Grafica>Codice HTML>Codice HTML che sarà mostrato in CIMA a tutte le pagine o in una sezione a vostra scelta:

    CODICE
    <script type="text/javascript">
    if (navigator.appName=="Microsoft Internet Explorer")
    {
    document.write('<style>#switch {display: none}<\/style>');
    }
    </script>
    <div id="switch">
    <div><a href="#" onclick="def();localStorage.setItem('skin','def')"><img src="URLIMMAGINE" /></a><span>TESTO</span></div>
    <div><a href="#" onclick="skin1();localStorage.setItem('skin','skin1')"><img src="URLIMMAGINE"></a><span>TESTO</span></div></div>


    Anche in questo caso la modifica è semplice, inanzitutto URLIMMAGINE andrà sostituito con un'immagine (preferibilmente di dimensioni 20x20px, soprattutto se si vuole posizionare il menu al centro della pagina), poi sostituite TESTO con un nome che volete dare alla skin. Nel caso avete inserito più skin, basterà aggiungere quante volte si vuole questa parte:

    CODICE
    <div><a href="#" onclick="skin1();localStorage.setItem('skin','skin1')"><img src="URLIMMAGINE"></a><span>TESTO</span></div>


    Come prima, modifichiamo skin1 con altri nomi; in questo caso i nomi dovranno essere identici a quelli che abbiamo impostato prima. Ad esempio:

    CODICE
    <div><a href="#" onclick="skin2();localStorage.setItem('skin','skin2')"><img src="URLIMMAGINE"></a><span>TESTO</span></div>


    E, quando verrà premuto, andrà a prendere gli stili da skin2();, cioè:

    CODICE
    function skin2() {
           document.write("<style>STILE_DELLA_TERZA_SKIN</style>");
    }


    Infine, mettere in Grafica>Colori e stili in un punto a vostra scelta:

    CODICE
    /* Cambio skin dinamico */

    #switch {background: #ccc; border: 1px solid #aaa; position: fixed; padding: 5px; bottom: 0; right: 0; border-radius: 5px 0 0 0}
    #switch div {float: left}
    #switch span {text-align: left; position: absolute; background: #EEE; border: 1px solid #AAA; padding: 2px; display: none; bottom: 30px}
    #switch div:last-child span {right: 0}
    #switch div:hover span {display: block}
    #switch img {padding-right: 4px}
    #switch div:last-child img {padding-right: 0}


    La posizione predefinita è in basso a destra attaccato al margine, consiglio comunque se si vuole posizionare in un'altro punto di utilizzare il generatore apposito.

    Passando alla modifica, per modificare il colore di sfondo e il bordo del menu, basterà modificare:

    CODICE
    #switch {background: #ccc; border: 1px solid #aaa; position: fixed; padding: 5px; bottom: 0; right: 0; border-radius: 5px 0 0 0}


    Più precisamente, background: #ccc per il colore di sfondo, e border: 1px solid #aaa per il bordo.

    Informazioni

    Questo script non contiene codici particolari, perciò funziona per la gran parte dei browser (ovviamente i più recenti) tranne Internet Explorer, a cui è stata rimossa la visualizzazione del menu, mentre su Opera lo script funziona, ma la pagina non viene aggiornata automaticamente. Se si utilizza il generatore consiglio di utilizzare icone non più grandi di 20x20px, soprattutto nel caso il menu deve essere centrato nella pagina in quanto il generatore calcola le icone con una dimensione di 20x20px. Appena potrò, comunque, vedrò di aggiornarlo in modo che si basa sulla dimensione dell'immagine e non su una dimensione predefinita. Ultima cosa, consiglio vivamente di non inserire troppi stili in quanto potrebbero pesare alla pagina, perciò rallenterebbe il caricamento.

    Crediti

    I crediti non sono obbligatori, però in quanto ci abbiamo messo del tempo per creare lo script e per postare questa guida ovviamente ci farebbe piacere avere un minimo di riconoscenza. In ogni caso i crediti nel codice HTML NON vanno rimossi, anche perchè non vi crea alcun fastidio in quanto non vengono visualizzati nella pagina. Per chi volesse, comunque, questi sono i crediti:

    CODICE
    <b>Script "Cambio skin dinamico" realizzato da <a href="http://ffmagazine.forumfree.it/?act=Profile&MID=3347616">_Lati_</a> per <a href="http://ffmagazine.forumfree.it/">Forumfree Magazine</a> </b>
    Rilasciato sotto <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">Licenza Creative Commons 3.0</a>


    Anteprima:

    Script "Cambio skin dinamico" realizzato da _Lati_ per Forumfree Magazine
    Rilasciato sotto Licenza Creative Commons 3.0

    Licenza

    Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

     
    Top
    .
  2. Shanks
         
     
    .

    User deleted


    Finalmente,bella notizia °<° , non vedo l'ora di vedere un forum con skin dinamica,
    Grazie a Lati e a tutto forumfree Magazine che hanno reso possibile questa cosa :D
     
    Top
    .
  3.      
     
    .
    Avatar

    Senior Member

    Group
    Lettore
    Posts
    10,077
    Activity Level
    0
    Location
    Fano

    Status
    Offline
    Ottimo lavoro. Complimenti.

    Una funzionalità richiesta da tanto tempo e finalmente è stata realizzata, un'ottima implementazione è stato anche il generatore di codice funzionale, semplice e intuitivo.

    Di nuovo i miei più sinceri complimenti :sisi:
     
    Top
    .
  4. .Aris
         
     
    .

    User deleted


    Oddio, è stupendo *_*
     
    Top
    .
  5.      
     
    .
    Avatar

    Advanced Member

    Group
    Lettore
    Posts
    1,882
    Activity Level
    0

    Status
    Anonymous
    Ottimo script, complimenti!
     
    Top
    .
  6.     +1    
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,400
    Activity Level
    0

    Status
    Anonymous
    SEEE! Ci siete riusciti! Siete i migliori!

    Aggiungo, è possibile mettere sia skin nuovo layout che vecchio?
     
    Top
    .
  7.      
     
    .
    Avatar

    Advanced Member

    Group
    M. Onorario
    Posts
    3,204
    Activity Level
    0
    Location
    Milano

    Status
    Offline
    Inanzitutto vi ringrazio per i complimenti, sono contento che lo troviate utile :)

    In ogni caso sì, funziona su entrambi i layout
     
    Top
    .
  8.      
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,400
    Activity Level
    0

    Status
    Anonymous
    Come bisogna fare? Basta inserire normalmente i css?
     
    Top
    .
  9.      
     
    .
    Avatar

    Senior Member

    Group
    Lettore
    Posts
    10,077
    Activity Level
    0
    Location
    Fano

    Status
    Offline
    CITAZIONE (_Lati_ @ 9/5/2012, 15:21) 
    [...] In ogni caso sì, funziona su entrambi i layout

    Perfetto ma mi è venuto un dubbio, il codice fornito va ad agire anche sul blocco sezioni e visto che nel vecchio layout il blocco sezioni hanno un ID diverso come può agire anche su quello nuovo?!
     
    Top
    .
  10.      
     
    .
    Avatar

    Advanced Member

    Group
    M. Onorario
    Posts
    3,204
    Activity Level
    0
    Location
    Milano

    Status
    Offline
    CITAZIONE (Revo @ 9/5/2012, 15:23) 
    Come bisogna fare? Basta inserire normalmente i css?

    Esattamente, basta inserire i css, che siano del nuovo o vecchio layout non ha importanza, semplicemente quando si effettuerà il cambio gli stili che avete scritto nei vari box andranno a sostituire quelli della skin originale
     
    Top
    .
  11.      
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,400
    Activity Level
    0

    Status
    Anonymous
    E come fa lo script a riconoscere se si tratta di New o Old layout?
    Comunque, Lati, bisogna per forza far apparire quel menu oppure si può mettere quel coso che hai messo tu stile vbulletin (menu a scelta)?
     
    Top
    .
  12.      
     
    .
    Avatar

    Advanced Member

    Group
    M. Onorario
    Posts
    3,204
    Activity Level
    0
    Location
    Milano

    Status
    Offline
    Semplicemente lo script non deve riconoscere nulla, l'unica cosa che fa è inserire un menu in un punto a vostra scelta, memorizzare la scelta fatta dall'utente e, in base a questo, modificare la skin sostituendoli, o per meglio dire, sovrapporli con quelli inseriti da voi. Nel forum di anteprima, ad esempio, gli stili che ho inserito per modificare la skin sono:

    CODICE
    body {background: #CCC} .mback {background: url(http://www.cantilux.net/files7/2199138024.jpg)} .mainbg .aa {background: #FFAEAE}


    e

    CODICE
    body {background: #444} .mback {background: url(http://www.cantilux.net/files7/1599872137.jpg)} .mainbg .aa {background: #FAFFAE}


    che andranno a sovrapporre gli stili già presenti nel forum.

    In ogni caso non ho ben capito cosa intendi del menu stile vBullettin
     
    Top
    .
  13.      
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,400
    Activity Level
    0

    Status
    Anonymous
    Hai presente, quello che hai messo sotto "Inserisci parola chiave"? Comunque, pensavo che il New Layout usasse altre classi, comunque vedrò di provarlo.

    Non mi funziona D: Rimane la stessa skin D:
     
    Top
    .
  14.      
     
    .
    Avatar

    Advanced Member

    Group
    M. Onorario
    Posts
    3,204
    Activity Level
    0
    Location
    Milano

    Status
    Offline
    Linkami il forum dove stai provando lo script, così vedo dov'è l'errore.

    In ogni caso se intendi il menu a tendina non ho provato ma credo si possa fare, appena ho tempo faccio una prova
     
    Top
    .
  15.      
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,400
    Activity Level
    0

    Status
    Anonymous
    Ottimo. L'errore è questo: inserendo un codice breve come il tuo, funziona tutto alla meraviglia: mettendone uno più lungo, l'html di tutto il forum, anche quello non dello script, mi si cancella tutto. Se aggiorni il forum, non sembra che si sia resettato perchè rimane tutto invariato, ma se provi ad inserire nelle finestre dell'html un qualsiasi codice, si resetta anche sul forum.
     
    Top
    .
90 replies since 9/5/2012, 13:52   5097 views
  Share  
.
Top