diff --git a/htdocs/actioncomm.class.php b/htdocs/actioncomm.class.php
index 999fa6ef5a3..ba9d7e29eae 100644
--- a/htdocs/actioncomm.class.php
+++ b/htdocs/actioncomm.class.php
@@ -545,13 +545,13 @@ class ActionComm
\param filters Array of filters
\return int <0 if error, nb of events in new file if ok
*/
- function build_calfile($format,$type,$cachedelay,$filename,$filters)
+ function build_exportfile($format,$type,$cachedelay,$filename,$filters)
{
global $conf,$langs,$dolibarr_main_url_root;
require_once (DOL_DOCUMENT_ROOT ."/lib/xcal.lib.php");
- dolibarr_syslog("ActionComm::build_calfile Build cal file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".sizeof($filters), LOG_DEBUG);
+ dolibarr_syslog("ActionComm::build_exportfile Build export file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".sizeof($filters), LOG_DEBUG);
// Check parameters
if (empty($format)) return -1;
@@ -602,7 +602,7 @@ class ActionComm
}
$sql.= " ORDER by datec";
- dolibarr_syslog("ActionComm::build_vcal select events sql=".$sql);
+ dolibarr_syslog("ActionComm::build_exportfile select events sql=".$sql);
$resql=$this->db->query($sql);
if ($resql)
{
@@ -641,14 +641,16 @@ class ActionComm
else
{
$this->error=$this->db->lasterror();
- dolibarr_syslog("ActionComm::build_calfile ".$this->db->lasterror(), LOG_ERR);
+ dolibarr_syslog("ActionComm::build_exportfile ".$this->db->lasterror(), LOG_ERR);
return -1;
}
// Write file
$title='Dolibarr actions';
$desc='List of actions - built by Dolibarr';
- $result=build_calfile($format,$title,$desc,$eventarray,$outputfile);
+ if ($format == 'ical') $result=build_calfile($format,$title,$desc,$eventarray,$outputfile);
+ if ($format == 'vcal') $result=build_calfile($format,$title,$desc,$eventarray,$outputfile);
+ if ($format == 'rss') $result=build_rssfile($format,$title,$desc,$eventarray,$outputfile);
}
return $result;
diff --git a/htdocs/admin/agenda_xcal.php b/htdocs/admin/agenda_xcal.php
index e091fd2762d..4a19849b964 100644
--- a/htdocs/admin/agenda_xcal.php
+++ b/htdocs/admin/agenda_xcal.php
@@ -118,6 +118,9 @@ $message.=$langs->trans("WebCalUrlForVCalExport",'vcal',$urlvcal);
$message.='
';
$urlical=''.$urlwithouturlroot.DOL_URL_ROOT.'/comm/action/agendaexport.php?format=ical&type=event&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').'';
$message.=$langs->trans("WebCalUrlForVCalExport",'ical',$urlical);
+$message.='
';
+$urlrss=''.$urlwithouturlroot.DOL_URL_ROOT.'/comm/action/agendaexport.php?format=rss&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').'';
+$message.=$langs->trans("WebCalUrlForVCalExport",'rss',$urlrss);
print info_admin($message);
$db->close();
diff --git a/htdocs/comm/action/agendaexport.php b/htdocs/comm/action/agendaexport.php
index 1e019490509..3152f628c60 100644
--- a/htdocs/comm/action/agendaexport.php
+++ b/htdocs/comm/action/agendaexport.php
@@ -29,6 +29,18 @@ require("../../master.inc.php");
require_once(DOL_DOCUMENT_ROOT.'/actioncomm.class.php');
+$mainmenu=isset($_GET["mainmenu"])?$_GET["mainmenu"]:"";
+$leftmenu=isset($_GET["leftmenu"])?$_GET["leftmenu"]:"";
+
+// Define format, type and filter
+$format='ical';
+$type='event';
+if (! empty($_GET["format"])) $format=$_GET["format"];
+if (! empty($_GET["type"])) $type=$_GET["type"];
+$filters=array();
+if (! empty($_GET["year"])) $filters['year']=$_GET["year"];
+if (! empty($_GET["idaction"])) $filters['idaction']=$_GET["idaction"];
+
// C'est un wrapper, donc header vierge
function llxHeader() { print '