Feature Wiki

Information about planned and released features

Tabs

Plugin access for GlobalCache Service

1 Initial Problem

The ILIAS GlobalCache is only usable by ILIAS core components but should also be usable by plugins.
There are several ILIAS plugins that depends on the ability to cache information which improves the performance significantly. However, the cache access is only possible with a somewhat ugly hack. Furthermore, the cache hack must be implemented by every plugin which leads to a large amount of code duplications.

1.1 List of cache enabled plugins

  • LiveVoting
  • Opencast
  • CtrlMainMenu

2 Conceptual Summary

To solve these problems, the studer + raimann ag proposes a new plugin option which allows the plugins to register itself for the GlobalCache usage.

2.1 Required Changes

2.1.1 plugin.php

The plugin.php file receives a new field called “$uses_cache”. This field is used by the plugin to request the GlobalCache access. If the field is not present or false, no access is granted to the plugin.

2.1.2 GlobalCache

The GlobalCache needs to check the new plugin field called “uses_cache”. If the plugin requests the access and the user accepts the request over the plugin configuration interface, then the plugin is eligible to access the cache until the user denies the access to it.

3 User Interface Modifications

3.1 List of Affected Views

3.1.1 ilObjComponentSettingsGUI

Activate Cache

Example of a plugin cache activation.
Example of a plugin cache activation.

Deactivate Cache

Example of a plugin cache deactivation.

Plugin without cache

Plugin without cache implementation.

3.2 User Interface Details

A column is added to the table of the ilObjComponentSettingsGUI named "Cache Active" each plugin has a new cache status which can be No, Yes or Empty.
An empty field indicates that the plugin never requestet the right to use the plugin cache.
No indicates that the plugin requested the access but can't use it yet.
The status Yes indicates that the plugin requested the plugin cache access and the user has granted the access to the plugin.

There are two more actions for plugins that request the plugin cache access. The first action "Activate Cache" grants the plugin the cache access right and second "Deactivate Cache" which restricts the plugin from using the plugin cache.

3.3 New User Interface Concepts

There are no new UI concepts introduced with this feature request.

4 Technical Information

The technical information are already provided in the section 2.1 of this document.

5 Contact

6 Funding

If you are interest in funding this feature, please add your name and institution to this list.

7 Discussion

Kunkel, Matthias [mkunkel], March 31, 2017: I support the request. But I see a usability problem in the table of plugins that should be changed:

  • The screenshot now shows one column called "Cache Active" and another one called "Active" right of it. IMHO this leads to misunderstandings.
  • I suggest to change the column title "Cache Active" to "Cache" and to use the label "Active" for the column cells instead of "yes".
  • Additonally, I highly recommend to use the green and red glyphs to show active or inactive plugins in the column "Active".

Amstutz, Timon [amstutz], March 31, 2017: I agree with Matthias. To further distinct "(De)-Activate Plugin" and "(De)-Activate Cache" we could use "Dis/Enable Cache" in the Action menu and Enabled/Disabled in the table.

JourFixe, ILIAS [jourfixe], April 10, 2017: We highly appreciate this suggestion and schedule it for 5.3. Fabian will add a service readme for global cache. The suggestions by Timon and Matthias will be taken into consideration for the UI of the plugin administration. The wording "enabled/disabled" shall be used for the cache (instead of activate/deactivate which is reserved for the plugin itself.

8 Implementation

{The maintainer has to give a description of the final implementation and add screenshots if possible.}

Test Cases

Test cases completed at {date} by {user}

  • This is just an interface change for developers of ILIAS-Plugins, this cannot be tested using Testcases

Approval

Approved at 28.08.2017 by Schmid, Fabian [fschmid].

Last edited: 15. Dec 2021, 09:09, Schmid, Fabian [fschmid]