Visualizzazione risultati 1 fino 10 di 10

Discussione: Decidere il css della pagina, stabilmente fino a nuova scelta

  1. #1
    Guest

    Question Decidere il css della pagina, stabilmente fino a nuova scelta

    Un saluto a tutti...
    Ho bisogno di sapere una cosa, ho provato su altri forum, ma senza successo:
    avete presente la possibilità di cambiare al volo il css di una pagina? Con un js si permette al visitatore della pagina di selezionare una modalità di visualizzazione, poniamo con bg blu o con bg rosso... Un selettore richiama blu.css o rosso.css, a seconda della scelta effettuata...

    Bene, questa cosa però la decide il singolo visitatore della pagina... un altro visitatore che visualizzi la pagina la troverà con il css di default, diciamo così...

    E se invece volessi decidere io amministratore del sito con quale css oggi la mia pagina venga visualizzata dagli utenti?
    Ponaimo che nel mese X voglio che il css da impiegare sia rosso.css, nel mese Y invece voglio che il css impiegato sia blu.css
    Esiste un modo per permettere questa scelta (senza naturalmente intervenire sui files caricando un css modificato: questo lo so fare io, ma il gestore del sito non è capace di intervenire su un file css per modificarlo e reuploadarlo)?

    Qualcosa tipo uno scriptino che dica alla mia pagina di stampare in head
    <link rel="stylesheet" type="text/css" href="blu.css" />
    oppure
    <link rel="stylesheet" type="text/css" href="rosso.css" />

    Ho provato a fare così, ma a parte il fatto che mi sono perso magari esiste un modo più "ortodosso"


    Grazie per l'attenzione
    Gianluca
    Ultima modifica di essezeta : 15-02-2008 alle ore 22.03.30

  2. #2
    Guest

    Predefinito

    da utente un po' inesperto, provo a buttarti un'idea(da confermare da parte di un esperto!):

    fai un form con un form select dove ai value dei vari option metti il link del css e come stile metti:
    Codice:
    <link rel="stylesheet" type="text/css" href="<? $_POST['nomedelform']; ?>" />
    l'option superiore avrà come value il css di default

    EDIT:
    nell'head così:
    Codice HTML:
    <link rel="stylesheet" type="text/css" href="
    <? $_POST['cambiastile']; ?>
    " />
    il form così:
    Codice HTML:
    <form>
    <select name="cambiastile" onchange='location.reload()'>
    <option value="stiledefault.css">Lascia così!</option>
    <option value="rosso.css">Rosso</option>
    <option value="verde.css">Verde</option>
    </select>
    </form>
    l'estensione della pagina naturalmente .php



    oppure penso che si possa fare con javascript...ma non saprei come!
    Ultima modifica di gabriballets : 15-02-2008 alle ore 23.41.24

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da gabriballets Visualizza messaggio
    da utente un po' inesperto, provo a buttarti un'idea(da confermare da parte di un esperto!):

    fai un form con un form select dove ai value dei vari option metti il link del css e come stile metti:
    Codice:
    <link rel="stylesheet" type="text/css" href="<? $_POST['nomedelform']; ?>" />
    l'option superiore avrà come value il css di default

    EDIT:
    nell'head così:
    Codice HTML:
    <link rel="stylesheet" type="text/css" href="
    <? $_POST['nomedelform']; ?>
    " />
    il form così:
    Codice HTML:
    <form>
    <select name="cambiacss">
    <option value="stiledefault.css">_</option>
    <option value="rosso.css">Rosso</option>
    <option value="verde.css">Verde</option>
    </select>
    </form>
    l'estensione della pagina naturalmente .php
    oppure penso che si possa fare con javascript...ma non saprei come!
    Wellà Gabri... ci sei quasi
    praticamente inserisci in un file di testo (file_put_contents()) la scelta operata dall'utente, e poi in fase di lettura della pagina usi il codice:

    Codice HTML:
    <link rel="stylesheet" type="text/css" href="<?php file_get_contents("file_usato.txt"); ?>" />
    Ultima modifica di Zorinik : 15-02-2008 alle ore 23.44.11

  4. #4
    Guest

    Predefinito

    Grazie dell'interessamento sia a gabriballets che a Zorinik,
    da quel poco che riesco a capire la direzione è giusta...
    però serve un piccolo aggiustamento di traiettoria...

    Se date un occhiata a questa minisceneggiatura forse ci capiremo meglio...

    (scusate ma io so utilizzare script prefabbricati e so settarli alle mie esigenze... ma per crearli sono di coccio e mi ci vuole il disegno...)

    Spero mi riusciate a dare un'indicazione più precisa (o a spiegarmi meglio quella già data: in pratica ad imboccarmela...) ad ogni modo grazie comunque
    gnl

  5. #5
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Cosa dovrebbe fare quella "minisceneggiatura"? Salvare i valori da qualche parte? Dove di preciso?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  6. #6
    Guest

    Predefinito

    In risposta a funcool...
    Cosa dovrebbe fare quella "minisceneggiatura"? Salvare i valori da qualche parte? Dove di preciso?
    tipo in un file di testo... semplicemente... da lì li pesca la pagina html e nel link al css succederebbe una cosa del genere:
    Codice:
    <link rel="stylesheet" type="text/css" href="<QUI VERREBBE INSERITO IL CSS SELEZIONATO VIA FORM>" />
    Ultima modifica di essezeta : 16-02-2008 alle ore 13.15.29

  7. #7
    Guest

    Predefinito

    Fai così:
    imposta_stile.php
    Codice PHP:
    <?
    $stile
    = $_GET['stile']; // recupero lo stile
    $referer = $_SERVER['HTTP_REFERER']; // recupero la pagina da cui arrivavi
    header("Location: $referer");
    setcookie("stile", $stile, time()+43200, '/');//imposto il cookie con lo stile
    header("Location: $referer");// reindirizzo
    ?>
    css.php
    Codice PHP:
    <?
    $css
    =$_COOKIE['stile'];// recupero il cookie
    echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"../css/";
    if (!
    $css){
    echo
    "base/css.css\""; // CSS DI BASE
    }else{
    echo
    $css."/css.css\"";
    }
    echo
    " />";
    ?>
    In ogni pagina fai nell'header:

    <? include("css.php"); ?>

    E per cambiare stile collegamento a: imposta_stile.php?stile=CARTELLA CONTENENTE CSS.CSS
    Ultima modifica di comunitavirtuali : 16-02-2008 alle ore 14.21.21

  8. #8
    Guest

    Predefinito

    In risposta a comunitavirtuali...
    quasi perfetto!!

    Grazie mille!! Hai trovato una soluzione che fa quasi al caso mio...
    L'ho testata e riesco a farla macinare...

    Vorrei chiederti solo un paio di delucidazioni:

    1.
    per collegarmi a: imposta_stile.php?...ECC
    posso utilizzare un normale link, vero? non ci sono problemi?
    io ho fatto così:
    Codice:
    <a href="PATH_TO_imposta_stile.php?stile=base" target="_blank">stile base</a>
    <a href="PATH_TO_imposta_stile.php?stile=rosso" target="_blank">stile rosso</a>
    <a href="PATH_TO_imposta_stile.php?stile=blu" target="_blank">stile blu</a>
    O è meglio richiamarlo in altro modo?

    2.
    ecco perché sopra dico QUASI perfetto...
    In pratica col tuo metodo, io posso fare uno switch tra i vari css che ho a disposizione, però nella mia sessione... forse sbaglio termine... Intendo che una volta che ho impostato lo stile_X, col mio browser io vedrò la pagine con lo stile_X, ma se ti ci colleghi tu... la vedrai con lo stile_base... perchè tu non hai il coockie...
    insomma non ho determinato la visualizzazione della mia pagina... ho solo determinato la MIA visualizzazione della mia pagina...
    Spero di essere stato chiaro...

    Io vorrei una roba tipo:
    imposta_stile comanda a css.php (che includo in HEAD) di stampare definitvamente un codice che richiami un certo css...
    perciò nel post precedente dicevo a fancool che avrei voluto salvare il valore in un file di testo da dove pescarlo...

    Spero di non averti ingarbugliato troppo il discorso...
    Sono sicuro che si possa fare... ma... ahimè! io sono incapace...

    Faccio un esempio:
    ho provato a modificare uno script che inserisce semplici news in una pagina salvandone il contenuto in un .dat: ho provato a dirgli di scrivere in head la stringa <link rel=\"stylesheet\" ECC... ma ho fatto un casino... e poi è una soluzione "sporca"...

    Qualche idea "ortodossa"?

  9. #9
    Guest

    Predefinito

    AH :D
    volevi uno script che cambiasse RaDiCalmEnTe la grafica al sito?
    Presto fatto :
    css.php
    Codice PHP:
    <?php
    $stile
    = $_GET['stile'];
    If(
    $stile == "rosso")
    {

    $var=fopen("stile.php","w"); // apro stile.php in sola scrittura, i dati persi si cancellano (w)
    fwrite($var, " <link rel=\"stylesheet\" ECCETERA ROSSO.CSS"); // scrivo lo stile che voglio adottare
    fclose($var); // chiudo il file
    }
    elseif(
    $stile == "verde")
    {

    $var=fopen("stile.php","w");
    fwrite($var, " <link rel=\"stylesheet\" ECCETERA ROSSO.CSS");
    fclose($var);
    }
    else
    {
    $var=fopen("stile.php","w");
    fwrite($var, " <link rel=\"stylesheet\" ECCETERA BASE.CSS");
    fclose($var);
    }
    ?>
    in ogni pagina:
    Codice PHP:
    <? include("stile.php"); ?>
    Il codice php può naturalmente essere migliorato di mooolto con switch e variabili in aiuto ma l'ho scritto in fretta quindi accontantati

    Per la domanda 1: sì, puoi farlo anche con semplici link e secondo me è la cosa migliore ^^
    Per la domanda 2: ora è "perfetto" ?
    Ultima modifica di comunitavirtuali : 16-02-2008 alle ore 18.24.39

  10. #10
    Guest

    Talking

    Grrrrrrazie!!!
    L'ho testato in cinque minuti... e fa tutto quello che deve fare...



    Per la domanda 2: ora è "perfetto" ?
    Sì, per le mie esigenze è perfetto... (i miglioramenti, se verranno... verranno in seguito)

    Il codice php può naturalmente essere migliorato di mooolto con switch e variabili in aiuto ma l'ho scritto in fretta quindi accontantati
    Mi accontento sì...
    Sei stato veramente prezioso...
    grazie,
    gianluca

    PS:
    lo sapevo che era una cosa fattibilissima e... anche "da niente" per chi avesse un minimo di conoscenze (non io... ma ce la farò... )

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •