venerdì 2 aprile 2010

WebCalendar: impedire l'inserimento di un appuntamento fuori da un range di date

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

Nessun commento: