ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilDidacticTemplateSetting.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
11 {
12  const TYPE_CREATION = 1;
13 
14 
15  private $id = 0;
16  private $enabled = false;
17  private $title = '';
18  private $description = '';
19  private $info = '';
21  private $assignments = array();
22 
23 
28  public function __construct($a_id = 0)
29  {
30  $this->setId($a_id);
31  $this->read();
32  }
33 
38  protected function setId($a_id)
39  {
40  $this->id = $a_id;
41  }
42 
47  public function getId()
48  {
49  return $this->id;
50  }
51 
56  public function enable($a_status)
57  {
58  $this->enabled = $a_status;
59  }
60 
65  public function isEnabled()
66  {
67  return $this->enabled;
68  }
69 
74  public function setTitle($a_title)
75  {
76  $this->title = $a_title;
77  }
78 
83  public function getTitle()
84  {
85  return $this->title;
86  }
87 
92  public function getDescription()
93  {
94  return $this->description;
95  }
96 
101  public function setDescription($a_description)
102  {
103  $this->description = $a_description;
104  }
105 
110  public function setInfo($a_info)
111  {
112  $this->info = $a_info;
113  }
114 
119  public function getInfo()
120  {
121  return $this->info;
122  }
123 
128  public function setType($a_type)
129  {
130  $this->type = $a_type;
131  }
132 
137  public function getType()
138  {
139  return $this->type;
140  }
141 
146  public function setAssignments(Array $a_ass)
147  {
148  $this->assignments = (array) $a_ass;
149  }
150 
155  public function getAssignments()
156  {
157  return (array) $this->assignments;
158  }
159 
164  public function addAssignment($a_obj_type)
165  {
166  $this->assignments[] = $a_obj_type;
167  }
168 
172  public function delete()
173  {
174  global $ilDB;
175 
176  // Delete settings
177  $query = 'DELETE FROM didactic_tpl_settings '.
178  'WHERE id = '.$ilDB->quote($this->getId(),'integer');
179  $ilDB->manipulate($query);
180 
181  // Delete obj assignments
182  $query = 'DELETE FROM didactic_tpl_sa '.
183  'WHERE id = '.$ilDB->quote($this->getId(),'integer');
184  $ilDB->manipulate($query);
185 
186  include_once './Services/DidacticTemplate/classes/class.ilDidacticTemplateActionFactory.php';
188  {
189  $action->delete();
190  }
191 
192 
193  return true;
194  }
195 
199  public function save()
200  {
201  global $ilDB;
202 
203  $this->setId($ilDB->nextId('didactic_tpl_settings'));
204 
205  $query = 'INSERT INTO didactic_tpl_settings (id,enabled,title,description,info,type) '.
206  'VALUES( '.
207  $ilDB->quote($this->getId(),'integer').', '.
208  $ilDB->quote($this->isEnabled(),'integer').', '.
209  $ilDB->quote($this->getTitle(),'text').', '.
210  $ilDB->quote($this->getDescription(),'text').', '.
211  $ilDB->quote($this->getInfo(),'text').', '.
212  $ilDB->quote($this->getType(),'integer').
213  ')';
214 
215  $ilDB->manipulate($query);
216 
217  $this->saveAssignments();
218 
219 
220  return true;
221  }
222 
227  private function saveAssignments()
228  {
229  foreach($this->getAssignments() as $ass)
230  {
231  $this->saveAssignment($ass);
232  }
233  return true;
234  }
235 
241  private function saveAssignment($a_obj_type)
242  {
243  global $ilDB;
244 
245  $query = 'INSERT INTO didactic_tpl_sa (id,obj_type) '.
246  'VALUES( '.
247  $ilDB->quote($this->getId(),'integer').', '.
248  $ilDB->quote($a_obj_type,'text').
249  ')';
250  $ilDB->manipulate($query);
251  }
252 
258  private function deleteAssignments()
259  {
260  global $ilDB;
261 
262  $query = 'DELETE FROM didactic_tpl_sa '.
263  'WHERE id = '.$ilDB->quote($this->getId(),'integer');
264  $ilDB->manipulate($query);
265  return true;
266  }
267 
272  public function update()
273  {
274  global $ilDB;
275 
276  $query = 'UPDATE didactic_tpl_settings '.
277  'SET '.
278  'enabled = '.$ilDB->quote($this->isEnabled(),'integer').', '.
279  'title = '.$ilDB->quote($this->getTitle(),'text').', '.
280  'description = '.$ilDB->quote($this->getDescription(),'text').', '.
281  'info = '.$ilDB->quote($this->getInfo(),'text').', '.
282  'type = '.$ilDB->quote($this->getType(),'integer').' '.
283  'WHERE id = '.$ilDB->quote($this->getId(),'integer');
284  $ilDB->manipulate($query);
285  $this->deleteAssignments();
286  $this->saveAssignments();
287 
288  return true;
289  }
290 
295  protected function read()
296  {
297  global $ilDB;
298 
299  if(!$this->getId())
300  {
301  return false;
302  }
303 
307  $query = 'SELECT * FROM didactic_tpl_settings dtpl '.
308  'WHERE id = '.$ilDB->quote($this->getId(),'integer');
309  $res = $ilDB->query($query);
310  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
311  {
312  $this->setType($row->type);
313  $this->enable($row->enabled);
314  $this->setTitle($row->title);
315  $this->setDescription($row->description);
316  $this->setInfo($row->info);
317 
318  }
319 
323  $query = 'SELECT * FROM didactic_tpl_sa '.
324  'WHERE id = '.$ilDB->quote($this->getId(),'integer');
325  $res = $ilDB->query($query);
326  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
327  {
328  $this->addAssignment($row->obj_type);
329  }
330  return true;
331  }
332 
338  public function toXml(ilXmlWriter $writer)
339  {
340  switch($this->getType())
341  {
342  case self::TYPE_CREATION:
343  $type = 'creation';
344  break;
345  }
346 
347  $writer->xmlStartTag('didacticTemplate',array('type' => $type));
348  $writer->xmlElement('title',array(),$this->getTitle());
349  $writer->xmlElement('description', array(), $this->getDescription());
350 
351  // info text with p-tags
352  if(strlen($this->getInfo()))
353  {
354  $writer->xmlStartTag('info');
355 
356  $info_lines = (array) explode("\n",$this->getInfo());
357  foreach($info_lines as $info)
358  {
359  $trimmed_info = trim($info);
360  if(strlen($trimmed_info))
361  {
362  $writer->xmlElement('p', array(), $trimmed_info);
363  }
364  }
365 
366  $writer->xmlEndTag('info');
367  }
368 
369  // Assignments
370  $writer->xmlStartTag('assignments');
371  foreach($this->getAssignments() as $assignment)
372  {
373  $writer->xmlElement('assignment', array(), $assignment);
374  }
375  $writer->xmlEndTag('assignments');
376 
377 
378  $writer->xmlStartTag('actions');
379  include_once './Services/DidacticTemplate/classes/class.ilDidacticTemplateActionFactory.php';
381  {
382  $action->toXml($writer);
383  }
384  $writer->xmlEndTag('actions');
385  $writer->xmlEndTag('didacticTemplate');
386 
387  return $writer;
388  }
389 
393  public function __clone()
394  {
395  $this->setId(0);
396  $this->enable(false);
397  }
398 }
399 
400 ?>