ILIAS  Release_5_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilAdvancedMDFieldDefinitionDate.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once "Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php";
5 
15 {
16  //
17  // generic types
18  //
19 
20  public function getType()
21  {
22  return self::TYPE_DATE;
23  }
24 
25 
26  //
27  // ADT
28  //
29 
30  protected function initADTDefinition()
31  {
32  return ilADTFactory::getInstance()->getDefinitionInstanceByType("Date");
33  }
34 
35 
36  //
37  // import/export
38  //
39 
40  public function getValueForXML(ilADT $element)
41  {
42  return $element->getDate()->get(IL_CAL_DATE);
43  }
44 
45  public function importValueFromXML($a_cdata)
46  {
47  $this->getADT()->setDate(new ilDate($a_cdata, IL_CAL_DATE));
48  }
49 
50  public function importFromECS($a_ecs_type, $a_value, $a_sub_id)
51  {
52  switch($a_ecs_type)
53  {
55  if($a_value instanceof ilECSTimePlace)
56  {
57  $value = new ilDate($a_value->{'getUT'.ucfirst($a_sub_id)}(), IL_CAL_UNIX);
58  }
59  break;
60  }
61 
62  if($value instanceof ilDate)
63  {
64  $this->getADT()->setDate($value);
65  return true;
66  }
67  return false;
68  }
69 
70 
71  //
72  // presentation
73  //
74 
75  public function prepareElementForEditor(ilADTFormBridge $a_bridge)
76  {
77  $a_bridge->setTextInputMode(true);
78  }
79 
80 
81  //
82  // search
83  //
84 
85  public function getLuceneSearchString($a_value)
86  {
87  // see ilADTDateSearchBridgeRange::importFromPost();
88 
89  if($a_value["tgl"])
90  {
91  $start = $end = null;
92 
93  if($a_value["lower"]["date"])
94  {
95  $start = mktime(12, 0, 0,
96  $a_value["lower"]["date"]["m"],
97  $a_value["lower"]["date"]["d"],
98  $a_value["lower"]["date"]["y"]);
99  }
100  if($a_value["upper"]["date"])
101  {
102  $end = mktime(12, 0, 0,
103  $a_value["upper"]["date"]["m"],
104  $a_value["upper"]["date"]["d"],
105  $a_value["upper"]["date"]["y"]);
106  }
107 
108  if($start && $end && $start > $end)
109  {
110  $tmp = $start;
111  $start = $end;
112  $end = $tmp;
113  }
114 
115  $start = new ilDate($start, IL_CAL_UNIX);
116  $end = new ilDate($end, IL_CAL_UNIX);
117 
118  return "{".$start->get(IL_CAL_DATE)." TO ".$end->get(IL_CAL_DATE)."}";
119  }
120  }
121 
122  public function prepareElementForSearch(ilADTSearchBridge $a_bridge)
123  {
124  $a_bridge->setTextInputMode(true);
125  }
126 }
127 
128 ?>