From e1cc89f147e817a31a535404b89dfa2738873dea Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Thu, 19 May 2011 17:29:44 +0000 Subject: [PATCH] task #9747: Can show content of external calendar (ical) into agenda --- htdocs/admin/agenda_extsites.php | 151 +++++++++++++++++++++++++++++-- htdocs/langs/ca_ES/agenda.lang | 9 +- htdocs/langs/en_US/agenda.lang | 9 +- htdocs/langs/es_ES/agenda.lang | 8 +- htdocs/langs/fr_FR/agenda.lang | 9 +- 5 files changed, 172 insertions(+), 14 deletions(-) diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php index 9cac5863ed9..27b63e569b4 100644 --- a/htdocs/admin/agenda_extsites.php +++ b/htdocs/admin/agenda_extsites.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2008-2011 Laurent Destailleur + * Copyright (C) 2011 Juanjo Menent * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,31 +26,91 @@ require("../main.inc.php"); require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php"); +require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'); +require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'); require_once(DOL_DOCUMENT_ROOT."/lib/agenda.lib.php"); if (!$user->admin) accessforbidden(); +$langs->load("agenda"); $langs->load("admin"); $langs->load("other"); -$langs->load("agenda"); -$action=$_POST["action"]; +$def = array(); +$actiontest=GETPOST("test"); +$actionsave=GETPOST("save"); + +if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5; +$MAXAGENDA=empty($conf->global->AGENDA_EXT_NB)?5:$conf->global->AGENDA_EXT_NB; + +// List of Google colors (A lot of colors are ignored by Google) +$colorlist=array('29527A','5229A3','A32929','7A367A','B1365F','0D7813'); /* -* Actions -*/ + * Actions + */ +if ($actionsave) +{ + $db->begin(); + $res=dolibarr_set_const($db,'ENABLE_AGENDA_EXT'.$i,trim(GETPOST("ENABLE_AGENDA_EXT".$i)),'chaine',0); + + $i=1; + $error=0; + + // Save agendas + while ($i <= $MAXAGENDA) + { + $color=trim(GETPOST("agenda_ext_color".$i)); + if ($color=='-1') $color=''; + + //print 'color='.$color; + $res=dolibarr_set_const($db,'AGENDA_EXT_NAME'.$i,trim(GETPOST("agenda_ext_name".$i)),'chaine',0); + if (! $res > 0) $error++; + $res=dolibarr_set_const($db,'AGENDA_EXT_SRC'.$i,trim(GETPOST("agenda_ext_src".$i)),'chaine',0); + if (! $res > 0) $error++; + $res=dolibarr_set_const($db,'AGENDA_EXT_COLOR'.$i,$color,'chaine',0); + if (! $res > 0) $error++; + $i++; + } + + // Save timezone + $timezone=trim(GETPOST("agenda_ext_timezone")); + if ($timezone=='-1') $timezone=''; + $res=dolibarr_set_const($db,'AGENDA_EXT_TIMEZONE',$timezone,'chaine',0); + if (! $res > 0) $error++; + // Save nb of agenda + $res=dolibarr_set_const($db,'AGENDA_EXT_NB',trim(GETPOST("AGENDA_EXT_NB")),'chaine',0); + if (! $res > 0) $error++; + if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5; + $MAXAGENDA=empty($conf->global->AGENDA_EXT_NB)?5:$conf->global->AGENDA_EXT_NB; + + if (! $error) + { + $db->commit(); + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $db->rollback(); + $mesg = "".$langs->trans("Error").""; + } +} /* * View */ +$form=new Form($db); +$formadmin=new FormAdmin($db); +$formother=new FormOther($db); + llxHeader(); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("AgendaSetup"),$linkback,'setup'); -print "
\n"; +print '
'; print $langs->trans("AgendaExtSitesDesc")."
\n"; print "
\n"; @@ -58,16 +119,86 @@ $head=agenda_prepare_head(); dol_fiche_head($head, 'extsites', $langs->trans("Agenda")); -print '
'; -print ''; -print ''; +print ''; +print $langs->trans("ExtSitesEnableThisTool").' '.$form->selectyesno("ENABLE_AGENDA_EXT",(GETPOST("ENABLE_AGENDA_EXT"))?GETPOST("ENABLE_AGENDA_EXT"):$conf->global->ENABLE_AGENDA_EXT,1).'

