Offline Server  1.6
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
Class.DomainManager.php
Go to the documentation of this file.
1 <?php
2 /**
3  * Return offline domains where current user is affected
4  *
5  * @author Anakeen
6  * @version $Id: $
7  * @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Anakeen - licence CC
8  * @package OFFLINE
9  */
10 /**
11  */
12 
13 include_once ("FDL/Class.SearchDoc.php");
14 include_once ("DATA/Class.Collection.php");
15 include_once ("OFFLINE/Class.ExceptionCode.php");
16 
18 {
19  private static $error = '';
20  private static function getUserId()
21  {
22  return Doc::getSystemUserId();
23  }
24  private static function setError($err)
25  {
26  throw new Exception($err);
27  }
28 
29  /**
30  * List all domain availables by current user
31  * @code
32  $domains=DomainManager::getDomains();
33  foreach ($domains as $domain) {
34  print $domain->getTitle()."\n";
35  }
36  * @endcode
37  * @return DocumentList search results
38  */
39  public static function getDomains()
40  {
41  include_once ("FDL/Class.DocumentList.php");
42  $userId = self::getUserId();
43  $s = new SearchDoc(getDbAccess(), "OFFLINEDOMAIN");
44  $s->setObjectReturn();
45  $s->search();
46  $err = $s->getError();
47 
48  if ($err) {
49  self::setError($err);
50  }
51 
52  $s->search();
53  while ( $doc = $s->nextDoc() ) {
54  $users = array_keys($doc->getUserMembersInfo());
55  if (!in_array($userId, $users)) {
56  $s->addFilter("initid != %d", $doc->initid);
57  }
58  }
59  $s->reset();
60  return $s->getDocumentList();
61  }
62 
63 
64 
65  /**
66  * create a new domain
67  * @code
68  $domain=DomainManager::createDomain("myDomain");
69  $err =$domain->addFamily("TST_ARTICLE");
70  $err.=$domain->addUserMember("john.doe");
71  $err.=$domain->insertUserDocument("1254","john.doe");
72  * @endcode
73  * @throws Exception if no habilities or if reference is already set by another
74  * @exception OfflineExceptionCode::referenceExists, OfflineExceptionCode::createForbidden
75  * @return _OFFLINEDOMAIN document
76  */
77  public static function createDomain($reference)
78  {
79  $domain = createDoc(getDbAccess(), "OFFLINEDOMAIN");
80  if (!$domain) {
81  throw new Exception(_("no privilege to create offline domain"), OfflineExceptionCode::createForbidden);
82  }
83  $domain->setValue("off_ref", $reference);
84  $err = $domain->verifyAllConstraints();
85  if ($err) {
86  throw new Exception($err, OfflineExceptionCode::referenceInvalid);
87  }
88  $err = $domain->add();
89  if ($err) {
90  throw new Exception($err, OfflineExceptionCode::referenceExists);
91  }
92  return $domain;
93  }
94 
95 
96 
97 }
98 ?>
static createDomain($reference)
const referenceExists
domain reference must be unique
const createForbidden
create is forbidden
const referenceInvalid
domain reference accept onlyh alphanum characters
← centre documentaire © anakeen - published under CC License - Dynacase