ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
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 27 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 43 of file class.ilPluginsOverviewTable.php.

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

50  {
51  $this->parent_gui = $parent_gui;
52  $this->ctrl = $ctrl;
53  $this->ui = $ui;
54  $this->renderer = $renderer;
55  $this->lng = $lng;
56  $this->filter = $filter;
57  }
ilObjComponentSettingsGUI $parent_gui
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
+ Here is the call graph for this function:

Member Function Documentation

◆ boolToString()

ilPluginsOverviewTable::boolToString ( bool  $value)
protected

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

References ILIAS\Repository\lng().

Referenced by getContent().

122  : string
123  {
124  if ($value) {
125  return $this->lng->txt("yes");
126  }
127  return $this->lng->txt("no");
128  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clearParameter()

ilPluginsOverviewTable::clearParameter ( )
protected

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

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

Referenced by getActions().

238  : void
239  {
240  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_CTYPE, null);
241  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_CNAME, null);
242  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_SLOT_ID, null);
243  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_PLUGIN_NAME, null);
244  }
+ 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 134 of file class.ilPluginsOverviewTable.php.

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

Referenced by getTable().

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

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, ILIAS\Repository\ctrl(), ilPluginInfo\getConfigGUIClassName(), getDropdownButton(), hasLang(), ilPluginInfo\isActivationPossible(), ilPluginInfo\isActive(), ilPluginInfo\isInstalled(), ilPluginInfo\isUpdateRequired(), ILIAS\Repository\lng(), setParameter(), and ILIAS\Repository\ui().

Referenced by getTable().

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

◆ getContent()

ilPluginsOverviewTable::getContent ( ilPluginInfo  $plugin_info)
protected

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

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().

Referenced by getTable().

101  : array
102  {
103  return [
104  $this->lng->txt("cmps_is_installed") => $this->boolToString($plugin_info->isInstalled()),
105  $this->lng->txt("cmps_is_active") => $this->boolToString($plugin_info->isActive()),
106  $this->lng->txt("cmps_needs_update") => $this->boolToString($plugin_info->isUpdateRequired()),
107  $this->lng->txt("cmps_id") => $plugin_info->getId(),
108  $this->lng->txt("cmps_plugin_slot") => $plugin_info->getPluginSlot()->getName(),
109  $this->lng->txt("cmps_current_version") => (string) $plugin_info->getCurrentVersion(),
110  $this->lng->txt("cmps_available_version") => (string) $plugin_info->getAvailableVersion(),
111  $this->lng->txt("cmps_current_db_version") => (string) $plugin_info->getCurrentDBVersion(),
112  $this->lng->txt("cmps_ilias_min_version") => (string) $plugin_info->getMinimumILIASVersion(),
113  $this->lng->txt("cmps_ilias_max_version") => (string) $plugin_info->getMaximumILIASVersion(),
114  $this->lng->txt("cmps_responsible") => $plugin_info->getResponsible(),
115  $this->lng->txt("cmps_responsible_mail") => $plugin_info->getResponsibleMail(),
116  $this->lng->txt("cmps_supports_learning_progress") => $this->boolToString($plugin_info->supportsLearningProgress()),
117  $this->lng->txt("cmps_supports_export") => $this->boolToString($plugin_info->supportsExport()),
118  $this->lng->txt("cmps_supports_cli_setup") => $this->boolToString($plugin_info->supportsCLISetup())
119  ];
120  }
isActive()
Is this plugin active right now?
isInstalled()
"Installed" tells if the plugin has some installed version.
isUpdateRequired()
"Update required" tells if the plugin needs an update.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getData()

ilPluginsOverviewTable::getData ( )
protected

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

References $data.

Referenced by getTable().

179  : array
180  {
181  return $this->data;
182  }
+ Here is the caller graph for this function:

◆ getDropdownButton()

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

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

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

Referenced by getActions().

246  : Shy
247  {
248  return $this->ui->button()->shy(
249  $this->lng->txt($caption),
250  $this->ctrl->getLinkTarget($this->parent_gui, $command)
251  );
252  }
+ 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 78 of file class.ilPluginsOverviewTable.php.

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

Referenced by getTable().

78  : array
79  {
80  $fields = [];
81 
82  if ($plugin_info->isInstalled()) {
83  $fields[] = $this->lng->txt("installed");
84  } else {
85  $fields[] = $this->lng->txt("not_installed");
86  }
87 
88  if ($plugin_info->isActive()) {
89  $fields[] = $this->lng->txt("cmps_active");
90  } else {
91  $fields[] = $this->lng->txt("inactive");
92  }
93 
94  if ($plugin_info->isUpdateRequired()) {
95  $fields[] = $this->lng->txt("cmps_needs_update");
96  }
97 
98  return $fields;
99  }
isActive()
Is this plugin active right now?
isInstalled()
"Installed" tells if the plugin has some installed version.
isUpdateRequired()
"Update required" tells if the plugin needs an update.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTable()

