# Plugins

## Eigene Plugins erstellen

Plugins können im Verzeichnis `/share/plugins/[plugin_type]/` eingebunden werden.&#x20;

Aktuell werden die folgende `[plugin_type]`unterstützt:

* auth&#x20;
* repository&#x20;
* webservice

### Aufbau eines Plugins

```
Ordnerstruktur:
/pluginname/plugin.php 
           /(config.php)
           /(processors/)
           /(request/)
           
```

Die Datei plugin.php erweitert die entsprechende \[plugin\_type]\_plugin\_base Klasse. Hier ein Beispiel für ein Repository-Plugin.

```
class repository_plugin_meinPlugin extends repository_plugin_base {

}        
```



## Reporitory Plugin

Exemplarischer Aufbau eines Repository Plugins:

```php
class repository_plugin_meinPlugin extends repository_plugin_base {


     /**
     * get files from (external) repository and add to $files array.
     * @param string $dependency e.g. 'enabling_objective', 'terminal_objectiveÄ'
     * @param int $id of reference based on dependency
     * @param array $files 
     * @return array
     */
    public function getFiles ($dependency, $id, $files){ 
        /* get files from repo
         * $files = array_merge(repo_files, $files);
         */
        return $files;
    }
}  
```



