...
- Create a Model whose name matches the name of the Plugin. In this example, the Model is created at
app/Plugin/MyPlugin/Model/MyPlugin.php
. Define
$cmPluginType
to indicate the type of the Plugin, from the following options:$cmPluginType
Description
Available Since Instantiated? enroller
Enrollment Flow Plugin v0.9.4 No identifiervalidator
Identifier Validation Plugin v1.1.0 Optional ldapschema
LDAP Schema Plugin v1.1.0 Yes, via LDAP schema configuration normalizer
Normalization Plugin
v0.9.2 No orgidsource
Organizational Identity Sources Plugin v1.1.0 Yes provisioner
Provisioning Plugin
v0.8 Yes other
Any other type of Plugin
v0.8 No As of v1.1.0,
$cmPluginType
may also be an array.
...
Whether or not a Plugin menu is rendered is determined by the default permission as listed below.
Menu Location Key | Menu Location* | Default Permission | CO ID Inserted? | CO Person ID Inserted? | Available Since |
---|---|---|---|---|---|
cmp | Platform Menu | CMP Administrator |
|
| v0.8 |
cos | Collaborations Menu | Member of Any CO | v0.8 | ||
coconfig | CO Configuration Menu | CO Administrator |
| v0.8 | |
copeople | CO People Menu | Member of CO |
| v0.8 | |
cogroups* | CO Groups Menu | Member of CO | v1.0.0 | ||
coperson | My Identities Menu | Member of CO |
|
...
v0.8 | |||||
coservices | CO Services Menu | Member of CO | v1.1 |
...
.0 |
An example:
Code Block |
---|
/** * Expose menu items. * * @ since COmanage Registry v0.9.2 * @ return Array with menu location type as key and array of labels, controllers, actions as values. */ public function cmPluginMenus() { return array( "coperson" => array(_txt('pl.dirviewer.viewmenu') => array('controller' => "dir_viewers", 'action' => "view")) ); } |
...