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.
Rispondi
samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 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

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

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

Re: Generazione dei titoli delle pagine con PHP

Messaggio 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;

Avatar utente
lablinux
Linux 4.x
Linux 4.x
Messaggi: 1212
Iscritto il: gio 27 nov 2008, 12:23
Desktop: Gnome
Distribuzione: Debian testing
Località: Rho

Re: Generazione dei titoli delle pagine con PHP

Messaggio da lablinux »

Hai provato a testare la pagina in cui sei con

Codice: Seleziona tutto

$_SERVER['SCRIPT_NAME']

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

Re: Generazione dei titoli delle pagine con PHP

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
lablinux
Linux 4.x
Linux 4.x
Messaggi: 1212
Iscritto il: gio 27 nov 2008, 12:23
Desktop: Gnome
Distribuzione: Debian testing
Località: Rho

Re: Generazione dei titoli delle pagine con PHP

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

ilmich
Master
Master
Messaggi: 1645
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: Generazione dei titoli delle pagine con PHP

Messaggio 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)
         }
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 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

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

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Generazione dei titoli delle pagine con PHP

Messaggio da aschenaz »

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

Non basta $titles[$pagina] ?

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 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

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

portapipe
Linux 0.x
Linux 0.x
Messaggi: 1
Iscritto il: mar 22 nov 2011, 10:39

Re: Generazione dei titoli delle pagine con PHP

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

Rispondi