Generazione dei titoli delle pagine con PHP

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
samiel
Staff
Staff
Messaggi: 5510
Iscritto il: ven gen 16, 2004 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Generazione dei titoli delle pagine con PHP

Messaggioda samiel » mer set 28, 2011 16:40

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/wiki/Istruzioni#Titoli_delle_pagine_%28tag_title_dinamico_in_base_al_nome_della_pa
La conoscete? Vale la pena di utilizzarla o c'è una soluzione
più immediata gestendo melgio un if - else ?

Grazie
M.

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3956
Iscritto il: lun apr 25, 2005 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Re: Generazione dei titoli delle pagine con PHP

Messaggioda Paoletta » gio set 29, 2011 10:09

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;

Avatar utente
lablinux
Linux 2.6
Linux 2.6
Messaggi: 974
Iscritto il: gio nov 27, 2008 12:23
Slackware: 14 64bit
Desktop: kde4
Località: Rho
Contatta:

Re: Generazione dei titoli delle pagine con PHP

Messaggioda lablinux » gio set 29, 2011 10:48

Hai provato a testare la pagina in cui sei con

Codice: Seleziona tutto

$_SERVER['SCRIPT_NAME']

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6388
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Generazione dei titoli delle pagine con PHP

Messaggioda targzeta » gio set 29, 2011 11:28

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
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
lablinux
Linux 2.6
Linux 2.6
Messaggi: 974
Iscritto il: gio nov 27, 2008 12:23
Slackware: 14 64bit
Desktop: kde4
Località: Rho
Contatta:

Re: Generazione dei titoli delle pagine con PHP

Messaggioda lablinux » gio set 29, 2011 11:33

spina ha scritto:

Codice: Seleziona tutto

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



directory + nome script.

miklos
Linux 3.x
Linux 3.x
Messaggi: 1409
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: Generazione dei titoli delle pagine con PHP

Messaggioda miklos » gio set 29, 2011 12:10

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)
         }
ho visto cose che voi astemi non potete immaginare

samiel
Staff
Staff
Messaggi: 5510
Iscritto il: ven gen 16, 2004 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: Generazione dei titoli delle pagine con PHP

Messaggioda samiel » gio set 29, 2011 22:53

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...

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4553
Iscritto il: mer lug 28, 2004 0:00
Nome Cognome: Nino
Slackware: 14.2 64bit
Kernel: 4.4.14
Desktop: XFCE
Località: Reggio Calabria
Contatta:

Re: Generazione dei titoli delle pagine con PHP

Messaggioda aschenaz » ven set 30, 2011 7:46

$title=$titles[$pagina]["{$_REQUEST["pagina"]}"];

:?:

Non basta $titles[$pagina] ?

samiel
Staff
Staff
Messaggi: 5510
Iscritto il: ven gen 16, 2004 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: Generazione dei titoli delle pagine con PHP

Messaggioda samiel » ven set 30, 2011 19:09

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.

portapipe
Linux 1.0
Linux 1.0
Messaggi: 1
Iscritto il: mar nov 22, 2011 10:39

Re: Generazione dei titoli delle pagine con PHP

Messaggioda portapipe » mar nov 22, 2011 10:45

samiel ha scritto:Ho visto che c'è una libreria che fra l'altro fa questa operazione:
http://code.google.com/p/new-framework/wiki/Istruzioni#Titoli_delle_pagine_%28tag_title_dinamico_in_base_al_nome_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.


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti