WebCalendar è un ottimo strumento per la gestione rapida degli appuntamenti condivisi, tuttavia a volte è opportuno limitare l'inserimento degli appuntamenti in un range predefinito di date. La modifica piu' rapida e semplice per ottenere questo consiste nel modificare il file edit_entry.php, repsonsabile dell'editazione/inserimento di una entry nel calendario: se tale file PHP impedisce all'utente di editare un nuovo appuntamento allora il gioco è fatto.

Per questo motivo basta modificare il codice del file in questione, inserendo il seguente blocco per il calcolo della data attuale (che viene passata al file con il metodo GET) e la creazione di un avviso qualora si sfori oltre al range stabilito:


<?php

// non abilito date successive a $endDate o precedenti $startDate.

if( ! isset($_GET['id']) ){

$thisyear = (int) ( $date / 10000 );

$thismonth = ( $date / 100 ) % 100;

$thisday = $date % 100;

$startDate = date( 'm/d/y', mktime(3,0,0, "04", "06", "2010") );

$endDate = date( 'm/d/y', mktime(3,0,0, "07", "06", "2010") );

$nextDate = date( 'm/d/y', mktime ( 3, 0, 0, $thismonth, $thisday , $thisyear ) );

if( $nextDate > $endDate || $nextDate < $startDate ){

$can_edit = false;

echo "<H3 align=center>ATTENZIONE: non sono ammessi appuntamenti fuori dal range ($startDate - $endDate)</H3>";

echo "<P align=center>Non puoi inserire appuntamenti nel giorno selezionato ($nextDate)</P>";

}

}

?>







<?php



if ( $can_edit ) { // qui continua il codice normale di webcalendar

The article WebCalendar: impedire l'inserimento di un appuntamento fuori da un range di date has been posted by Luca Ferrari on April 2, 2010