Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Asyntai AI Chatbot for ILIAS

Adds the Asyntai chat assistant to every page of an ILIAS installation.

The plugin is a User Interface Hook plugin. It adds one small loader script to the page. The script waits for the page load event, then loads the widget from widget.asyntai.com. ILIAS is drawn first, so the page speed does not change.

  • Tested on ILIAS 11.3, ILIAS 10.10 and ILIAS 9.22. The full test set passes on all three.
  • Supports ILIAS 9, 10 and 11.
  • English and German administration texts.

What the administrator can set

Setting Effect
Asyntai widget ID The chat is on when this holds a valid ID. Empty means off. You can paste the whole snippet from the Asyntai dashboard; the plugin keeps only the ID.
Show only to visitors who are not logged in Members who are logged in never see the chat.
Script address (optional) For a different widget address. Empty means the standard address.

Install

  1. Copy the folder AsyntaiChat into the User Interface Hook slot.

    ILIAS 10 and 11:

    <ilias>/public/Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/AsyntaiChat
    

    ILIAS 9:

    <ilias>/Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/AsyntaiChat
    
  2. In the ILIAS root folder, read the new classes and build the artifacts:

    composer du
    

    ILIAS needs this step. Without it the plugin class is not found. The command also builds the ILIAS artifacts, because ILIAS runs its setup build after every autoload dump.

  3. Update the installation.

    ILIAS 10 and 11:

    php cli/setup.php update
    

    ILIAS 9:

    php setup/setup.php update
    
  4. Open Administration > Extending ILIAS > Plugins, find AsyntaiChat, then click Install and Activate.

  5. Click Configure and paste your Asyntai widget ID. You find the ID at asyntai.com under Setup & Integration.

Files

AsyntaiChat/
  plugin.php                                  plugin id, version, ILIAS versions
  classes/
    class.ilAsyntaiChatPlugin.php             the plugin, settings, loader script
    class.ilAsyntaiChatConfigGUI.php          the administration form
    class.ilAsyntaiChatUIHookGUI.php          required by ILIAS, empty on purpose
    GlobalScreen/
      AsyntaiChatModificationProvider.php     adds the script to every page
  lang/
    ilias_en.lang                             English texts
    ilias_de.lang                             German texts

Notes for developers

Two ILIAS rules shape this code. Both were found by testing, and both break the site in a quiet way if you forget them.

  1. ILIAS keeps only one content modification. The one with the highest priority wins; the others are dropped. The ILIAS page content itself is such a modification. A second one from a plugin deletes the whole page, including the login form. The script is therefore added with globalScreen()->layout()->meta()->addOnloadCode(), which has no such limit.

  2. The ILIAS template engine deletes every {word} group, because that is how it writes its own placeholders. In JavaScript this silently removes blocks like {return} and turns a guard into its opposite. Every pair of braces in the loader script therefore holds at least one character that is not a letter, a digit, a dot, an underscore or a hyphen. ilAsyntaiChatPlugin::isTemplateSafe() checks this.

Licence

GPL-3.0-or-later, the same licence as ILIAS. See LICENSE.

Copyright (C) 2026 Asyntai.

Support

hello@asyntai.com

About

Asyntai AI Chatbot plugin for ILIAS. Answers student and visitor questions on every page, in 80+ languages, using your own content.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages