1: <?php
2: /**
3: * This provider deals with data from the local server.
4: *
5: * PHP version 5
6: *
7: * @category Kolab
8: * @package Kolab_FreeBusy
9: * @author Gunnar Wrobel <wrobel@pardus.de>
10: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
11: * @link http://pear.horde.org/index.php?package=Kolab_FreeBusy
12: */
13:
14: /**
15: * This provider deals with data from the local server.
16: *
17: * Copyright 2011-2012 Horde LLC (http://www.horde.org/)
18: *
19: * See the enclosed file COPYING for license information (LGPL). If
20: * you did not receive this file, see
21: * http://www.horde.org/licenses/lgpl21.
22: *
23: * @category Kolab
24: * @package Kolab_FreeBusy
25: * @author Gunnar Wrobel <wrobel@pardus.de>
26: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
27: * @link http://pear.horde.org/index.php?package=Kolab_FreeBusy
28: */
29: class Horde_Kolab_FreeBusy_Provider_Local
30: implements Horde_Kolab_FreeBusy_Provider
31: {
32: /**
33: * The owner of the data.
34: *
35: * @var Horde_Kolab_FreeBusy_Owner
36: */
37: private $_owner;
38:
39: /**
40: * The user accessing the data.
41: *
42: * @var Horde_Kolab_FreeBusy_User
43: */
44: private $_user;
45:
46: /**
47: * Constructor
48: *
49: * @param Horde_Kolab_FreeBusy_Owner $owner The owner of the data.
50: * @param Horde_Kolab_FreeBusy_User $user The user accessing the data.
51: */
52: public function __construct(
53: Horde_Kolab_FreeBusy_Owner $owner, Horde_Kolab_FreeBusy_User $user
54: )
55: {
56: $this->_owner = $owner;
57: $this->_user = $user;
58: }
59:
60: /**
61: * Trigger a resource.
62: *
63: * @param Horde_Controller_Response $response The response handler.
64: * @param array $params Additional parameters.
65: *
66: * @return NULL
67: */
68: public function trigger(
69: Horde_Controller_Response $response,
70: $params = array()
71: )
72: {
73: $this->logger->debug(sprintf("Starting generation of free/busy data for user %s",
74: $this->params->callee));
75:
76: $params = array('extended' => $this->params->type == 'xfb');
77:
78: // @todo: Reconsider this. We have been decoupled from the
79: // global context here but reinjecting this value seems
80: // extremely weird. Are there any other options?
81: $this->app->callee = $this->params->callee;
82: $this->data = $this->app->driver->fetch($this->params);
83:
84: $this->logger->debug('Delivering complete free/busy data.');
85:
86: /* Display the result to the user */
87: $this->render();
88:
89: $this->logger->debug('Free/busy generation complete.');
90: }
91:
92: /**
93: * Fetch data for an owner.
94: *
95: * @param Horde_Controller_Response $response The response handler.
96: * @param array $params Additional parameters.
97: *
98: * @return NULL
99: */
100: public function fetch(
101: Horde_Controller_Response $response,
102: $params = array()
103: )
104: {
105: }
106:
107: /**
108: * Delete data of an owner.
109: *
110: * @param Horde_Controller_Response $response The response handler.
111: * @param array $params Additional parameters.
112: *
113: * @return NULL
114: */
115: public function delete(
116: Horde_Controller_Response $response,
117: $params = array()
118: )
119: {
120: }
121:
122: /**
123: * Regenerate all data accessible to the current user.
124: *
125: * @param Horde_Controller_Response $response The response handler.
126: * @param array $params Additional parameters.
127: *
128: * @return NULL
129: */
130: public function regenerate(
131: Horde_Controller_Response $response,
132: $params = array()
133: )
134: {
135: }
136: }