I am trying to get a plugin to work in Ilias (through this tutorial). Update and activation worked perfectly fine but when I try to use it in an existing course I get the following error message:
ERROR: Can't find target class ilcommonactiondispatchergui for node q7:uw (ilrepositorygui).
I can’t even enter the course where I added the Example Plugin anymore.
The folder structure at Customizing/global/plugins/Services/Repository/RepositoryObject/Example should be right. I also updated the version number to 5.0.999 in order to use it with the latest Ilias version.
Any ideas are highly appreciated.
Short answer: In your main GUI class (probably named something like ilObjExampleGUI) you need to add ilCommonActionDispatcherGUI as class that is called by your GUI class. This would look something like this:
* @ilCtrl_Calls ilObjExampleGUI: OtherClassesCalledByilObjExampleGUI, ilCommonActionDispatcherGUI
Then you need to increase your plugin version and then update your plugin in the plugin section in the administration of ILIAS, so that your change is read and stored into the database.
Explanation: Your GUI class seems to try to call ilCommonActionDispatcherGUI using ilCtrl. ilCtrl however can not find the according mapping from your gui class (parent) to the child class (ilCommonActionDispatcherGUI) in the database table ctrl_calls. This table is updated each time a change of the annotations @ilCtrl_isCalledBy or @ilCtrl_Calls is detected when updating a plugin. For more informations about the Control Flow in ILIAS you can consult the respective page in the development guide on ilias.de.