Pagina 1 di 1

Generazione dei titoli delle pagine con PHP

Inviato: mer 28 set 2011, 16:40
da samiel
Per fare un'assegnazione "dinamica" dei titoli delle pagine con PHP
ho un codice come questo:

Codice: Seleziona tutto

<?php
/* valori di default per le pagine non personaizzate:
isset($_GET["pagina"]) ? $pagina=$_GET["pagina"] : $pagina="home";
$titles=array(
"home"=>"Venezia-Mestre",
"chisiamo"=>"Chi siamo",
"attivita"=>"Attivit&agrave; in corso",
"concluse" =>"Attivit&agrave; concluse",
"inprogramma" =>"Attivit&agrave; in programma",
"laboratorio"=>"Laboratorio di scrittura creativa",
"lavori"=>"I lavori dei corsisti",
"amici"=>"I nostri amici",
"contatti"=>"Contatti",
"dovesiamo"=>"Dove siamo",
"scrivici"=>"Scrivici"
);
$separatore="&mdash; ";
if(isset($_REQUEST["pagina"]))
$title=$titles[$pagina]["{$_REQUEST["pagina"]}"];
echo "<title>Circolo Culturale $separatore$titles[$pagina]</title>\n";
?>
Ma se volessi modificare diciamo solo il titolo della home
mettendo "Ciao Pippo"? CHe condizione dovrei aggiungere?
Ho visto che c'è una libreria che fra l'altro fa questa operazione:
http://code.google.com/p/new-framework/ ... e_della_pa
La conoscete? Vale la pena di utilizzarla o c'è una soluzione
più immediata gestendo melgio un if - else ?

Grazie
M.

Re: Generazione dei titoli delle pagine con PHP

Inviato: gio 29 set 2011, 10:09
da Paoletta
se ho capito bene, il modo piu' rapido per identificare se ti e' stata richiesta la home e' guardare se $_GET["pagina"] e' settato; in questo caso farei un if then basato su questa cosa;

Re: Generazione dei titoli delle pagine con PHP

Inviato: gio 29 set 2011, 10:48
da lablinux
Hai provato a testare la pagina in cui sei con

Codice: Seleziona tutto

$_SERVER['SCRIPT_NAME']

Re: Generazione dei titoli delle pagine con PHP

Inviato: gio 29 set 2011, 11:28
da targzeta
Non so come sono strutturate le tue pagine. Nel mio caso tutti gli script includono un file comune per il template. Partendo da questa ipotesi ho strutturato il sito in sottodirectory, una per ogni componente del menù. Il titolo viene settato dallo script del template che guarda la directory madre dello script, così ad esempio il file:

Codice: Seleziona tutto

/home/mioscript.php
di default prende come titolo 'Home'. Però se ho delle esigenze particolari, e praticamente tutte le pagine hanno un titolo diverso, setto la variabile $titolo prima di caricare il template. In pratica nel template c'è qualcosa del genere:

Codice: Seleziona tutto

if ( isset($titolo) ) 
  il titolo è $titolo; 
else 
  il titolo è la directory di $_SERVER['SCRIPT_NAME']
Emanuele

Re: Generazione dei titoli delle pagine con PHP

Inviato: gio 29 set 2011, 11:33
da lablinux
spina ha scritto:

Codice: Seleziona tutto

if ( isset($titolo) ) 
  il titolo è $titolo; 
else 
  il titolo è la directory di $_SERVER['SCRIPT_NAME']
directory + nome script.

Re: Generazione dei titoli delle pagine con PHP

Inviato: gio 29 set 2011, 12:10
da ilmich
Se:
  • è lo stesso sito del tuo post di un po' di tempo fa sui menu a tendina :D
  • il tuo sito usa quello che in gergo si chiama front controller (unico script che riceve le richieste e tramite un parametro nella url(in questo caso chiamato pagina) crea i contenuti)
  • la home la distingui dall'assenza del parametro pagina (o al piu il parametro pagina deve avere come valore 'home')
come suggeriva @Paoletta:

Codice: Seleziona tutto

if(isset($_REQUEST["pagina"]))
         $title=$titles[$pagina]["{$_REQUEST["pagina"]}"];
         else { //non è settato quindi sono nella home
         $title= {qui ci metti il titolo che vuoi nella home)
         }

Re: Generazione dei titoli delle pagine con PHP

Inviato: gio 29 set 2011, 22:53
da samiel
Però qui c'è un marchiano errore perché

Codice: Seleziona tutto

isset($_GET["pagina"]) ? $pagina=$_GET["pagina"] : $pagina="home";
$titles=array(
"home"=>"",
"chisiamo"=>"Chi siamo",
"attivita"=>"Attivit&agrave; in corso",
"concluse" =>"Attivit&agrave; concluse",
"inprogramma" =>"Attivit&agrave; in programma",
"laboratorio"=>"Laboratorio di scrittura creativa",
"lavori"=>"I lavori dei corsisti",
"amici"=>"I nostri amici",
"contatti"=>"Contatti",
"dovesiamo"=>"Dove siamo",
"scrivici"=>"Scrivici"
);
$separatore="&mdash;";
if(isset($_REQUEST["pagina"]))
         $title=$titles[$pagina]["{$_REQUEST["pagina"]}"];
         else
         $title="ciao mondo";
echo "<title>$title</title>\n";
mi mette solo laprima lettera :-) del nome della pagina
che non sia la home...

Re: Generazione dei titoli delle pagine con PHP

Inviato: ven 30 set 2011, 7:46
da aschenaz
$title=$titles[$pagina]["{$_REQUEST["pagina"]}"];
:?:

Non basta $titles[$pagina] ?

Re: Generazione dei titoli delle pagine con PHP

Inviato: ven 30 set 2011, 19:09
da samiel
Sì lì basta, così:

Codice: Seleziona tutto

if(isset($_REQUEST["pagina"]))
    $title = $titles[$pagina];
else
    $title="ciao mondo";
echo "<title>$title</title>\n";
Sembra tutto a posto, adesso vedo
le altre idee
Grazie
M.

Re: Generazione dei titoli delle pagine con PHP

Inviato: mar 22 nov 2011, 10:45
da portapipe
samiel ha scritto: Ho visto che c'è una libreria che fra l'altro fa questa operazione:
http://code.google.com/p/new-framework/ ... e_della_pa
Questo framework fa esattamente al caso tuo.
L'hanno pure aggiornato recentemente.
Basta fare:

Codice: Seleziona tutto

<title><?php echo $Nurl->title("Benvenuti,,index.php,,Homepage,,contatti.php,,Contatti"); ?></title>
dove all'interno metti come primo parametro la frase standard e dal secondo in poi la coppia 'pagina,,valore'.
Accetta anche array, nel caso volessi usare quelli. Si riferisce al nome della pagina originale (senza htaccess e valori get in mezzo per intenderci).
Se hai risolto dai un occhio alle altre funzioni. Ce ne sono alcune molto interessanti.