'; + +$var=false; +print ""; + +print ""; +print '"; +print ""; +print ""; + +// Timezone +print ""; +print ""; +print ""; +print ""; + +// Nb of agenda +$var=!$var; +print ""; +print ""; +print ""; +print ""; + +print "
'.$langs->trans("Parameter")."".$langs->trans("Value")."
".$langs->trans("ClientTZ").""; +print $formadmin->select_timezone($conf->global->AGENDA_EXT_TIMEZONE,'agenda_ext_timezone'); +print "
".$langs->trans("ExtSitesNbOfAgenda").""; +print ''; +print "
"; +print "
"; + +print ""; + +print ""; +print ""; +print ""; +print "'; +print ""; +print ""; + +$i=1; $var=true; +while ($i <= $MAXAGENDA) +{ + $key=$i; + $var=!$var; + print ""; + print '"; + $name='AGENDA_EXT_NAME'.$key; + $src='AGENDA_EXT_SRC'.$key; + $color='AGENDA_EXT_COLOR'.$key; + print ""; + print ""; + print ''; + print ""; + $i++; +} + +print '
".$langs->trans("Parameter")."".$langs->trans("Name")."".$langs->trans("ExtSiteUrlAgenda")." (".$langs->trans("Example").': http://yoursite/agenda/agenda.ical)".$langs->trans("Color")."
'.$langs->trans("AgendaExtNb",$key)."global->$name . "\" size=\"28\">global->$src . "\" size=\"60\">'; + + // Possible colors are limited by Google + //print $formadmin->select_colors($conf->global->$color, "google_agenda_color".$key, $colorlist); + print $formother->select_color($conf->global->$color, "agenda_ext_color".$key, 'sitextconfig', 1, $colorlist); + print '
'; +print '
'; + +print '
'; + +print "trans("Save")."\">"; +print "
"; print "
\n"; +dol_fiche_end(); + if ($mesg) print "
$mesg
"; print "
"; +$db->close(); + llxFooter('$Date$ - $Revision$'); -?> +?> \ No newline at end of file diff --git a/htdocs/langs/ca_ES/agenda.lang b/htdocs/langs/ca_ES/agenda.lang index af6f7a46400..75d4bdf79ad 100644 --- a/htdocs/langs/ca_ES/agenda.lang +++ b/htdocs/langs/ca_ES/agenda.lang @@ -56,4 +56,11 @@ AgendaUrlOptions4= logint=%s per a restringir insercions a accions que af AgendaUrlOptions5= logind= %s per a restringir insercions a accions realitzades per l'usuari %s. AgendaShowBirthdayEvents= Mostra aniversari dels contactes AgendaHideBirthdayEvents= Amaga aniversari dels contacte -ExtSites=Calendaris externs \ No newline at end of file +ExtSites=Calendaris externs + +# External Sites ical +ExtSites=Calendaris externs +ExtSitesEnableThisTool=Mostrar calendaris externs a l'agenda +ExtSitesNbOfAgenda=Nombre de calendaris +AgendaExtNb=Calendari nº %s +ExtSiteUrlAgenda=Url d'accés a l'arxiu. ical \ No newline at end of file diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index e5222bdd2de..a58fbed4b50 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -57,4 +57,11 @@ AgendaUrlOptions4=logint=%s to restrict output to actions affected to use AgendaUrlOptions5=logind=%s to restrict output to actions done by user %s. AgendaShowBirthdayEvents=Show birthday's contacts AgendaHideBirthdayEvents=Hide birthday's contacts -ExtSites=External calendars \ No newline at end of file +ExtSites=External calendars + +# External Sites ical +ExtSites=External Calendars +ExtSitesEnableThisTool=how external calendars into agenda +ExtSitesNbOfAgenda=Number of calendars +AgendaExtNb=Calendar nb %s +ExtSiteUrlAgenda=URL to access .ical file \ No newline at end of file diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang index 559b8582603..7c9d54e5a36 100644 --- a/htdocs/langs/es_ES/agenda.lang +++ b/htdocs/langs/es_ES/agenda.lang @@ -56,4 +56,10 @@ AgendaUrlOptions4=logint=%s para restringir inserciones a acciones que af AgendaUrlOptions5=logind=%s para restringir inserciones a acciones realizadas por el usuario %s. AgendaShowBirthdayEvents=Mostrar cumpleaños de los contactos AgendaHideBirthdayEvents=Ocultar cumpleaños de los contactos -ExtSites=Calendarios externos \ No newline at end of file + +# External Sites ical +ExtSites=Calendarios externos +ExtSitesEnableThisTool=Mostrar calendarios externos en la agenda +ExtSitesNbOfAgenda=Número de calendarios +AgendaExtNb=Calendario nº %s +ExtSiteUrlAgenda=Url de acceso al archivo .ical diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index ef56bcc45d6..8b54ce9fe62 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -57,4 +57,11 @@ AgendaUrlOptions4=logint=%s pour limiter l'export aux actions affectées AgendaUrlOptions5=logind=%s pour limiter l'export aux actions réalisées par l'utilisateur %s. AgendaShowBirthdayEvents=Afficher anniversaires contacts AgendaHideBirthdayEvents=Cacher anniversaires contacts -ExtSites=Calendriers externes \ No newline at end of file +ExtSites=Calendriers externes + +# External Sites ical +ExtSites=Calendriers extérieures +ExtSitesEnableThisTool=Afficher les calendriers externes sur l'agenda +ExtSitesNbOfAgenda=Nombre de calendriers +AgendaExtNb=Calendrier no %s +ExtSiteUrlAgenda=Url de acceso al archivo .ical \ No newline at end of file