Scrutinizer Auto-Fixer 7a56f3fbb3 Scrutinizer Auto-Fixes | 7 years ago | |
---|---|---|
.. | ||
interfaces | 9 years ago | |
HookAdminBlock.php | 9 years ago | |
HookCreateUser.php | 9 years ago | |
HookEvent.php | 9 years ago | |
HookManagement.php | 7 years ago | |
HookNotificationContent.php | 10 years ago | |
HookNotificationTitle.php | 10 years ago | |
HookObserver.php | 9 years ago | |
HookResubscribe.php | 9 years ago | |
HookSkype.php | 9 years ago | |
HookUpdateUser.php | 10 years ago | |
HookWSRegistration.php | 10 years ago | |
README.md | 9 years ago |
Enable hooks in Chamilo to allow plugins and core to extend current features and watch for certain events.
The Hooks structure is based on the Observer pattern
The base structure is composed of 3 Interfaces
From version 1.10.x, the following Hooks (or more) exist:
Number | Directory | EventClass | ObserverInterface | Reference |
---|---|---|---|---|
1 | /main/inc/lib/usermanager.lib.php | HookCreateUser | HookCreateUserObserverInterface | UserManager::createUser() |
2 | /main/inc/lib/usermanager.lib.php | HookUpdateUser | HookUpdateUserObserverInterface | UserManager::updateUser() |
3 | /main/admin/index.php | HookAdminBlock | HookAdminBlockObserverInterface | ADMIN BLOCK |
You need to create a class extending the HookObserver
class and implement any
(or many) Hook Observer Interfaces, e.g. HookCreateUserObserverInterface
.
An observer can implement many Hook Observer Interfaces.
This was developed to allow plugins to have a unique Hook Observer class.
Don't forget to add your Hook Observer class to the autoload file (vendor/composer/autoload_classmap.php).
When installing your plugin (or other functions) you should call the attach
method from a specific Hook Observer class, e.g. HookCreateUser
class
$myHookObserver = MyHookObserver::create();
HookCreateUser::create()->attach($myHookObserver);
To detach the HookObserver, it should be detached from a specific Hook Event class
$myHookObserver = MyHookObserver::create();
HookCreateUser::create()->detach($myHookObserver);
To expand Hooks in Chamilo you should:
HookUpdateUserEventInterface
, Hook observer: HookUpdateUserObserverInterface
HookEvent
class and implementing your Hook
Event Interface