ilPluginsOverviewTable::getTable ( )

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

References filterData(), getActions(), getContent(), getData(), getImportantFields(), ilPluginInfo\getName(), ilPluginInfo\getPluginSlot(), ILIAS\Repository\ui(), ILIAS\GlobalScreen\Scope\Footer\Factory\withAction(), and withData().

59  : string
60  {
61  return $this->renderer->render($this->ui->table()->presentation(
62  'Plugins',
63  [],
64  function ($row, ilPluginInfo $record, $ui_factory) {
65  return $row
66  ->withHeadline($record->getName())
67  ->withSubHeadline($record->getPluginSlot()->getName())
68  ->withImportantFields($this->getImportantFields($record))
69  ->withContent(
70  $ui_factory->listing()->descriptive($this->getContent($record))
71  )
72  ->withAction($this->getActions($record))
73  ;
74  }
75  )->withData($this->filterData($this->getData())));
76  }
getImportantFields(ilPluginInfo $plugin_info)
withAction(URI|Signal|string $action)
getActions(ilPluginInfo $plugin_info)
getContent(ilPluginInfo $plugin_info)
Simple value class for information about a plugin.
+ Here is the call graph for this function:

◆ hasLang()

ilPluginsOverviewTable::hasLang ( ilPluginInfo  $plugin_info)
protected

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

Referenced by getActions().

254  : bool
255  {
256  $language_handler = new ilPluginLanguage($plugin_info);
257  return $language_handler->hasAvailableLangFiles();
258  }
+ Here is the caller graph for this function:

◆ setParameter()

ilPluginsOverviewTable::setParameter ( ilPluginInfo  $plugin)
protected

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

References ILIAS\Repository\ctrl(), ilPluginInfo\getComponent(), ilPluginInfo\getId(), ilPluginInfo\getName(), ilPluginInfo\getPluginSlot(), ilObjComponentSettingsGUI\P_CNAME, ilObjComponentSettingsGUI\P_CTYPE, ilObjComponentSettingsGUI\P_PLUGIN_ID, ilObjComponentSettingsGUI\P_PLUGIN_NAME, and ilObjComponentSettingsGUI\P_SLOT_ID.

Referenced by getActions().

229  : void
230  {
231  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_PLUGIN_ID, $plugin->getId());
232  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_CTYPE, $plugin->getComponent()->getType());
233  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_CNAME, $plugin->getComponent()->getName());
234  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_SLOT_ID, $plugin->getPluginSlot()->getId());
235  $this->ctrl->setParameter($this->parent_gui, ilObjComponentSettingsGUI::P_PLUGIN_NAME, $plugin->getName());
236  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ withData()

ilPluginsOverviewTable::withData ( array  $data)

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

References $data.

Referenced by getTable(), and ilObjComponentSettingsGUI\listPlugins().

173  {
174  $clone = clone $this;
175  $clone->data = $data;
176  return $clone;
177  }
+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

ilCtrl ilPluginsOverviewTable::$ctrl
protected

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

Referenced by __construct().

◆ $data

array ilPluginsOverviewTable::$data = []
protected

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

Referenced by getData(), and withData().

◆ $filter

array ilPluginsOverviewTable::$filter
protected

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

Referenced by __construct().

◆ $lng

ilLanguage ilPluginsOverviewTable::$lng
protected

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

Referenced by __construct().

◆ $parent_gui

ilObjComponentSettingsGUI ilPluginsOverviewTable::$parent_gui
protected

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

Referenced by __construct().

◆ $renderer

Renderer ilPluginsOverviewTable::$renderer
protected

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

Referenced by __construct().

◆ $ui

Factory ilPluginsOverviewTable::$ui
protected

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

Referenced by __construct().

◆ F_COMPONENT_NAME

const ilPluginsOverviewTable::F_COMPONENT_NAME = "component_name"

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

◆ F_PLUGIN_ACTIVE

const ilPluginsOverviewTable::F_PLUGIN_ACTIVE = "plugin_active"

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

◆ F_PLUGIN_ID

const ilPluginsOverviewTable::F_PLUGIN_ID = "plugin_id"

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

◆ F_PLUGIN_NAME

const ilPluginsOverviewTable::F_PLUGIN_NAME = "plugin_name"

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

◆ F_SLOT_NAME

const ilPluginsOverviewTable::F_SLOT_NAME = "slot_name"

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


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