ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilADTTest.php
Go to the documentation of this file.
1 <?php
2 
3 include_once "Services/ADT/classes/_Example/class.ilADTBasedObject.php";
4 
11 {
12  protected $id; // [int]
13  protected $properties; // [ilADTGroup]
14 
15  const INTERESTS_NONE = 0;
17  const INTERESTS_IT = 2;
18 
19 
20  // properties
21 
22  protected function initProperties()
23  {
24  global $DIC;
25 
26  $lng = $DIC['lng'];
27 
28  // this could be generated from XML or code comments or whatever
29 
30  include_once "Services/ADT/classes/class.ilADTFactory.php";
32 
33  $properties_def = $factory->getDefinitionInstanceByType("Group");
34 
35  $name = $factory->getDefinitionInstanceByType("Text");
36  $name->setMaxLength(255);
37  $properties_def->addElement("name", $name);
38 
39  $status = $factory->getDefinitionInstanceByType("Boolean");
40  $properties_def->addElement("active", $status);
41 
42  // example options from ilLanguage
43  $lng->loadLanguageModule("meta");
44  $options = array();
45  foreach ($lng->getInstalledLanguages() as $lang) {
46  $options[$lang] = $lng->txt("meta_l_" . $lang);
47  }
48 
49  $lang = $factory->getDefinitionInstanceByType("Enum");
50  $lang->setNumeric(false);
51  $lang->setOptions($options);
52  $properties_def->addElement("lang", $lang);
53 
54 
55  $age = $factory->getDefinitionInstanceByType("Integer");
56  $age->setMin(0);
57  $age->setMax(120);
58  $properties_def->addElement("age", $age);
59 
60  $weight = $factory->getDefinitionInstanceByType("Float");
61  $weight->setMin(0);
62  $weight->setMax(500);
63  $properties_def->addElement("weight", $weight);
64 
65  // null?
66  $home = $factory->getDefinitionInstanceByType("Location");
67  $properties_def->addElement("home", $home);
68 
69  $tags = $factory->getDefinitionInstanceByType("MultiText");
70  $tags->setMaxLength(255);
71  $tags->setMaxSize(5);
72  $properties_def->addElement("tags", $tags);
73 
74  $options = array(
75  self::INTERESTS_NONE => $lng->txt("test_interests_none"),
76  self::INTERESTS_LANGUAGES => $lng->txt("test_interests_languages"),
77  self::INTERESTS_IT => $lng->txt("test_interests_it")
78  );
79 
80  $intr = $factory->getDefinitionInstanceByType("MultiEnum");
81  $intr->setOptions($options);
82  $properties_def->addElement("interests", $intr);
83 
84  $date = $factory->getDefinitionInstanceByType("Date");
85  $properties_def->addElement("entry_date", $date);
86 
87  $dt = $factory->getDefinitionInstanceByType("DateTime");
88  $properties_def->addElement("last_login", $dt);
89 
90  // convert ADT definitions to proper ADTs
91  return $factory->getInstanceByDefinition($properties_def);
92  }
93 
94 
95  // CRUD/DB
96 
97  // simple sequence example
98 
99  protected function initDBBridge(ilADTGroupDBBridge $a_adt_db)
100  {
101  $a_adt_db->setTable("adt_test");
102  $a_adt_db->setPrimary(array("id" => array("integer", $this->id)));
103  }
104 
105  protected function parsePrimary(array $a_args)
106  {
107  $this->id = (int) $a_args[0];
108  }
109 
110  protected function hasPrimary()
111  {
112  return (bool) $this->id;
113  }
114 
115  protected function createPrimaryKey()
116  {
117  global $DIC;
118 
119  $ilDB = $DIC['ilDB'];
120 
121  $this->id = $ilDB->nextId("adt_test");
122 
123  // INSERT is only done if createPrimaryKey() returns TRUE!
124  return true;
125  }
126 }
const INTERESTS_IT
This is a ADT-based example object.
global $DIC
Definition: saml.php:7
$factory
Definition: metadata.php:43
static getInstance()
Get singleton.
$lng
$tags
Definition: croninfo.php:19
initDBBridge(ilADTGroupDBBridge $a_adt_db)
parsePrimary(array $a_args)
const INTERESTS_LANGUAGES
global $ilDB
ADT based-object base class.
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
Definition: langwiz.php:349
const INTERESTS_NONE