Newsgroup: it.comp.www.php
Titolo: php e struttura del sito

Hi All,
sto lavorando al mio sito personale, e dopo averlo riscritto usando html, php,
css attualmente sto riscontrando un "piccolo" problema, al quale non sono ancora
riuscito a trovare una soluzione "pulita".
Premetto che lavoro su Linux, con Apache, PHP e il codice scritto a manina (vim)
e verifico il tutto con Mozilla.
Il sito è costruito seguendo una logica bene precisa, diviso in sezioni, e con
una pagina di introduzione. Per rispettare questa logica, e per lavorare meglio,
ho creato, nella mia home (/home/farnis/public_html), delle dir che
corrispondono ai vari link del menu principale del sito:
+/home/farnis/public_html
|->autore
|->erasmus    
|->gallery    
|->linux
|->main
|->template 
 +->icons
In particolare, la directory template, è quella che contiene i file che
strutturano la grafica del sito, è contiene, i file che, richiamati con
istruzioni in PHP, permettono di ricostruire le pagine che poi verranno
visualizzate dal browser.
drwxr-xr-x    2 farnis   farnis       4096 2003-05-24 15:52 icons
-rw-r--r--    1 farnis   farnis        108 2003-08-24 22:41 content.inc
-rw-r--r--    1 farnis   farnis       1474 2003-08-25 10:10 header.inc
-rw-r--r--    1 farnis   farnis       1667 2003-06-06 19:17 main.css
-rw-r--r--    1 farnis   farnis       1181 2003-08-25 10:15 menu.inc
-rw-r--r--    1 farnis   farnis         91 2003-06-06 19:17 top.inc
Nelle altre sezioni, esempio "autore", corrispondente all'omonima dir, ci sono
minimo 2 file:
-rw-r--r--    1 farnis   farnis        167 2003-08-23 11:50 autore.php
-rw-r--r--    1 farnis   farnis        104 2003-08-23 11:48 content.inc
Il primo, autore.php, è quello che serve a costruire la pagina, il secondo,
content.inc è quello che contiene il contenuto che dovrà essere visualizzato. In
questo modo, se volessi cambiare template al sito, mi basta modificare solo i
file presenti nella dir template, senza modificare i contenuti di ogni pagina.
 
I miei problemi, riguardano innanzitutto la struttura del sito, e vorrei sapere
se sto lavorando in maniera corretta, o se facendo in questo modo rischio di
avere problemi in futuro.
L'altro problema, più specifico di PhP/HTML, è che ho problemi nel dare il path
assoluto del template. Cerco di spiegarmi meglio, con un esempio.
In gallery, metterò delle sottodirectory con una serie di immagini, che metterò
online:
+/home/farnis/public_html
|->autore
|->erasmus
|->gallery
 +->dirA
 |->dirB
|->linux
|->main
|->template
 +->icons
Dal menu laterale del sito, se clicco sulla voce Gallery, viene eseguito
gallery.php che si trova nell'omonima dir:
<? include('../template/header.inc'); ?>
<body>
<? include('../template/top.inc');?>
<? include('../template/menu.inc');?>
<? include('content.inc');?>
</body>
</html>
quando il file viene processato, va a prendere il file header.inc, che tra le
varie istruzioni, contiene:
<link type="text/css" rel="stylesheet" href="template/main.css" />
ed anche menu.nic, che serve per ricostruire il menu, che contiene delle voci,
tipo questa:
<div id="menu">
<p align="center"><a href="../autore/autore.php"><img src="../template/icons/farnis.png"
width="54" border="0" hspace="0" vspace="0" alt= "Autore" /><br />Autore</a></p>
ma in questo modo i riferimenti che si trovano in href="" non funzionano, perchè
contengo un path sbagliato, perchè è eseguito da una directory di secondo
livello.
Il problema è che se metto un path assoluto del tipo:
<a href="
http://localhost/~farnis/template/file.php
">
funzionerà solo sul mio sistema, e non sul server on line, perchè li il path è
differente.
Per come è configurato Apache, non posso usare la variabile $ROOT_DOCUMENT,
perchè punta a /var/www, sia sul mio sistema che su quello online.
Ma non trovo una variabile che punti a 
http://localhost/~farnis
.
Posso crearla io, ma poi dovrei riscriverla in ogni file, e modificare il tutto
se lo metto online.
Volevo chiedere se potreste aiutarmi a risolvere il problema, ed anche consigli
se quello che sto facendo (a livello di come ho strutturato il sito) è corretto
o meno.
Il fatto è che in template, vorrei mettere tutti quei file necessari per
costruire il theme del sito, lasciando indipendenti i contenuti. In questo modo,
agendo solo su quella directory, posso cambiare il theme del sito, senza dover
riscrivere, copiare e incollare i contenuti del sito.
Aggiungo inoltre che ho letto le faq e cercato su Google, ma ho trovato manuali
tecnici che, allo stato attuale, non comprendo fino in fondo, e se conoscete
esempi di questo tipo, gradirei ricevere l'url.
Grazie in anticipo.

