ILIAS  Release_4_4_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilPageContentUsage.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
13 {
17  static function saveUsage($a_pc_type, $a_pc_id, $a_usage_type, $a_usage_id, $a_usage_hist_nr = 0, $a_lang = "-")
18  {
19  global $ilDB;
20 
21  $ilDB->replace("page_pc_usage", array (
22  "pc_type" => array("text", $a_pc_type),
23  "pc_id" => array("integer", (int) $a_pc_id),
24  "usage_type" => array("text", $a_usage_type),
25  "usage_id" => array("integer", (int) $a_usage_id),
26  "usage_lang" => array("text", $a_lang),
27  "usage_hist_nr" => array("integer", (int) $a_usage_hist_nr)
28  ),array());
29  }
30 
34  static function deleteAllUsages($a_pc_type, $a_usage_type, $a_usage_id, $a_usage_hist_nr = 0, $a_lang = "-")
35  {
36  global $ilDB;
37 
38  $and_hist = ($a_usage_hist_nr !== false)
39  ? " AND usage_hist_nr = ".$ilDB->quote((int) $a_usage_hist_nr, "integer")
40  : "";
41 
42  $ilDB->manipulate($q = "DELETE FROM page_pc_usage WHERE usage_type = ".
43  $ilDB->quote($a_usage_type, "text").
44  " AND usage_id = ".$ilDB->quote((int) $a_usage_id, "integer").
45  " AND usage_lang = ".$ilDB->quote($a_usage_lang, "text").
46  $and_hist.
47  " AND pc_type = ".$ilDB->quote($a_pc_type, "text"));
48  }
49 
53  function getUsages($a_pc_type, $a_pc_id, $a_incl_hist = true)
54  {
55  global $ilDB;
56 
57  $q = "SELECT * FROM page_pc_usage ".
58  " WHERE pc_type = ".$ilDB->quote($a_pc_type, "text").
59  " AND pc_id = ".$ilDB->quote($a_pc_id, "integer");
60 
61  if (!$a_incl_hist)
62  {
63  $q.= " AND usage_hist_nr = ".$ilDB->quote(0, "integer");
64  }
65 
66  $set = $ilDB->query($q);
67  $usages = array();
68  while ($rec = $ilDB->fetchAssoc($set))
69  {
70  $usages[] = $rec;
71  }
72  return $usages;
73  }
74 
81  function getUsagesOfPage($a_usage_id, $a_usage_type, $a_hist_nr = 0, $a_all_hist_nrs = false, $a_lang = "-")
82  {
83  global $ilDB;
84 
85  if (!$a_all_hist_nrs)
86  {
87  $hist_str = " AND usage_hist_nr = ".$ilDB->quote($a_hist_nr, "integer");
88  }
89 
90  $set = $ilDB->query("SELECT pc_type, pc_id FROM page_pc_usage WHERE ".
91  " usage_id = ".$ilDB->quote($a_usage_id, "integer")." AND ".
92  " usage_lang = ".$ilDB->quote($a_lang, "text")." AND ".
93  " usage_type = ".$ilDB->quote($a_usage_type, "text").
94  $hist_str
95  );
96 
97  $usages = array();
98  while ($rec = $ilDB->fetchAssoc($set))
99  {
100  $usages[$rec["pc_type"].":".$rec["pc_id"]] = array(
101  "type" => $rec["pc_type"],
102  "id" => $rec["pc_id"]
103  );
104  }
105 
106  return $usages;
107  }
108 
109 }