Repository 32bit  Forum
Repository 64bit  Wiki

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.

Generazione dei titoli delle pagine con PHP

Messaggioda samiel » mer set 28, 2011 15: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.
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Generazione dei titoli delle pagine con PHP

Messaggioda Paoletta » gio set 29, 2011 9: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
Paoletta
Staff
Staff
 
Messaggi: 3893
Iscritto il: dom apr 24, 2005 23:00
Località: Varese
Slackware: 13.1
Desktop: fluxbox

Re: Generazione dei titoli delle pagine con PHP

Messaggioda lablinux » gio set 29, 2011 9:48

Hai provato a testare la pagina in cui sei con
Codice: Seleziona tutto
$_SERVER['SCRIPT_NAME']
Avatar utente
lablinux
Linux 2.6
Linux 2.6
 
Messaggi: 737
Iscritto il: gio nov 27, 2008 12:23
Località: Rho
Slackware: 14 64bit
Desktop: kde4

Re: Generazione dei titoli delle pagine con PHP

Messaggioda targzeta » gio set 29, 2011 10: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
targzeta
Iper Master
Iper Master
 
Messaggi: 6149
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Generazione dei titoli delle pagine con PHP

Messaggioda lablinux » gio set 29, 2011 10: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.
Avatar utente
lablinux
Linux 2.6
Linux 2.6
 
Messaggi: 737
Iscritto il: gio nov 27, 2008 12:23
Località: Rho
Slackware: 14 64bit
Desktop: kde4

Re: Generazione dei titoli delle pagine con PHP

Messaggioda miklos » gio set 29, 2011 11: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
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1200
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: Generazione dei titoli delle pagine con PHP

Messaggioda samiel » gio set 29, 2011 21: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...
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Generazione dei titoli delle pagine con PHP

Messaggioda aschenaz » ven set 30, 2011 6:46

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

:?:

Non basta $titles[$pagina] ?
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4417
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.5
Desktop: KDE 4.10.5

Re: Generazione dei titoli delle pagine con PHP

Messaggioda samiel » ven set 30, 2011 18: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.
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

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.
portapipe
Linux 1.0
Linux 1.0
 
Messaggi: 1
Iscritto il: mar nov 22, 2011 10:39


Torna a Programmazione

Chi c’è in linea

Visitano il forum: TurnitinBot [Bot] e 4 ospiti