14 function prepareHook(
name, type) {
16 hooks[
name][type] = hooks[
name][type] || [];
18 hooks[
'all'] = hooks[
'all'] || [];
19 hooks[
name][
'all'] = hooks[
name][
'all'] || [];
20 hooks[
'all'][type] = hooks[
'all'][type] || [];
21 hooks[
'all'][
'all'] = hooks[
'all'][
'all'] || [];
45 register:
function(
name, type, handler, priority) {
47 elgg.assertTypeOf(
'string', type);
48 elgg.assertTypeOf(
'function', handler);
54 prepareHook(
name, type);
56 hooks[
name][type].push({
83 trigger:
function(
name, type, params,
value) {
85 elgg.assertTypeOf(
'string', type);
90 var registrations = [],
91 push = Array.prototype.push;
93 prepareHook(
name, type);
95 if (hooks[
name][type].length) {
96 if (
name !==
'all' && type !==
'all') {
97 push.apply(registrations, hooks[
name][type]);
101 if (hooks[
'all'][type].length) {
102 if (type !==
'all') {
103 push.apply(registrations, hooks[
'all'][type]);
107 if (hooks[
name][
'all'].length) {
108 if (
name !==
'all') {
109 push.apply(registrations, hooks[
name][
'all']);
113 if (hooks[
'all'][
'all'].length) {
114 push.apply(registrations, hooks[
'all'][
'all']);
117 registrations.sort(
function (a, b) {
119 if (a.priority < b.priority) {
123 if (a.priority > b.priority) {
128 return (a.index < b.index) ? -1 : 1;
132 $.each(registrations,
function (i, registration) {
133 var handler_return = registration.handler(
name, type, params,
value);
134 if (handler_return != null) {
135 value = handler_return;
define(['jquery', 'elgg'], function($, elgg){var index=0;var hooks={};function prepareHook(name, type){hooks[name]=hooks[name]||[];hooks[name][type]=hooks[name][type]||[];hooks['all']=hooks['all']||[];hooks[name]['all']=hooks[name]['all']||[];hooks['all'][type]=hooks['all'][type]||[];hooks['all']['all']=hooks['all']['all']||[];}return{reset:function(){hooks=[];}, register:function(name, type, handler, priority){elgg.assertTypeOf('string', name);elgg.assertTypeOf('string', type);elgg.assertTypeOf('function', handler);if(!name||!type){return false;}prepareHook(name, type);hooks[name][type].push({priority:priority, index:index++, handler:handler});return true;}, trigger:function(name, type, params, value){elgg.assertTypeOf('string', name);elgg.assertTypeOf('string', type);value=(value!=null)?value:null;var registrations=[], push=Array.prototype.push;prepareHook(name, type);if(hooks[name][type].length){if(name!== 'all'&&type!== 'all'){push.apply(registrations, hooks[name][type]);}}if(hooks['all'][type].length){if(type!== 'all'){push.apply(registrations, hooks['all'][type]);}}if(hooks[name]['all'].length){if(name!== 'all'){push.apply(registrations, hooks[name]['all']);}}if(hooks['all']['all'].length){push.apply(registrations, hooks['all']['all']);}registrations.sort(function(a, b){if(a.priority< b.priority){return-1;}if(a.priority > b.priority){return 1;}return(a.index< b.index)?-1:1;});$.each(registrations, function(i, registration){var handler_return=registration.handler(name, type, params, value);if(handler_return!=null){value=handler_return;}});return value;}};})
if(!$enabled) if(PHP_SAPI!== 'cli')
return['admin/delete_admin_notices'=>['access'=> 'admin'],'admin/menu/save'=>['access'=> 'admin'],'admin/plugins/activate'=>['access'=> 'admin'],'admin/plugins/activate_all'=>['access'=> 'admin'],'admin/plugins/deactivate'=>['access'=> 'admin'],'admin/plugins/deactivate_all'=>['access'=> 'admin'],'admin/plugins/set_priority'=>['access'=> 'admin'],'admin/security/settings'=>['access'=> 'admin'],'admin/security/regenerate_site_secret'=>['access'=> 'admin'],'admin/site/cache/invalidate'=>['access'=> 'admin'],'admin/site/flush_cache'=>['access'=> 'admin'],'admin/site/icons'=>['access'=> 'admin'],'admin/site/set_maintenance_mode'=>['access'=> 'admin'],'admin/site/set_robots'=>['access'=> 'admin'],'admin/site/unlock_upgrade'=>['access'=> 'admin'],'admin/site/settings'=>['access'=> 'admin'],'admin/upgrade'=>['access'=> 'admin'],'admin/upgrade/reset'=>['access'=> 'admin'],'admin/user/ban'=>['access'=> 'admin'],'admin/user/bulk/ban'=>['access'=> 'admin'],'admin/user/bulk/delete'=>['access'=> 'admin'],'admin/user/bulk/unban'=>['access'=> 'admin'],'admin/user/bulk/validate'=>['access'=> 'admin'],'admin/user/change_email'=>['access'=> 'admin'],'admin/user/delete'=>['access'=> 'admin'],'admin/user/login_as'=>['access'=> 'admin'],'admin/user/logout_as'=>[],'admin/user/makeadmin'=>['access'=> 'admin'],'admin/user/resetpassword'=>['access'=> 'admin'],'admin/user/removeadmin'=>['access'=> 'admin'],'admin/user/unban'=>['access'=> 'admin'],'admin/user/validate'=>['access'=> 'admin'],'annotation/delete'=>[],'avatar/upload'=>[],'comment/save'=>[],'diagnostics/download'=>['access'=> 'admin'],'entity/delete'=>[],'entity/mute'=>[],'entity/subscribe'=>[],'entity/unmute'=>[],'entity/unsubscribe'=>[],'login'=>['access'=> 'logged_out'],'logout'=>[],'notifications/mute'=>['access'=> 'public'],'plugins/settings/remove'=>['access'=> 'admin'],'plugins/settings/save'=>['access'=> 'admin'],'plugins/usersettings/save'=>[],'river/delete'=>[],'settings/notifications'=>[],'settings/notifications/subscriptions'=>[],'user/changepassword'=>['access'=> 'public'],'user/requestnewpassword'=>['access'=> 'public'],'useradd'=>['access'=> 'admin'],'usersettings/save'=>[],'widgets/add'=>[],'widgets/delete'=>[],'widgets/move'=>[],'widgets/save'=>[],]