1: <?php
2:
3: /**
4: * This file contains the communication collection and item class.
5: *
6: * @package Core
7: * @subpackage GenericDB_Model
8: * @author Murat Purc <murat@purc.de>
9: * @copyright four for business AG <www.4fb.de>
10: * @license http://www.contenido.org/license/LIZENZ.txt
11: * @link http://www.4fb.de
12: * @link http://www.contenido.org
13: */
14:
15: defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
16:
17: /**
18: * Communication collection
19: *
20: * @package Core
21: * @subpackage GenericDB_Model
22: */
23: class cApiCommunicationCollection extends ItemCollection {
24: /**
25: * Constructor to create an instance of this class.
26: *
27: * @throws cInvalidArgumentException
28: */
29: public function __construct() {
30: global $cfg;
31: parent::__construct($cfg['tab']['communications'], 'idcommunication');
32: $this->_setItemClass('cApiCommunication');
33:
34: // set the join partners so that joins can be used via link() method
35: $this->_setJoinPartner('cApiClientCollection');
36: }
37:
38: /**
39: * Creates a new communication item.
40: *
41: * @return cApiCommunication
42: * @throws cDbException
43: * @throws cException
44: * @throws cInvalidArgumentException
45: */
46: public function create() {
47: global $auth, $client;
48: $item = $this->createNewItem();
49:
50: $item->set('idclient', $client);
51: $item->set('author', $auth->auth['uid']);
52: $item->set('created', date('Y-m-d H:i:s'), false);
53:
54: return $item;
55: }
56:
57: }
58:
59: /**
60: * Communication item
61: *
62: * @package Core
63: * @subpackage GenericDB_Model
64: */
65: class cApiCommunication extends Item {
66: /**
67: * Constructor to create an instance of this class.
68: *
69: * @param mixed $mId [optional]
70: * Specifies the ID of item to load
71: *
72: * @throws cDbException
73: * @throws cException
74: */
75: public function __construct($mId = false) {
76: global $cfg;
77: parent::__construct($cfg['tab']['communications'], 'idcommunication');
78: if ($mId !== false) {
79: $this->loadByPrimaryKey($mId);
80: }
81: }
82:
83: /**
84: * Saves a communication item
85: *
86: * @see Item::store()
87: * @return bool
88: */
89: public function store() {
90: global $auth;
91: $this->set('modifiedby', $auth->auth['uid']);
92: $this->set('modified', date('Y-m-d H:i:s'), false);
93:
94: return parent::store();
95: }
96:
97: /**
98: * Userdefined setter for communcation fields.
99: *
100: * @param string $name
101: * @param mixed $value
102: * @param bool $bSafe [optional]
103: * Flag to run defined inFilter on passed value
104: * @return bool
105: */
106: public function setField($name, $value, $bSafe = true) {
107: switch ($name) {
108: case 'idclient':
109: $value = (int) $value;
110: break;
111: }
112:
113: return parent::setField($name, $value, $bSafe);
114: }
115:
116: }
117: