Rendere il css dinamico

Jun 04

Per un sito web con più pagine conviene sempre avere un css globale (dove si dichiarano le classi che valgono per tutto il sito) e uno relativo ad ogni pagina.

Per fare questo però sarebbe necessario cambiare ogni volta l’header o comunque includere ogni volta manualmente il link del css giusto.

Con questo script è possibile risolvere dinamicamente il nostro problema.
Lo script non fa altro che prendere il nome della pagina dall’array $_SERVER e conservarlo su una variabile.

1
2
3
<?php
$file_name = basename($_SERVER['SCRIPT_NAME'], '.php');
?>

in questo modo basta semplicemente scrivere nel nostro header un codice simile

1
2
<link href="globals.css" rel="stylesheet" type="text/css" media="all" />
<link href="<?=$file_name?>" rel="stylesheet" type="text/css" media="all" />

NOTA

1
<?=$file_name?>

è l’equivalente in forma contratta di

1
<?php print $file_name; ?>

Se invece utilizzate Smarty, basta creare una funzione di questo tipo:

1
2
3
4
5
<?php
  // basename prende un percorso e ne estrapola il nome file togliendo il postfisso php
  $file_name = basename($_SERVER['SCRIPT_NAME'], '.php');
  $smarty->assign('file_name', $file_name);
?>

ed utilizzare la vostra variabile smarty sull’header

1
2
<link href="globals.css" rel="stylesheet" type="text/css" media="all" />
<link href="{$file_name}" rel="stylesheet" type="text/css" media="all" />

Dichiarando il css specifico della pagina dopo quello globale farà in modo che, se dovrete cambiare i parametri di una classe globale per una determinata pagina, possiate farlo facilmente.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Blogplay
  • Diggita
  • MySpace
  • Technorati

Technorati Tags: ,

Leave a Reply