Salve,
ho da poco iniziato a smanettare con php per realizzare un progetto per un'esame di informatica.
Ho realizzato una struttura con include e utilizzo uno switch (impostato nell'index) per associare alla variabile "$pag" le varie pagine da caricare, e infine assemblo il tutto
index.php:
Codice PHP:
<?php
$pag = "pagine/home.php"; //imposto la pagina di default
if (is_numeric($_GET['id']))
{
switch ($_GET['id']) //preleva l'id numerico dall'indirizzo web
{
case 0:
$pag = "pagine/home.php"; //se la variabile è 0, carica home
break;
case 1:
$pag = "pagine/storia.php"; //se la variabile è 1, carica storia
break;
[....]
default:
$pag = "pagine/home.php"; //imposto la pagina di default a home
}
}
include 'header.php';
include ($pag);
include 'sidebar.php';
include 'footer.php';
?>
in questo modo mi genero url del tipo /index.php?id=4
Ora, il progetto richiede di incorporare un calendario eventi nel sito senza far ricorso ad Iframe, quindi mi trovo a dover ricostruire header sidebar e footer intorno a ogni singola pagina del calendario.
Ho impostato la struttura delle cartelle in questo modo:
codice:
/(root):index.php, header.php, sidebar.php, footer.php, style.css
|-(pagine): home.php, contatti.php etc
|-(images)
|-(componenti)
|-(newsletter)
|-(calendario):minical.php, calendar.php, cal_day.php, yearcal.php e altri 20 file, + folder (admin, images, themes)
il calendario usato è Calendarix: http://www.calendarix.com/democal.html, e nel loro forum di supporto ogni richiesta che riguardi l'integrazione viene seccata con un "usa un Iframe"
Ora, per integrare la vista mese nel template, ho creato un'altro "case" nello switch di index.php:
Codice PHP:
case 12:
$pag = "componenti/calendario/calendar.php";
break;
e modificato minimamente componenti/calendario/calendar.php con qualche div per aprire/chiudere delle classi css, e il risultato -sembra- buono:
(url: hxxp://localhost/progettoII/index.php?id=12&op=cal&month=9&year=2010&catview=0 )

Ovviamente però tutti i link interni del calendario fanno riferimento alla root, e sto iniziando a correggerli uno ad uno aggiungendo una variabile
$urlpathtocal = "componenti/calendario/";
in ogni <a href.
In questo modo ottengo che i link funzionano, ma non che si aprono "nel template"....
L' unica soluzione che mi viene in mente è creare altri case nello switch in index.php per ognuno dei file richiamati dal calendario,
ad esempio cliccando sul singolo giorno si andrebbe su /cal_day.php?op=day&date=2010-09-01&catview=0 ;
dovrei creare un
Codice PHP:
case 13:
$pag = "componenti/calendario/cal_day.php";
break;
e poi correggere il link in : index.php?id=13&op=day&date=2010-09-01&catview=0 .
...e creare chissà quanti altri case per ogni file php chiamato, inclusa la sezione di amministrazione....
è questa la soluzione migliore, oppure c'è (mi auguro!) qualcosa che ignoro che mi faciliterebbe la cosa?
grazie dell'attenzione