Newsgroup: it.comp.www.php
Titolo: titoli di pagina

Salve,
volevo porvi un problema, giusto per sapere come, generalmente, viene 
risolto
sto lavorando ad un sito piuttosto grosso (nell'ordine di un centinaio 
di pagine, se non di più) e vorrei sapere come, generalmente, viene 
affrontato il discorso dei titoli <title></title> di pagina
in passato ho sempre fatto a mano ma adesso non mi dispiacerebbe 
riuscire ad automatizzare un pò la cosa (magari con un db in appoggio?)
considerate che l'header ed il footer sono due include degli stessi 
file per tutto il sito
attualmente, su tutte le pagine del sito, il title è sempre lo stesso: 
"benvenuti"... che non è affatto utile nè bello a vedersi (e pure 
scomodo per i segnalibri e per l'indicizzazione)
grazie
-- 
Umin
Foobar spento


se hai pagine con nomi diversi puoi legare il contenuto del <title> al nome 
della pagina/file recuperandolo con qualcosa del tipo:
$pagename = array_pop(explode("/",$_SERVER['PHP_SELF']));
e poi utilizzando qualche condizionale: switch, if, quello che vuoi.
Oppure puoi legare il <title> ai parametri CGI che arrivano alla pagina 
recuperandoli *prima* di scrivere il <title>, qualcosa del genere insomma
if (isset($_POST['id']))
 $id = mysql_escape_string($_POST['id']);
else
 $id = "";
if ($id == "1")
    $title = "sono il prodotto 1";
echo "<title>", $title, "</title>";
ciao
Mario
_________________________
WEB: 
www.mario-online.com
________________________________ 


usa una classe con il costruttore che legge la pagina ($_SERVER['PHP_SELF'])
e estrae dal db il titolo, header, footer e quant'altro :
ti crei una table nel db tipo
nome_pag varchar(40),
titolo text,
header text,
footer text
poi ti fai una classe tipo
class html_class
{
	private $footer;
	function __construct()
	{
		// pseudo codice ...
		list($titolo,$header,$this->footer)=
			$sql->exec('SELECT * FROM tabella '.
			'WHERE nome_pag='.$_SERVER['PHP_SELF']);
		// poi qua usi ob_start() oppure echo ... oppure
		// direttamente l'html ...
		echo "<html>\n<head>\n<title>".$titolo.
			"</title>\n<body>\n".
			"<div id=\"intesta\">".$header."</div>\n";
		....
	}
	function __desctruct()
	{
		echo "<div id="footer">".$this->footer."</div>";
		...
	}
}
e nei file php apri con
$html=new html_class();
e' un'idea come un altra ;-)))
ciao ... 
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

 echo "<title>", $title, "</title>";
mmm... mi sa che questa situazione diventa piuttosto laboriosa
considera che il frame bottom ed header sono gli stessi inclusi in 
tutto il sito... non mi pare la cosa migliore fare uno switch di 100 
voci
cmq grazie per  ora
-- 
Umin
Foobar spento

 e' un'idea come un altra ;-)))
mi sembra ottima!
c'è da vedere se sono in grado di realizzarla, cmq ne prenderò spunto 
per arrivare ad un ibrido tra ciò che mi hai detto tu e ciò che mi ha 
scritto Mario, in attesa di altre idee


     $title = "sono il prodotto 1";
prima quando ti ho quotato ho detto che questa possibilità era 
improbabile visto il numero di pagine... in realtà volevo dire "visto 
il numero di prodotti"
-- 
Umin
Foobar spento

 			"<div id=\"intesta\">".$header."</div>\n";
E' una buona idea, ma sicuramente è da sconsigliare l'inserimento di
codice HTML all'interno della classe.

 codice HTML all'interno della classe.
mi chiarisci il concetto ? io ho utilizzato una classe con ob_start() nel
contruttore e ob_end_flush() nel distruttore ... e in mezzo metto l'HTML
che problemi ci potrebbero essere ?
grazie ...


 che problemi ci potrebbero essere ?
Il problema è semplicemente che se devi fare una modifica alla
visualizzazione (tag html) devi rimettere le mani sul codice PHP.
Insomma, ci vuole una separazione dei ruoli, ovvero l'applicazione del
pattern MVC

 pattern MVC
onestamente, questo concetto del MVC non l'ho mai assimilato al 100% ...
nel senso che non riesco ad essere "fiscale" sempre e comunque ...
non per fare polemiche, ma io uso dei tag "standard" nella classe (tipo
"top", "container", "bottom") e uso i CSS per formattarli  ... fino ad
ora nessun problema particolare ... classe riutilizzata in piu' occasioni
e con vari layout ...
ciao ...


 e con vari layout ...
Non si tratta di adottare o meno soluzioni standard, in quanto dovrebbe
essere un must, ma del rendere il software il più possibile
indipendente e scalabile. Per esempio, se io il testo non lo voglio
mettere nel <div> che tu hai utilizzato, devo comunque mettere mano al
codice php, che il realtà si dovrebbe occupare solo della logica
dell'applicazione, non della visualizzazoine.

 dell'applicazione, non della visualizzazoine.
questo e' vero ... ma ricordo che un tutorial sull'argomento (mi pare si
parlasse proprio di PHP !) mi ha tanto "demoralizzato" che lasciai perdere.
proponeva una "soluzione" a dir poco intricata del problema ...
mica hai qualche link per qualche tutorial sull'argomento ? va bene anche
se il linguaggio non e' proprio il PHP ... uso anche C, C++ (QT), python ..


 se il linguaggio non e' proprio il PHP ... uso anche C, C++ (QT), python ..
Se digiti MVC su google ti appare di tutto e di più.
Anch'io ho provato a scrivere qualcosa, per cui ti lascio il link
http://software.negusweb.it/articoli/template_engine.php
Ciao,
     Fabrizio
=== 
http://www.negusweb.it
 ===

 
http://software.negusweb.it/articoli/template_engine.php
stampato ... adesso me lo leggo ... grazie mille ;-)))
ciao,
Antonio
