ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilDataCollectionRecordViewViewdefinition.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 include_once("./Services/COPage/classes/class.ilPageObject.php");
6 
19 {
20  protected $table_id; // [int]
21  protected $type = 0; // [int] 0 = recordview
22  protected $formtype = 0; // [int] 0 = copage
23 
27  protected static $recordViewCache = array();
28 
34  function getParentType()
35  {
36  return "dclf";
37  }
38 
44  public function setTableId($a_id)
45  {
46  $this->table_id = $a_id;
47  }
48 
54  public function getTableId()
55  {
56  return $this->table_id;
57  }
58 
64  public function getType()
65  {
66  return $this->type;
67  }
68 
74  public function getFormtype()
75  {
76  return $this->formtype;
77  }
78 
79 
83  public function doRead()
84  {
85  global $ilDB;
86 
87  $query = "SELECT * FROM il_dcl_view WHERE table_id = ".$ilDB->quote($this->getId(),"integer");
88  $set = $ilDB->query($query);
89  $rec = $ilDB->fetchAssoc($set);
90 
91  $this->setTableId($rec["table_id"]);
92  $this->type = $rec["type"];
93  $this->formtype = $rec["formtype"];
94  }
95 
96 
100  public function create()
101  {
102  global $ilDB;
103 
104  $id = $ilDB->nextId("il_dcl_view");
105  $this->setId($id);
106 
107  $query = "INSERT INTO il_dcl_view (".
108  "id".
109  ", table_id".
110  ", type".
111  ", formtype".
112  " ) VALUES (".
113  $ilDB->quote($this->getId(), "integer")
114  .",".$ilDB->quote($this->getTableId(), "integer")
115  .",".$ilDB->quote($this->getType(), "integer")
116  .",".$ilDB->quote($this->getFormtype(), "integer")
117  .")";
118  $ilDB->manipulate($query);
119 
120  parent::create();
121  }
122 
129  public function update($a_validate = true, $a_no_history = false)
130  {
131  //TODO
132  //Page-Object updaten
133  //Es wäre auch möglich direkt in der GUI-Klasse ilPageObject aufzurufen. Falls wir aber bei doCreate,
134  //das Page-Object anlegen, fänd ich es sinnvoll, wenn wir auch hier das PageObject updaten würden.
135  //Andernfalls sämtliche Page-Object-Methoden in der GUI-Klasse aufrufen.
136 
137  parent::update($a_validate, $a_no_history);
138 
139  return true;
140  }
141 
150  public static function getIdByTableId($a_table_id)
151  {
152  if (!isset(self::$recordViewCache[$a_table_id])) {
153  global $ilDB;
154  //FIXME die werte bei type und formtype sollten vom constructor genommen werden
155  $set = $ilDB->query("SELECT id FROM il_dcl_view".
156  " WHERE table_id = ".$ilDB->quote($a_table_id, "integer")." AND type = ".$ilDB->quote(0, "integer")." and formtype = ".$ilDB->quote(0, "integer"));
157  $row = $ilDB->fetchAssoc($set);
158  self::$recordViewCache[$a_table_id] = $row['id'];
159  return $row['id'];
160  } else {
161  return self::$recordViewCache[$a_table_id];
162  }
163  }
164 
171  public static function getAvailablePlaceholders($a_table_id, $a_verbose = false)
172  {
173  $all = array();
174 
175  require_once("./Modules/DataCollection/classes/class.ilDataCollectionTable.php");
176  $objTable = ilDataCollectionCache::getTableCache($a_table_id);
177  $fields = $objTable->getRecordFields();
178  $standardFields = $objTable->getStandardFields();
179 
180  foreach($fields as $field)
181  {
182 
183  if(!$a_verbose)
184  {
185  $all[] = "[".$field->getTitle()."]";
186 
187  if($field->getDatatypeId() == ilDataCollectionDatatype::INPUTFORMAT_REFERENCE) {
188  $all[] = '[dclrefln field="'.$field->getTitle().'"][/dclrefln]';
189  }
190 
191  if($field->getDatatypeId() == ilDataCollectionDatatype::INPUTFORMAT_ILIAS_REF) {
192  $all[] = '[dcliln field="'.$field->getTitle().'"][/dcliln]';
193  }
194  }
195  else
196  {
197  $all["[".$field->getTitle()."]"] = $field;
198 
199  if($field->getDatatypeId() == ilDataCollectionDatatype::INPUTFORMAT_REFERENCE) {
200  $all['[dclrefln field="'.$field->getTitle().'"][/dclrefln]'] = $field;
201  }
202 
203  if($field->getDatatypeId() == ilDataCollectionDatatype::INPUTFORMAT_ILIAS_REF) {
204  $all['[dcliln field="'.$field->getTitle().'"][/dcliln]'] = $field;
205  }
206  }
207  }
208 
209  foreach($standardFields as $field){
210  $all[] = "[".$field->getId()."]";
211  }
212 
213  return $all;
214  }
215 }
216 
217 ?>
static getIdByTableId($a_table_id)
Get view definition id by table id.
update($a_validate=true, $a_no_history=false)
Update Viewdefinition.
Class ilPageObject.
setId($a_id)
set id
static getAvailablePlaceholders($a_table_id, $a_verbose=false)
Get all placeholders for table id.