1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
15:
16: defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
17:
18: 19: 20: 21: 22: 23:
24: class cApiClientCollection extends ItemCollection {
25:
26: 27: 28:
29: public function __construct() {
30: global $cfg;
31: parent::__construct($cfg['tab']['clients'], 'idclient');
32: $this->_setItemClass('cApiClient');
33: }
34:
35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46:
47: public function create($name, $errsite_cat = 0, $errsite_art = 0, $author = '', $created = '', $lastmodified = '') {
48: global $auth;
49:
50: if (empty($author)) {
51: $author = $auth->auth['uname'];
52: }
53: if (empty($created)) {
54: $created = date('Y-m-d H:i:s');
55: }
56: if (empty($lastmodified)) {
57: $lastmodified = date('Y-m-d H:i:s');
58: }
59:
60: $item = parent::createNewItem();
61: $item->set('name', $name);
62: $item->set('errsite_cat', $errsite_cat);
63: $item->set('errsite_art', $errsite_art);
64: $item->set('author', $author);
65: $item->set('created', $created);
66: $item->set('lastmodified', $lastmodified);
67: $item->store();
68:
69: return $item;
70: }
71:
72: 73: 74: 75: 76:
77: public function getAvailableClients() {
78: $clients = array();
79:
80: $this->select();
81:
82: while (($item = $this->next()) !== false) {
83: $clients[$item->get('idclient')] = array(
84: 'name' => $item->get('name')
85: );
86: }
87:
88: return $clients;
89: }
90:
91: 92: 93: 94: 95:
96: public function getAccessibleClients() {
97: global $perm;
98: $clients = array();
99: $this->select();
100: while (($item = $this->next()) !== false) {
101: if ($perm->have_perm_client("client[" . $item->get('idclient') . "]") || $perm->have_perm_client("admin[" . $item->get('idclient') . "]") || $perm->have_perm_client()) {
102: $clients[$item->get('idclient')] = array(
103: 'name' => $item->get('name')
104: );
105: }
106: }
107: return $clients;
108: }
109:
110: 111: 112: 113: 114:
115: public function getFirstAccessibleClient() {
116: global $perm;
117: $this->select();
118: while (($item = $this->next()) !== false) {
119: if ($perm->have_perm_client("client[" . $item->get('idclient') . "]") || $perm->have_perm_client("admin[" . $item->get('idclient') . "]")) {
120: return $item;
121: }
122: }
123: return null;
124: }
125:
126: 127: 128: 129: 130: 131:
132: public function getClientname($idClient) {
133: $this->select("idclient='" . (int) $idClient . "'");
134: if (($item = $this->next()) !== false) {
135: return $item->get('name');
136: } else {
137: return i18n("No client");
138: }
139: }
140:
141: 142: 143: 144: 145: 146:
147: public function hasLanguageAssigned($idClient) {
148: $client = new cApiClient($idClient);
149:
150: return $client->hasLanguages();
151: }
152:
153: }
154:
155: 156: 157: 158: 159: 160: 161:
162: class cApiClient extends Item {
163:
164: public $idclient;
165:
166: 167: 168: 169: 170:
171: protected $_oPropertyCollection;
172:
173: 174: 175: 176: 177:
178: public function __construct($id = false) {
179: global $cfg;
180: parent::__construct($cfg['tab']['clients'], 'idclient');
181: if ($id !== false) {
182: $this->loadByPrimaryKey($id);
183: }
184: }
185:
186: 187: 188: 189: 190: 191: 192:
193: public static function getInstance($client = false) {
194: static $currentInstance = array();
195:
196: if (!$client) {
197:
198: $client = cRegistry::getClientId();
199: }
200:
201: if (!isset($currentInstance[$client])) {
202: $currentInstance[$client] = new cApiClient($client);
203: }
204:
205: return $currentInstance[$client];
206: }
207:
208: 209: 210: 211: 212: 213:
214: public function loadByPrimaryKey($idKey) {
215: if (parent::loadByPrimaryKey($idKey) == true) {
216: $this->idclient = $idKey;
217: return true;
218: }
219: return false;
220: }
221:
222: 223: 224: 225: 226: 227: 228: 229:
230: public function setProperty($type, $name, $value, $idproperty = 0) {
231: $oPropertyColl = $this->_getPropertiesCollectionInstance();
232: $oPropertyColl->setValue('clientsetting', $this->idclient, $type, $name, $value, $idproperty);
233: }
234:
235: 236: 237: 238: 239: 240: 241: 242:
243: public function getProperty($type, $name, $client = 0) {
244: $propertyColl = $this->_getPropertiesCollectionInstance();
245: return $propertyColl->getValue('clientsetting', $this->idclient, $type, $name);
246: }
247:
248: 249: 250: 251: 252: 253: 254: 255:
256: public function deleteProperty($idProp, $p2 = "", $client = 0) {
257: $propertyColl = $this->_getPropertiesCollectionInstance();
258: $propertyColl->delete($idProp);
259: }
260:
261: 262: 263: 264: 265: 266:
267: public function getPropertiesByType($type) {
268: $propertyColl = $this->_getPropertiesCollectionInstance();
269: return $propertyColl->getValuesByType('clientsetting', $this->idclient, $type);
270: }
271:
272: 273: 274: 275: 276: 277: 278: 279:
280: public function getProperties() {
281: $propertyColl = $this->_getPropertiesCollectionInstance();
282: $propertyColl->select("itemid='" . $this->idclient . "' AND itemtype='clientsetting'", "", "type, name, value ASC");
283:
284: if ($propertyColl->count() > 0) {
285: $array = array();
286:
287: while (($item = $propertyColl->next()) !== false) {
288: $array[$item->get('idproperty')]['type'] = $item->get('type');
289: $array[$item->get('idproperty')]['name'] = $item->get('name');
290: $array[$item->get('idproperty')]['value'] = $item->get('value');
291: }
292:
293: return $array;
294: } else {
295: return false;
296: }
297: }
298:
299: 300: 301: 302: 303:
304: public function hasLanguages() {
305: $clientLanguageCollection = new cApiClientLanguageCollection();
306: $clientLanguageCollection->setWhere("idclient", $this->get("idclient"));
307: $clientLanguageCollection->query();
308:
309: if ($clientLanguageCollection->next()) {
310: return true;
311: } else {
312: return false;
313: }
314: }
315:
316: 317: 318: 319: 320: 321: 322:
323: public function setField($name, $value, $bSafe = true) {
324: switch ($name) {
325: case 'errsite_cat':
326: case 'errsite_art':
327: $value = (int) $value;
328: break;
329: }
330:
331: parent::setField($name, $value, $bSafe);
332: }
333:
334: 335: 336: 337: 338: 339:
340: protected function _getPropertiesCollectionInstance($client = 0) {
341:
342: if (!is_object($this->_oPropertyCollection)) {
343: $this->_oPropertyCollection = new cApiPropertyCollection();
344: $this->_oPropertyCollection->changeClient($this->idclient);
345: }
346: return $this->_oPropertyCollection;
347: }
348:
349: }
350: