Mi è stato chiesto di fare una modifica affinché il calendario non permettesse più l'inserimento di eventi oltre una data prefissata, e non avendo trovato nessuna funzionalità allo scopo, ho deciso di modificare il codice sorgente.
Premetto che non so assolutamente nulla di PHP (codice con il quale il calendario è implementato).
La prima idea che mi è venuta in mente è stata quella di modificare i file relativi alla visualizzazione del calendario (es. week.php e day.php) affinché disabilitassero i link per le date superiori a quelle di fine attività. Ovviamente questa non è una buona idea per due motivi:
- occorre inserire gli stessi controlli in più file e, soprattutto, ricordarsi di abilitare tali controlli per ogni nuova vista;
- la data di visualizzazione viene passata come parametro get agli script, e quindi un utente malizioso potrebbe comunque riuscire ad avere accesso al calendario in una data successiva quella di fine attività.
// Controllo che la data di fine calendario non sia superata
$endDate = "20080430";
if( $cal_date > $endDate ){
echo "Data di fine attivita' superata";
$can_edit = 0;
}
La variabile $endDate viene inizializzata al valore di fine attività, nel formato YYYYMMDD, mentre la variabile $cal_date contiene la data con la quale è stata richiamata la form di editazione. A questo punto il controllo fra le due variabili di cui sopra verifica se lasciare il form abilitato o disabilitarlo ($can_edit = 0) e stampare un messaggio di warning per l'utente.
Nessun commento:
Posta un commento