ILIAS  trunk Revision v11.0_alpha-1715-g7fc467680fb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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.

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

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  }
ilObjComponentSettingsGUI $parent_gui
renderer()
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 121 of file class.ilPluginsOverviewTable.php.

References ILIAS\Repository\lng().

Referenced by getContent().

121  : string
122  {
123  if ($value) {
124  return $this->lng->txt("yes");
125  }
126  return $this->lng->txt("no");
127  }
+ 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.

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

Referenced by getActions().

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  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ 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.

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

Referenced by getTable().

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

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)) {
206  $items[] = $this->getDropdownButton("cmps_refresh", ilObjComponentSettingsGUI::CMD_REFRESH_LANGUAGES);
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  }
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 100 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().

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  }
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 178 of file class.ilPluginsOverviewTable.php.

References $data.

Referenced by getTable().

178  : array
179  {
180  return $this->data;
181  }
+ 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.

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

Referenced by getActions().

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

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

Referenced by getTable().

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  }
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 58 of file class.ilPluginsOverviewTable.php.

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

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  }
getImportantFields(ilPluginInfo $plugin_info)
getActions(ilPluginInfo $plugin_info)
renderer()
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 253 of file class.ilPluginsOverviewTable.php.

Referenced by getActions().

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

◆ setParameter()

ilPluginsOverviewTable::setParameter ( ilPluginInfo  $plugin)
protected

Definition at line 228 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().

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  }
+ 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.

References $data.

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

172  {
173  $clone = clone $this;
174  $clone->data = $data;
175  return $clone;
176  }
+ 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 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: