ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilPluginsOverviewTable Class Reference
+ Collaboration diagram for ilPluginsOverviewTable:

Public Member Functions

 __construct (ilObjComponentSettingsGUI $parent_gui, ilCtrl $ctrl, Factory $ui, Renderer $renderer, ilLanguage $lng, array $filter)
 
 getTable ()
 
 withData (array $data)
 

Data Fields

const F_PLUGIN_NAME = "plugin_name"
 
const F_PLUGIN_ID = "plugin_id"
 
const F_SLOT_NAME = "slot_name"
 
const F_COMPONENT_NAME = "component_name"
 
const F_PLUGIN_ACTIVE = "plugin_active"
 

Protected Member Functions

 getImportantFields (ilPluginInfo $plugin_info)
 
 getContent (ilPluginInfo $plugin_info)
 
 boolToString (bool $value)
 
 filterData (array $data)
 
 getData ()
 
 getActions (ilPluginInfo $plugin_info)
 
 setParameter (ilPluginInfo $plugin)
 
 clearParameter ()
 
 getDropdownButton (string $caption, string $command)
 
 hasLang (ilPluginInfo $plugin_info)
 

Protected Attributes

ilObjComponentSettingsGUI $parent_gui
 
ilCtrl $ctrl
 
Factory $ui
 
Renderer $renderer
 
ilLanguage $lng
 
array $filter
 
array $data = []
 

Detailed Description

Definition at line 26 of file class.ilPluginsOverviewTable.php.

Constructor & Destructor Documentation

◆ __construct()

ilPluginsOverviewTable::__construct ( ilObjComponentSettingsGUI  $parent_gui,
ilCtrl  $ctrl,
Factory  $ui,
Renderer  $renderer,
ilLanguage  $lng,
array  $filter 
)

Definition at line 42 of file class.ilPluginsOverviewTable.php.

49 {
50 $this->parent_gui = $parent_gui;
51 $this->ctrl = $ctrl;
52 $this->ui = $ui;
53 $this->renderer = $renderer;
54 $this->lng = $lng;
55 $this->filter = $filter;
56 }
renderer()
ilObjComponentSettingsGUI $parent_gui
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)

References $ctrl, $filter, $lng, $parent_gui, $renderer, $ui, ILIAS\Repository\ctrl(), ILIAS\Repository\filter(), ILIAS\Repository\lng(), renderer(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

Member Function Documentation

◆ boolToString()

ilPluginsOverviewTable::boolToString ( bool  $value)
protected

Definition at line 121 of file class.ilPluginsOverviewTable.php.

121 : string
122 {
123 if ($value) {
124 return $this->lng->txt("yes");
125 }
126 return $this->lng->txt("no");
127 }

References ILIAS\Repository\lng().

Referenced by getContent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clearParameter()

ilPluginsOverviewTable::clearParameter ( )
protected

Definition at line 237 of file class.ilPluginsOverviewTable.php.

237 : void
238 {
239 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_CTYPE, null);
240 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_CNAME, null);
241 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_SLOT_ID, null);
242 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_PLUGIN_NAME, null);
243 }

References ILIAS\Repository\ctrl(), ilObjComponentSettingsGUI\P_CNAME, ilObjComponentSettingsGUI\P_CTYPE, ilObjComponentSettingsGUI\P_PLUGIN_NAME, and ilObjComponentSettingsGUI\P_SLOT_ID.

Referenced by getActions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ filterData()

ilPluginsOverviewTable::filterData ( array  $data)
protected
Parameters
ilPluginInfo[]$data
Returns
ilPluginInfo[]

Definition at line 133 of file class.ilPluginsOverviewTable.php.

133 : array
134 {
135 $active_filters = array_filter($this->filter, static function ($value): bool {
136 return !empty($value);
137 });
138 $plugins = array_filter($data, static function (ilPluginInfo $plugin_info) use ($active_filters): bool {
139 $matches_filter = true;
140 if (isset($active_filters[self::F_PLUGIN_NAME])) {
141 $matches_filter = strpos($plugin_info->getName(), $active_filters[self::F_PLUGIN_NAME]) !== false;
142 }
143 if (isset($active_filters[self::F_PLUGIN_ID])) {
144 $matches_filter = strpos($plugin_info->getId(), $active_filters[self::F_PLUGIN_ID]) !== false;
145 }
146 if (isset($active_filters[self::F_PLUGIN_ACTIVE])) {
147 $v = (int) $active_filters[self::F_PLUGIN_ACTIVE] === 1;
148 $matches_filter = $plugin_info->isActive() === $v && $matches_filter;
149 }
150 if (isset($active_filters[self::F_SLOT_NAME])) {
151 $matches_filter = $matches_filter && in_array(
152 $plugin_info->getPluginSlot()->getName(),
153 $active_filters[self::F_SLOT_NAME],
154 true
155 );
156 }
157 if (isset($active_filters[self::F_COMPONENT_NAME])) {
158 $matches_filter = $matches_filter && in_array(
159 $plugin_info->getComponent()->getQualifiedName(),
160 $active_filters[self::F_COMPONENT_NAME],
161 true
162 );
163 }
164
165 return $matches_filter;
166 });
167
168 return $plugins;
169 }
Simple value class for information about a plugin.
isActive()
Is this plugin active right now?

References $data, ILIAS\Repository\filter(), ilPluginInfo\getComponent(), ilPluginInfo\getId(), ilPluginInfo\getName(), ilPluginInfo\getPluginSlot(), ILIAS\Repository\int(), and ilPluginInfo\isActive().

Referenced by getTable().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getActions()

ilPluginsOverviewTable::getActions ( ilPluginInfo  $plugin_info)
protected

Definition at line 183 of file class.ilPluginsOverviewTable.php.

183 : Dropdown
184 {
185 $this->setParameter($plugin_info);
186
187 $items = [];
188
189 if (!$plugin_info->isInstalled()) {
190 $items[] = $this->getDropdownButton("cmps_install", ilObjComponentSettingsGUI::CMD_INSTALL_PLUGIN);
191 $this->clearParameter();
192 return $this->ui->dropdown()->standard($items);
193 }
194
195 if (class_exists($plugin_info->getConfigGUIClassName())) {
196 $items[] = $this->ui->button()->shy(
197 $this->lng->txt("cmps_configure"),
198 $this->ctrl->getLinkTargetByClass(
199 $plugin_info->getConfigGUIClassName(),
201 )
202 );
203 }
204
205 if ($this->hasLang($plugin_info)) {
207 }
208
209 if ($plugin_info->isActive()) {
210 $items[] = $this->getDropdownButton("cmps_deactivate", ilObjComponentSettingsGUI::CMD_DEACTIVATE_PLUGIN);
211 }
212
213 if ($plugin_info->isActivationPossible() && !$plugin_info->isActive()) {
214 $items[] = $this->getDropdownButton("cmps_activate", ilObjComponentSettingsGUI::CMD_ACTIVATE_PLUGIN);
215 }
216
217 if ($plugin_info->isUpdateRequired()) {
218 $items[] = $this->getDropdownButton("cmps_update", ilObjComponentSettingsGUI::CMD_UPDATE_PLUGIN);
219 }
220
222
223 $this->clearParameter();
224
225 return $this->ui->dropdown()->standard($items);
226 }
isInstalled()
"Installed" tells if the plugin has some installed version.
isActivationPossible()
Can this plugin be activated right now.
isUpdateRequired()
"Update required" tells if the plugin needs an update.
hasLang(ilPluginInfo $plugin_info)
getDropdownButton(string $caption, string $command)
This describes commonalities between all types of Dropdowns.
Definition: Dropdown.php:35

References clearParameter(), ilObjComponentSettingsGUI\CMD_ACTIVATE_PLUGIN, ilObjComponentSettingsGUI\CMD_CONFIGURE, ilObjComponentSettingsGUI\CMD_CONFIRM_UNINSTALL_PLUGIN, ilObjComponentSettingsGUI\CMD_DEACTIVATE_PLUGIN, ilObjComponentSettingsGUI\CMD_INSTALL_PLUGIN, ilObjComponentSettingsGUI\CMD_REFRESH_LANGUAGES, ilObjComponentSettingsGUI\CMD_UPDATE_PLUGIN, ilPluginInfo\getConfigGUIClassName(), getDropdownButton(), hasLang(), ilPluginInfo\isActivationPossible(), ilPluginInfo\isActive(), ilPluginInfo\isInstalled(), ilPluginInfo\isUpdateRequired(), ILIAS\Repository\lng(), setParameter(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

◆ getContent()

ilPluginsOverviewTable::getContent ( ilPluginInfo  $plugin_info)
protected

Definition at line 100 of file class.ilPluginsOverviewTable.php.

100 : array
101 {
102 return [
103 $this->lng->txt("cmps_is_installed") => $this->boolToString($plugin_info->isInstalled()),
104 $this->lng->txt("cmps_is_active") => $this->boolToString($plugin_info->isActive()),
105 $this->lng->txt("cmps_needs_update") => $this->boolToString($plugin_info->isUpdateRequired()),
106 $this->lng->txt("cmps_id") => $plugin_info->getId(),
107 $this->lng->txt("cmps_plugin_slot") => $plugin_info->getPluginSlot()->getName(),
108 $this->lng->txt("cmps_current_version") => (string) $plugin_info->getCurrentVersion(),
109 $this->lng->txt("cmps_available_version") => (string) $plugin_info->getAvailableVersion(),
110 $this->lng->txt("cmps_current_db_version") => (string) $plugin_info->getCurrentDBVersion(),
111 $this->lng->txt("cmps_ilias_min_version") => (string) $plugin_info->getMinimumILIASVersion(),
112 $this->lng->txt("cmps_ilias_max_version") => (string) $plugin_info->getMaximumILIASVersion(),
113 $this->lng->txt("cmps_responsible") => $plugin_info->getResponsible(),
114 $this->lng->txt("cmps_responsible_mail") => $plugin_info->getResponsibleMail(),
115 $this->lng->txt("cmps_supports_learning_progress") => $this->boolToString($plugin_info->supportsLearningProgress()),
116 $this->lng->txt("cmps_supports_export") => $this->boolToString($plugin_info->supportsExport()),
117 $this->lng->txt("cmps_supports_cli_setup") => $this->boolToString($plugin_info->supportsCLISetup())
118 ];
119 }

References boolToString(), ilPluginInfo\getAvailableVersion(), ilPluginInfo\getCurrentDBVersion(), ilPluginInfo\getCurrentVersion(), ilPluginInfo\getId(), ilPluginInfo\getMaximumILIASVersion(), ilPluginInfo\getMinimumILIASVersion(), ilPluginInfo\getPluginSlot(), ilPluginInfo\getResponsible(), ilPluginInfo\getResponsibleMail(), ilPluginInfo\isActive(), ilPluginInfo\isInstalled(), ilPluginInfo\isUpdateRequired(), ILIAS\Repository\lng(), ilPluginInfo\supportsCLISetup(), ilPluginInfo\supportsExport(), and ilPluginInfo\supportsLearningProgress().

+ Here is the call graph for this function:

◆ getData()

ilPluginsOverviewTable::getData ( )
protected

Definition at line 178 of file class.ilPluginsOverviewTable.php.

178 : array
179 {
180 return $this->data;
181 }

References $data.

Referenced by getTable().

+ Here is the caller graph for this function:

◆ getDropdownButton()

ilPluginsOverviewTable::getDropdownButton ( string  $caption,
string  $command 
)
protected

Definition at line 245 of file class.ilPluginsOverviewTable.php.

245 : Shy
246 {
247 return $this->ui->button()->shy(
248 $this->lng->txt($caption),
249 $this->ctrl->getLinkTarget($this->parent_gui, $command)
250 );
251 }

References ILIAS\Repository\lng(), and ILIAS\Repository\ui().

Referenced by getActions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getImportantFields()

ilPluginsOverviewTable::getImportantFields ( ilPluginInfo  $plugin_info)
protected

Definition at line 77 of file class.ilPluginsOverviewTable.php.

77 : array
78 {
79 $fields = [];
80
81 if ($plugin_info->isInstalled()) {
82 $fields[] = $this->lng->txt("installed");
83 } else {
84 $fields[] = $this->lng->txt("not_installed");
85 }
86
87 if ($plugin_info->isActive()) {
88 $fields[] = $this->lng->txt("cmps_active");
89 } else {
90 $fields[] = $this->lng->txt("inactive");
91 }
92
93 if ($plugin_info->isUpdateRequired()) {
94 $fields[] = $this->lng->txt("cmps_needs_update");
95 }
96
97 return $fields;
98 }

References ilPluginInfo\isActive(), ilPluginInfo\isInstalled(), ilPluginInfo\isUpdateRequired(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getTable()

ilPluginsOverviewTable::getTable ( )

Definition at line 58 of file class.ilPluginsOverviewTable.php.

58 : string
59 {
60 return $this->renderer->render($this->ui->table()->presentation(
61 'Plugins',
62 [],
63 function ($row, ilPluginInfo $record, $ui_factory) {
64 return $row
65 ->withHeadline($record->getName())
66 ->withSubHeadline($record->getPluginSlot()->getName())
67 ->withImportantFields($this->getImportantFields($record))
68 ->withContent(
69 $ui_factory->listing()->descriptive($this->getContent($record))
70 )
71 ->withAction($this->getActions($record))
72 ;
73 }
74 )->withData($this->filterData($this->getData())));
75 }

References filterData(), getData(), ilPluginInfo\getName(), ilPluginInfo\getPluginSlot(), renderer(), ILIAS\Repository\ui(), and withData().

+ Here is the call graph for this function:

◆ hasLang()

ilPluginsOverviewTable::hasLang ( ilPluginInfo  $plugin_info)
protected

Definition at line 253 of file class.ilPluginsOverviewTable.php.

253 : bool
254 {
255 $language_handler = new ilPluginLanguage($plugin_info);
256 return $language_handler->hasAvailableLangFiles();
257 }

Referenced by getActions().

+ Here is the caller graph for this function:

◆ setParameter()

ilPluginsOverviewTable::setParameter ( ilPluginInfo  $plugin)
protected

Definition at line 228 of file class.ilPluginsOverviewTable.php.

228 : void
229 {
230 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_PLUGIN_ID, $plugin->getId());
231 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_CTYPE, $plugin->getComponent()->getType());
232 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_CNAME, $plugin->getComponent()->getName());
233 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_SLOT_ID, $plugin->getPluginSlot()->getId());
234 $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_PLUGIN_NAME, $plugin->getName());
235 }

References XapiProxy\$plugin, ILIAS\Repository\ctrl(), ilObjComponentSettingsGUI\P_CNAME, ilObjComponentSettingsGUI\P_CTYPE, ilObjComponentSettingsGUI\P_PLUGIN_ID, ilObjComponentSettingsGUI\P_PLUGIN_NAME, and ilObjComponentSettingsGUI\P_SLOT_ID.

Referenced by getActions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ withData()

ilPluginsOverviewTable::withData ( array  $data)

Definition at line 171 of file class.ilPluginsOverviewTable.php.

172 {
173 $clone = clone $this;
174 $clone->data = $data;
175 return $clone;
176 }

References $data.

Referenced by getTable().

+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

ilCtrl ilPluginsOverviewTable::$ctrl
protected

Definition at line 35 of file class.ilPluginsOverviewTable.php.

Referenced by __construct().

◆ $data

array ilPluginsOverviewTable::$data = []
protected

Definition at line 40 of file class.ilPluginsOverviewTable.php.

Referenced by filterData(), getData(), and withData().

◆ $filter

array ilPluginsOverviewTable::$filter
protected

Definition at line 39 of file class.ilPluginsOverviewTable.php.

Referenced by __construct().

◆ $lng

ilLanguage ilPluginsOverviewTable::$lng
protected

Definition at line 38 of file class.ilPluginsOverviewTable.php.

Referenced by __construct().

◆ $parent_gui

ilObjComponentSettingsGUI ilPluginsOverviewTable::$parent_gui
protected

Definition at line 34 of file class.ilPluginsOverviewTable.php.

Referenced by __construct().

◆ $renderer

Renderer ilPluginsOverviewTable::$renderer
protected

Definition at line 37 of file class.ilPluginsOverviewTable.php.

Referenced by __construct().

◆ $ui

Factory ilPluginsOverviewTable::$ui
protected

Definition at line 36 of file class.ilPluginsOverviewTable.php.

Referenced by __construct().

◆ F_COMPONENT_NAME

const ilPluginsOverviewTable::F_COMPONENT_NAME = "component_name"

Definition at line 31 of file class.ilPluginsOverviewTable.php.

◆ F_PLUGIN_ACTIVE

const ilPluginsOverviewTable::F_PLUGIN_ACTIVE = "plugin_active"

Definition at line 32 of file class.ilPluginsOverviewTable.php.

◆ F_PLUGIN_ID

const ilPluginsOverviewTable::F_PLUGIN_ID = "plugin_id"

Definition at line 29 of file class.ilPluginsOverviewTable.php.

◆ F_PLUGIN_NAME

const ilPluginsOverviewTable::F_PLUGIN_NAME = "plugin_name"

Definition at line 28 of file class.ilPluginsOverviewTable.php.

◆ F_SLOT_NAME

const ilPluginsOverviewTable::F_SLOT_NAME = "slot_name"

Definition at line 30 of file class.ilPluginsOverviewTable.php.


The documentation for this class was generated from the following file: