Css switch con PHP

come cambiare foglio di stile Css al volo con PHP

Dopo il precedente tutorial, proseguo nello svelare le varie tecniche utilizzate per realizzare questo sito.
Oggi vediamo come ho realizzato lo switch Css, per cambiare il foglio di stile al volo.

Innanzitutto, esistono diversi modi per realizzarlo.
Il primo è farlo tramite Javascript.
Su A List Apart potete trovare un tutorial molto ben fatto per cambiare foglio di stile Css al volo con Javascript, memorizzando la preferenza in un cookie.
Il tutto in conformità agli standard W3C.

Il principale problema di questa tecnica è che, in quanto Javascript, viene eseguita sul client, quindi può dare problemi su browser obsoleti o nel caso in cui l’utente abbia disabilitato l’esecuzione degli script JS.
La valutazione sull’adeguatezza o meno della tecnica Javascript va fatta in base al target di utenza del proprio sito.
E’ ovvio che il problema non si pone nel caso in cui il profilo medio dei vostri utenti sia elevato, quindi dotati di browser recenti e di abbastanza buon senso da non disabilitare Javascript!

Io, da parte mia, ho preferito seguire un’altra strada, non tanto per il profilo dei visitatori, ma perché, utilizzando WordPress (scritto in PHP, ndr.) mi era più congeniale e più veloce realizzare lo switch Css direttamente in PHP.
Oltre a questa possibilità di integrazione, il PHP viene eseguito sul server, quindi è del tutto indipendente dal browser utilizzato dall’utente.
Anche in questo caso, A List Apart ci viene incontro, con un ottimo tutorial.
Il tutorial è ben scritto e facile da seguire.

Solo un paio di semplici suggerimenti, per rendere la cosa ancora più immediata.

Primo:
la durata del cookie.
Non credo che siate interessati a creare un cookie annuale. Mi sembra esagerato per memorizzare un dato banale come il foglio di stile preferito dall’utente.

Quindi, nel blocco di codice

<?php
setcookie ('sitestyle', $set, time()+31536000, '/', 'yourdomain.com', '0');
header("Location: $HTTP_REFERER");
?>

modificate il valore 31536000 (durata in secondi del cookie).
Potete inserire 2592000 per creare un cookie mensile, 604800 per crearlo settimanale.

Secondo:
il blocco di lettura del cookie

<?php echo (!$sitestyle)?'defaultstyle':$sitestyle ?>

può essere modificato in
<?php echo (!$_COOKIE['sitestyle'])?'defaultstyle':$_COOKIE['sitestyle'] ?>

che, almeno per quanto riguarda la mia esperienza, sembra funzionare meglio.

 

Beh, siamo arrivati alla fine.
Spero che vi sia utile.

This tutorial is provided as is. Please do not email me questions or support requests about the scripts contained in this page. Use the comments below instead. Thank you.


About this entry