19 declare(strict_types=1);
33 'ms-windows' =>
'MS-Windows',
36 'multi-os' =>
'Multi-OS',
42 'netscape communicator' =>
'NetscapeCommunicator',
43 'ms-internet explorer' =>
'MS-InternetExplorer',
65 $this->or_composite_id = $a_or_composite_id;
82 $this->operating_system_name = $a_val;
97 $this->operating_system_minimum_version = $a_val;
107 $this->operating_system_maximum_version = $a_val;
119 case 'NetscapeCommunicator':
120 case 'MS-InternetExplorer':
124 $this->browser_name = $a_val;
139 $this->browser_minimum_version = $a_val;
149 $this->browser_maximum_version = $a_val;
160 $fields[
'meta_requirement_id'] = array(
'integer', $next_id = $this->db->nextId(
'il_meta_requirement'));
162 if ($this->db->insert(
'il_meta_requirement', $fields)) {
178 return (
bool) $this->db->update(
179 'il_meta_requirement',
181 array(
"meta_requirement_id" => array(
'integer', $this->
getMetaId()))
185 public function delete():
bool 188 $query =
"DELETE FROM il_meta_requirement " .
189 "WHERE meta_requirement_id = " . $this->db->quote($this->
getMetaId(),
'integer');
190 $res = $this->db->manipulate($query);
204 'rbac_id' => array(
'integer', $this->
getRBACId()),
205 'obj_id' => array(
'integer', $this->
getObjId()),
206 'obj_type' => array(
'text', $this->
getObjType()),
208 'parent_id' => array(
'integer', $this->
getParentId()),
222 $query =
"SELECT * FROM il_meta_requirement " .
223 "WHERE meta_requirement_id = " . $this->db->quote($this->
getMetaId(),
'integer');
225 $res = $this->db->query($query);
228 $this->
setObjId((
int) $row->obj_id);
283 string $a_parent_type,
284 int $a_or_composite_id = 0
288 $ilDB = $DIC->database();
290 $query =
"SELECT meta_requirement_id FROM il_meta_requirement " .
291 "WHERE rbac_id = " .
$ilDB->quote($a_rbac_id,
'integer') .
" " .
292 "AND obj_id = " .
$ilDB->quote($a_obj_id,
'integer') .
" " .
293 "AND parent_id = " .
$ilDB->quote($a_parent_id,
'integer') .
" " .
294 "AND parent_type = " .
$ilDB->quote($a_parent_type,
'text') .
" " .
295 "AND or_composite_id = " .
$ilDB->quote($a_or_composite_id,
'integer');
300 $ids[] = (
int) $row->meta_requirement_id;
310 $os_name = (string) array_search(
314 $browser_name = (string) array_search(
316 self::BROWSER_TRANSLATION
346 if ($name ===
'' && $min_version ===
'' && $max_version ===
'') {
352 'il_meta_or_composite',
354 'meta_or_composite_id' => [
'integer', $next_id = $this->db->nextId(
'il_meta_or_composite')],
355 'rbac_id' => [
'integer', $this->
getRBACId()],
356 'obj_id' => [
'integer', $this->
getObjId()],
358 'parent_type' => [
'text',
'meta_requirement'],
359 'parent_id' => [
'integer', $this->
getMetaId()],
360 'type' => [
'text', $type],
361 'name' => [
'text', $name],
362 'min_version' => [
'text', $min_version],
363 'max_version' => [
'text', $max_version]
370 'il_meta_or_composite',
372 'type' => [
'text', $type],
373 'name' => [
'text', $name],
374 'min_version' => [
'text', $min_version],
375 'max_version' => [
'text', $max_version]
377 [
'meta_or_composite_id' => [
'integer', $id]]
387 $query =
"DELETE FROM il_meta_or_composite WHERE parent_type = 'meta_requirement' 388 AND parent_id = " . $this->db->quote($this->
getMetaId(),
'integer');
389 $res = $this->db->manipulate($query);
397 $query =
"SELECT * FROM il_meta_or_composite WHERE meta_or_composite_id = " .
398 $this->db->quote($this->
getOrIdOS(),
'integer') .
399 " OR meta_or_composite_id = " . $this->db->quote($this->
getOrIdBrowser(),
'integer');
401 $res = $this->db->query($query);
402 while ($row = $this->db->fetchAssoc(
$res)) {
403 switch ($row[
'type']) {
404 case 'operating system':
405 if (key_exists($row[
'name'] ??
'', self::OS_TRANSLATION)) {
406 $row[
'name'] = self::OS_TRANSLATION[$row[
'name'] ??
''];
414 if (key_exists($row[
'name'] ??
'', self::BROWSER_TRANSLATION)) {
415 $row[
'name'] = self::BROWSER_TRANSLATION[$row[
'name'] ??
''];
430 $query =
"SELECT meta_or_composite_id, type FROM il_meta_or_composite WHERE 431 parent_id = " . $this->db->quote($parent_id,
'integer') .
432 " ORDER BY meta_or_composite_id";
434 $res = $this->db->query($query);
437 while ($row = $this->db->fetchAssoc(
$res)) {
438 if (!$browser_id && $row[
'type'] ===
'browser') {
439 $browser_id = (
int) $row[
'meta_or_composite_id'];
441 if (!$os_id && $row[
'type'] ===
'operating system') {
442 $os_id = (
int) $row[
'meta_or_composite_id'];
444 if ($browser_id && $os_id) {
449 $this->or_id_browser = $browser_id;
450 $this->or_id_os = $os_id;
458 return $this->or_id_os ?? 0;
466 return $this->or_id_browser ?? 0;
472 public function setMetaId(
int $a_meta_id,
bool $a_read_data =
true): void
475 parent::setMetaId($a_meta_id, $a_read_data);
int $or_id_browser
Compatibility fix for legacy MD classes for new db tables.
setOperatingSystemMaximumVersion(string $a_val)
setOrCompositeId(int $a_or_composite_id)
toXML(ilXmlWriter $writer)
getOperatingSystemMinimumVersion()
const OS_TRANSLATION
Compatibility fix for legacy MD classes for new db tables.
createOrUpdateOr(int $id, string $type, string $name, string $min_version, string $max_version)
Compatibility fix for legacy MD classes for new db tables.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const const int $or_composite_id
readFirstOrs()
Compatibility fix for legacy MD classes for new db tables.
string $operating_system_maximum_version
setMetaId(int $a_meta_id, bool $a_read_data=true)
Compatibility fix for legacy MD classes for new db tables.
getBrowserMaximumVersion()
xmlEndTag(string $tag)
Writes an endtag.
setBrowserMinimumVersion(string $a_val)
setOperatingSystemMinimumVersion(string $a_val)
string $operating_system_minimum_version
static _getIds(int $a_rbac_id, int $a_obj_id, int $a_parent_id, string $a_parent_type, int $a_or_composite_id=0)
const const BROWSER_TRANSLATION
setBrowserName(string $a_val)
setBrowserMaximumVersion(string $a_val)
string $operating_system_name
string $browser_minimum_version
getOperatingSystemMaximumVersion()
setOperatingSystemName(string $a_val)
readOrIds(int $parent_id)
Compatibility fix for legacy MD classes for new db tables.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
xmlStartTag(string $tag, ?array $attrs=null, bool $empty=false, bool $encode=true, bool $escape=true)
Writes a starttag.
getOrIdOS()
Compatibility fix for legacy MD classes for new db tables.
setParentType(string $a_parent_type)
getBrowserMinimumVersion()
deleteAllOrs()
Compatibility fix for legacy MD classes for new db tables.
xmlElement(string $tag, $attrs=null, $data=null, $encode=true, $escape=true)
Writes a basic element (no children, just textual content)
string $browser_maximum_version
setObjType(string $a_type)
getOrIdBrowser()
Compatibility fix for legacy MD classes for new db tables.
createOrUpdateOrs()
Compatibility fix for legacy MD classes for new db tables.