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:
in questo modo mi genero url del tipo /index.php?id=4Codice 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';
?>
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:
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"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)
Ora, per integrare la vista mese nel template, ho creato un'altro "case" nello switch di index.php:
e modificato minimamente componenti/calendario/calendar.php con qualche div per aprire/chiudere delle classi css, e il risultato -sembra- buono:Codice PHP:case 12:
$pag = "componenti/calendario/calendar.php";
break;
(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
e poi correggere il link in : index.php?id=13&op=day&date=2010-09-01&catview=0 .Codice PHP:case 13:
$pag = "componenti/calendario/cal_day.php";
break;
...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![]()


Rispondi quotando