1: <?php
2: /**
3: * The base functionality of the calendars handler.
4: *
5: * See the enclosed file COPYING for license information (GPL). If you
6: * did not receive this file, see http://www.horde.org/licenses/gpl.
7: *
8: * @author Gunnar Wrobel <wrobel@pardus.de>
9: * @package Kronolith
10: */
11: abstract class Kronolith_Calendars_Base
12: {
13: /**
14: * The share backend.
15: *
16: * @var Horde_Share_Base
17: */
18: protected $shares;
19:
20: /**
21: * The current user.
22: *
23: * @var string
24: */
25: protected $user;
26:
27: /**
28: * Additional parameters for the tasklist handling.
29: *
30: * @var array
31: */
32: protected $params;
33:
34: /**
35: * Constructor.
36: *
37: * @param Horde_Share_Base $shares The share backend.
38: * @param string $user The current user.
39: * @param array $params Additional parameters.
40: */
41: public function __construct($shares, $user, $params)
42: {
43: $this->shares = $shares;
44: $this->user = $user;
45: $this->params = $params;
46: }
47:
48: /**
49: * Create the default calendar share for the current user.
50: *
51: * @return Horde_Share_Object The new default share.
52: */
53: public function createDefaultShare()
54: {
55: $share = $this->shares->newShare(
56: $this->user,
57: strval(new Horde_Support_Randomid()),
58: $this->getDefaultShareName()
59: );
60: $this->shares->addShare($share);
61: return $share;
62: }
63:
64: /**
65: * Return the name of the default share.
66: *
67: * @return string The name of a default share.
68: */
69: abstract protected function getDefaultShareName();
70: }