ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
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 public 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 $DIC;
20
21 $ilDB = $DIC->database();
22
23 $ilDB->replace("page_pc_usage", array(
24 "pc_type" => array("text", $a_pc_type),
25 "pc_id" => array("integer", (int) $a_pc_id),
26 "usage_type" => array("text", $a_usage_type),
27 "usage_id" => array("integer", (int) $a_usage_id),
28 "usage_lang" => array("text", $a_lang),
29 "usage_hist_nr" => array("integer", (int) $a_usage_hist_nr)
30 ), array());
31 }
32
36 public static function deleteAllUsages($a_pc_type, $a_usage_type, $a_usage_id, $a_usage_hist_nr = 0, $a_lang = "-")
37 {
38 global $DIC;
39
40 $ilDB = $DIC->database();
41
42 $and_hist = ($a_usage_hist_nr !== false)
43 ? " AND usage_hist_nr = " . $ilDB->quote((int) $a_usage_hist_nr, "integer")
44 : "";
45
46 $ilDB->manipulate($q = "DELETE FROM page_pc_usage WHERE usage_type = " .
47 $ilDB->quote($a_usage_type, "text") .
48 " AND usage_id = " . $ilDB->quote((int) $a_usage_id, "integer") .
49 " AND usage_lang = " . $ilDB->quote($a_lang, "text") .
50 $and_hist .
51 " AND pc_type = " . $ilDB->quote($a_pc_type, "text"));
52 }
53
57 public static function getUsages($a_pc_type, $a_pc_id, $a_incl_hist = true)
58 {
59 global $DIC;
60
61 $ilDB = $DIC->database();
62
63 $q = "SELECT * FROM page_pc_usage " .
64 " WHERE pc_type = " . $ilDB->quote($a_pc_type, "text") .
65 " AND pc_id = " . $ilDB->quote($a_pc_id, "integer");
66
67 if (!$a_incl_hist) {
68 $q .= " AND usage_hist_nr = " . $ilDB->quote(0, "integer");
69 }
70
71 $set = $ilDB->query($q);
72 $usages = array();
73 while ($rec = $ilDB->fetchAssoc($set)) {
74 $usages[] = $rec;
75 }
76 return $usages;
77 }
78
85 public static function getUsagesOfPage($a_usage_id, $a_usage_type, $a_hist_nr = 0, $a_all_hist_nrs = false, $a_lang = "-")
86 {
87 global $DIC;
88
89 $ilDB = $DIC->database();
90
91 if (!$a_all_hist_nrs) {
92 $hist_str = " AND usage_hist_nr = " . $ilDB->quote($a_hist_nr, "integer");
93 }
94
95 $set = $ilDB->query(
96 "SELECT pc_type, pc_id FROM page_pc_usage WHERE " .
97 " usage_id = " . $ilDB->quote($a_usage_id, "integer") . " AND " .
98 " usage_lang = " . $ilDB->quote($a_lang, "text") . " AND " .
99 " usage_type = " . $ilDB->quote($a_usage_type, "text") .
100 $hist_str
101 );
102
103 $usages = array();
104 while ($rec = $ilDB->fetchAssoc($set)) {
105 $usages[$rec["pc_type"] . ":" . $rec["pc_id"]] = array(
106 "type" => $rec["pc_type"],
107 "id" => $rec["pc_id"]
108 );
109 }
110
111 return $usages;
112 }
113}
An exception for terminatinating execution or to throw for unit testing.
Saves usages of page content elements in pages.
static saveUsage($a_pc_type, $a_pc_id, $a_usage_type, $a_usage_id, $a_usage_hist_nr=0, $a_lang="-")
Save usages.
static deleteAllUsages($a_pc_type, $a_usage_type, $a_usage_id, $a_usage_hist_nr=0, $a_lang="-")
Delete all usages.
static getUsagesOfPage($a_usage_id, $a_usage_type, $a_hist_nr=0, $a_all_hist_nrs=false, $a_lang="-")
Get page content usages for page.
static getUsages($a_pc_type, $a_pc_id, $a_incl_hist=true)
Get usages.
global $DIC
Definition: saml.php:7
global $ilDB