ILIAS  release_8 Revision v8.24
class.ilCOPagePCDef.php
Go to the documentation of this file.
1<?php
2
20
27{
28 public static array $pc_def = [];
29 public static array $pc_def_by_name = [];
30 public static array $pc_gui_classes = array();
31 public static array $pc_gui_classes_lc = array();
32 public static array $pc_def_by_gui_class_cl = array();
33
34 public static function init(): void
35 {
36 global $DIC;
37
38 $db = $DIC->database();
39
40 if (self::$pc_def == null) {
41 $set = $db->query("SELECT * FROM copg_pc_def ORDER BY order_nr");
42 while ($rec = $db->fetchAssoc($set)) {
43 $rec["pc_class"] = "ilPC" . $rec["name"];
44 $rec["pc_gui_class"] = "ilPC" . $rec["name"] . "GUI";
45 self::$pc_gui_classes[] = $rec["pc_gui_class"];
46 self::$pc_gui_classes_lc[] = strtolower($rec["pc_gui_class"]);
47 self::$pc_def[$rec["pc_type"]] = $rec;
48 self::$pc_def_by_name[$rec["name"]] = $rec;
49 self::$pc_def_by_gui_class_cl[strtolower($rec["pc_gui_class"])] = $rec;
50 }
51 }
52 }
53
54 public static function getPCDefinitions(): array
55 {
56 self::init();
57 return self::$pc_def;
58 }
59
63 public static function getPCDefinitionByType(string $a_pc_type): ?array
64 {
65 self::init();
66 return (self::$pc_def[$a_pc_type] ?? null);
67 }
68
72 public static function getPCDefinitionByName(
73 string $a_pc_name
74 ): array {
75 self::init();
76 return self::$pc_def_by_name[$a_pc_name];
77 }
78
82 public static function getPCDefinitionByGUIClassName(
83 string $a_gui_class_name
84 ): array {
85 self::init();
86 $a_gui_class_name = strtolower($a_gui_class_name);
87 return self::$pc_def_by_gui_class_cl[$a_gui_class_name];
88 }
89
90 public static function isPCGUIClassName(
91 string $a_class_name,
92 bool $a_lower_case = false
93 ): bool {
94 if ($a_lower_case) {
95 return in_array($a_class_name, self::$pc_gui_classes_lc);
96 } else {
97 return in_array($a_class_name, self::$pc_gui_classes);
98 }
99 }
100
104 public static function getPCEditorInstanceByName(
105 string $a_name
107 $pc_def = self::getPCDefinitionByName($a_name);
108 $pc_class = "ilPC" . $pc_def["name"] . "EditorGUI";
109 if (class_exists($pc_class)) {
110 return new $pc_class();
111 }
112 return null;
113 }
114}
COPage PC elements definition handler.
static array $pc_def_by_gui_class_cl
static getPCDefinitionByName(string $a_pc_name)
Get PC definition by name.
static array $pc_def_by_name
static getPCDefinitionByType(string $a_pc_type)
Get PC definition by type.
static array $pc_gui_classes
static array $pc_gui_classes_lc
static array $pc_def
static isPCGUIClassName(string $a_class_name, bool $a_lower_case=false)
static getPCDefinitionByGUIClassName(string $a_gui_class_name)
Get PC definition by name.
static getPCEditorInstanceByName(string $a_name)
Get instance.
if(!file_exists(getcwd() . '/ilias.ini.php'))
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: confirmReg.php:20
global $DIC
Definition: feed.php:28