Overview

Packages

  • Kronolith
  • None

Classes

  • Kronolith
  • Kronolith_Ajax_Application
  • Kronolith_Ajax_Imple_ContactAutoCompleter
  • Kronolith_Ajax_Imple_Embed
  • Kronolith_Ajax_Imple_TagActions
  • Kronolith_Ajax_Imple_TagAutoCompleter
  • Kronolith_Api
  • Kronolith_Calendar
  • Kronolith_Calendar_External
  • Kronolith_Calendar_External_Tasks
  • Kronolith_Calendar_Holiday
  • Kronolith_Calendar_Internal
  • Kronolith_Calendar_Remote
  • Kronolith_Calendar_Resource
  • Kronolith_Calendars_Base
  • Kronolith_Calendars_Default
  • Kronolith_Calendars_Kolab
  • Kronolith_Day
  • Kronolith_Driver
  • Kronolith_Driver_Holidays
  • Kronolith_Driver_Horde
  • Kronolith_Driver_Ical
  • Kronolith_Driver_Kolab
  • Kronolith_Driver_Mock
  • Kronolith_Driver_Resource
  • Kronolith_Driver_Sql
  • Kronolith_Event
  • Kronolith_Event_Holidays
  • Kronolith_Event_Horde
  • Kronolith_Event_Ical
  • Kronolith_Event_Kolab
  • Kronolith_Event_Resource
  • Kronolith_Event_Sql
  • Kronolith_Exception
  • Kronolith_Factory_Calendars
  • Kronolith_Factory_Geo
  • Kronolith_Form_CreateCalendar
  • Kronolith_Form_CreateResource
  • Kronolith_Form_CreateResourceGroup
  • Kronolith_Form_DeleteCalendar
  • Kronolith_Form_DeleteResource
  • Kronolith_Form_DeleteResourceGroup
  • Kronolith_Form_EditCalendar
  • Kronolith_Form_EditRemoteCalendar
  • Kronolith_Form_EditResource
  • Kronolith_Form_EditResourceGroup
  • Kronolith_Form_SubscribeRemoteCalendar
  • Kronolith_Form_UnsubscribeRemoteCalendar
  • Kronolith_FreeBusy
  • Kronolith_FreeBusy_View
  • Kronolith_FreeBusy_View_Day
  • Kronolith_FreeBusy_View_Month
  • Kronolith_FreeBusy_View_Week
  • Kronolith_FreeBusy_View_Workweek
  • Kronolith_Geo_Base
  • Kronolith_Geo_Mysql
  • Kronolith_Geo_Sql
  • Kronolith_LoginTasks_SystemTask_Upgrade
  • Kronolith_LoginTasks_Task_PurgeEvents
  • Kronolith_Notification_Listener_AjaxStatus
  • Kronolith_Resource
  • Kronolith_Resource_Base
  • Kronolith_Resource_Group
  • Kronolith_Resource_Single
  • Kronolith_Storage
  • Kronolith_Storage_Kolab
  • Kronolith_Storage_Sql
  • Kronolith_Tagger
  • Kronolith_Test
  • Kronolith_View_Day
  • Kronolith_View_DeleteEvent
  • Kronolith_View_EditEvent
  • Kronolith_View_Event
  • Kronolith_View_ExportEvent
  • Kronolith_View_Month
  • Kronolith_View_Week
  • Kronolith_View_WorkWeek
  • Kronolith_View_Year
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Kronolith_Calendar_External defines an API for single timeobject calendars.
  4:  *
  5:  * Copyright 2010-2012 Horde LLC (http://www.horde.org/)
  6:  *
  7:  * See the enclosed file COPYING for license information (GPL). If you
  8:  * did not receive this file, see http://www.horde.org/licenses/gpl.
  9:  *
 10:  * @author  Jan Schneider <jan@horde.org>
 11:  * @package Kronolith
 12:  */
 13: class Kronolith_Calendar_External extends Kronolith_Calendar
 14: {
 15:     /**
 16:      * The application of this timeobject source.
 17:      *
 18:      * @var string
 19:      */
 20:     protected $_api;
 21: 
 22:     /**
 23:      * The ID of this timeobject source.
 24:      *
 25:      * @var string
 26:      */
 27:     protected $_id;
 28: 
 29:     /**
 30:      * The name of this timeobject source.
 31:      *
 32:      * @var string
 33:      */
 34:     protected $_name;
 35: 
 36:     /**
 37:      * Constructor.
 38:      *
 39:      * @param array $params  A hash with any parameters that this calendar
 40:      *                       might need.
 41:      *                       Required parameters:
 42:      *                       - share: The share of this calendar.
 43:      */
 44:     public function __construct($params = array())
 45:     {
 46:         if (!isset($params['name'])) {
 47:             throw new BadMethodCallException('name parameter is missing');
 48:         }
 49:         if (!isset($params['id'])) {
 50:             throw new BadMethodCallException('id parameter is missing');
 51:         }
 52:         if (!isset($params['api'])) {
 53:             throw new BadMethodCallException('api parameter is missing');
 54:         }
 55:         parent::__construct($params);
 56:     }
 57: 
 58:     /**
 59:      * Returns the name of this calendar.
 60:      *
 61:      * @return string  This calendar's name.
 62:      */
 63:     public function name()
 64:     {
 65:         return $this->_name;
 66:     }
 67: 
 68:     /**
 69:      * Whether this calendar is supposed to be displayed in lists.
 70:      *
 71:      * @return boolean  True if this calendar should be displayed.
 72:      */
 73:     public function display()
 74:     {
 75:         return empty($GLOBALS['conf']['share']['hidden']) ||
 76:             in_array($this->_api . '/' . $this->_id, $GLOBALS['display_external_calendars']);
 77:     }
 78: 
 79:     /**
 80:      * Returns the application of this calendar.
 81:      *
 82:      * @return string  This calendar's timeobject application.
 83:      */
 84:     public function api()
 85:     {
 86:         return $this->_api;
 87:     }
 88: 
 89:     /**
 90:      * Returns a hash representing this calendar.
 91:      *
 92:      * @return array  A simple hash.
 93:      */
 94:     public function toHash()
 95:     {
 96:         $hash = parent::toHash();
 97:         $hash['api']  = $GLOBALS['registry']->get('name', $GLOBALS['registry']->hasInterface($this->api()));
 98:         $hash['show'] = in_array($this->_api . '/' . $this->_id, $GLOBALS['display_external_calendars']);
 99:         return $hash;
100:     }
101: }
102: 
API documentation generated by ApiGen