Skip to content
Snippets Groups Projects
Select Git revision
  • c6a136930ece1810f1bdd269c599ce4c3916a107
  • 3.9 default
  • develop
  • 6.0
  • 5.0
  • 4.0
  • scrutinizer-patch-4
  • scrutinizer-patch-3
  • scrutinizer-patch-2
  • scrutinizer-patch-1
  • 3.7
  • 3.8
  • 3.6
  • 3.9_backported
  • 3.8_backported
  • 3.7_backported
  • 3.5
  • 3.6_backported
  • 3.5_backported
  • 3.4
  • 3.3_backported
  • 6.0.4
  • 6.0.3
  • 5.0.7
  • 6.0.2
  • 6.0.1
  • 5.0.6
  • 6.0.0
  • 5.0.5
  • 6.0.0-rc
  • 5.0.4
  • 6.0.0-beta
  • 5.0.3
  • 4.0.6
  • 5.0.2
  • 5.0.1
  • 4.0.5
  • 5.0.0
  • 4.0.4
  • 5.0.0-rc2
  • 5.0.0-rc1
41 results

xcal.lib.php

Blame
  • xcal.lib.php 13.76 KiB
    <?php
    /* Copyright (C) 2008 Laurent Destailleur  <eldy@users.sourceforge.net>
     *
     * 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
     * the Free Software Foundation; either version 2 of the License, or
     * (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     */
    
    
    /**
     *  \file       htdocs/lib/xcal.lib.php
     *  \brief      Function to manage calendar files (vcal/ical/...)
     *  \version    $Id$
     */
    
    /**
     *	\brief		Build a file from an array of events
     *	\param		format				'vcal' or 'ical'
     *	\param		title				Title of export
     *	\param		desc				Description of export
     *	\param		events_array		Array of events ('eid','startdate','duration','enddate','title','summary','category','email','url','desc','author')
     *	\param		outputfile			Output file
     *	\param		filter				Filter
     *	\return		int					<0 if ko, Nb of events in file if ok
     *	\remarks	All input params and data must be encoded in $conf->charset_output
     */
    function build_calfile($format='vcal',$title,$desc,$events_array,$outputfile,$filter='')
    {
    	global $conf,$langs;
    
    	dol_syslog("xcal.lib.php::build_calfile Build cal file ".$outputfile." to format ".$format);
    
    	if (empty($outputfile)) return -1;
    
    	// Note: A cal file is an UTF8 encoded file
    	$calfileh=fopen($outputfile,'w');
    	if ($calfileh)
    	{
    		$now=mktime();
    
    		$encoding='';
    		if ($format == 'vcal') $encoding='ENCODING=QUOTED-PRINTABLE:';
    
    		// Print header
    		fwrite($calfileh,"BEGIN:VCALENDAR\n");
    		fwrite($calfileh,"VERSION:2.0\n");
    		fwrite($calfileh,"METHOD:PUBLISH\n");
    		//fwrite($calfileh,"PRODID:-//DOLIBARR ".DOL_VERSION."//EN\n");
    		fwrite($calfileh,"PRODID:-//DOLIBARR ".DOL_VERSION."\n");
    		fwrite($calfileh,"CALSCALE:GREGORIAN\n");
    		fwrite($calfileh,"X-WR-CALNAME:".$encoding.format_cal($format,$title)."\n");
    		fwrite($calfileh,"X-WR-CALDESC:".$encoding.format_cal($format,$desc)."\n");
    		//fwrite($calfileh,"X-WR-TIMEZONE:Europe/Paris\n");
    
    		foreach ($events_array as $date => $event)
    		{
    			$eventqualified=true;
    			if ($filter)
    			{
    				// \TODO Add a filter