Skip to content

Conversation

@tgloeggl
Copy link
Member

SImpler Mechanismus, um Courseware-Blöcke durch Plugins hinzufügen zu können.
Es gibt ein paar Einschränkungen:

  • Blöcke dürfen keine less-Stylesheets verwenden (nur reines CSS) oder das Plugin lädt die less-Datei selbst
  • Die JS-Dateien eines solchen Plugin-Blocks müssen angepasst werden, da webpack nicht darüber läuft. Um auf die Module wie AuthorView, StudenView, block_types.add(...) etc. zuzugreifen, gibt es das globale Objekt "courseware", welches diese Module enthält.

Um einen Block zu registrieren, schreibt man sich für die entsprechende Notification ein:

NotificationCenter::addObserver('MyPluginClass', 'addBlocks', 'CoursewareRegisterBlocks');

In der Methode addBlocks steht dann folgendes:

public static function addBlocks($course_id)
{
    Courseware::addBlock('MyPluginClass', 'blocks/MyBlock');
}

Beispielhafte Verwendung siehe:
https://github.com/elan-ev/studip-opencast-plugin/tree/opencast-courseware-block/blocks/OpenCastBlock

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants