<?php /** * Egroupware * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @link http://www.egroupware.org * @author Nathan Gray * @version $Id$ */ use EGroupware\Api; use EGroupware\Api\Etemplate; /** * Creates a grid with rows for the time, columns for (multiple) days containing events * * The associated javascript files are loaded by calendar/js/app.js using the * server-side include manager to get all the dependancies * * @author Nathan Gray */ class calendar_timegrid_etemplate_widget extends Etemplate\Widget { /** * Set up what we know on the server side. * * Sending a first chunk of rows * * @param string $cname * @param array $expand values for keys 'c', 'row', 'c_', 'row_', 'cont' */ public function beforeSendToClient($cname, array $expand=null) { $form_name = self::form_name($cname, $this->id, $expand); $value =& self::get_array(self::$request->content, $form_name, true); if(!is_array($value)) $value = array(); foreach($value as &$events) { if(!is_array($events)) { continue; } foreach($events as &$event) { if(!is_array($event)) continue; foreach(array('start','end') as $date) { $event[$date] = Api\DateTime::to($event[$date],'Y-m-d\TH:i:s\Z'); } } } } /** * Ajax callback to fetch the holidays for a given year. * @param type $year */ public static function ajax_get_holidays($year) { $cal_bo = new calendar_bo(); $holidays = $cal_bo->read_holidays((int)$year); Api\Json\Response::get()->data($holidays); } }