Répéter un évènement dans le calendrier de Centre SIS

Publié le 20 juin 2012 par Menerve
Le Calendrier de Centre/SIS (Logiciel de Gestion d'Ecole) est un élément très pratique pour partager avec les parents et élèves les différents évènements d'une école.
Seulement, il n'est possible d'ajouter qu'un seul évènement à la fois au calendrier.
Nous allons donc voir ici comment modifier Centre/SIS afin de pouvoir répéter un évènement du calendrier sur un nombre de jours défini, lors de sa création.
Le seul fichier PHP à modifier sera /modules/School_Setup/Calendar.php
1. Ajouter le nouveau texte et le champ dans le formulaire "Nouvel Evènement":
Ajouter apres la ligne contenant:
DateInput($RET[1]['SCHOOL_DATE'],'values[SCHOOL_DATE]','',false)
//modif: add event repeat
if($_REQUEST['event_id']=='new')
{
	echo ''._('Event Repeat').''.TextInput('0','REPEAT','','maxlength="2"',false).' '._('Days').'';
}
2. Ajouter le traitement de ce champ si celui-ci est supérieur à zéro:
Aux alentours de la ligne 79, dans le else du if($_REQUEST['event_id']!='new'), ajouter:
//modif: add event repeat
if ($_REQUEST['REPEAT']>0)
{
	for ($i=0; $i<=$_REQUEST['REPEAT']; $i++)
	{
		if ($i==0)
		{
			$_REQUEST['values']['SCHOOL_DATE'] = date('d-m-Y', mktime(0,0,0,intval(MonthNWSwitch(substr($_REQUEST['values']['SCHOOL_DATE'], 3, 3),'tonum')),intval(substr($_REQUEST['values']['SCHOOL_DATE'], 0, 2)),intval(substr($_REQUEST['values']['SCHOOL_DATE'], 7, 4))));
		}
		else
		{
			$_REQUEST['values']['SCHOOL_DATE'] = date('d-m-Y', mktime(0,0,0,intval(substr($_REQUEST['values']['SCHOOL_DATE'], 3, 2)),intval(substr($_REQUEST['values']['SCHOOL_DATE'], 0, 2))+1,intval(substr($_REQUEST['values']['SCHOOL_DATE'], 6, 4))));							
		}
		$sql = "INSERT INTO CALENDAR_EVENTS ";

		$fields = 'ID,SYEAR,SCHOOL_ID,';
		$values = db_seq_nextval('CALENDAR_EVENTS_SEQ').",'".UserSyear()."','".UserSchool()."',";

		$go = 0;
		foreach($_REQUEST['values'] as $column=>$value)
		{
			if($value)
			{
				$fields .= $column.',';
				$values .= "'".str_replace("\'","''",$value)."',";
				$go = true;
			}
		}
		$sql .= '(' . substr($fields,0,-1) . ') values(' . substr($values,0,-1) . ')';

		if($go)
			DBQuery($sql);
	}
}
else
{				
Voici un aprecu de la modification: