Files
old-v2-backend/wordpress/wp-content/plugins/wp-migrate-db-pro/asset/dist/js/hook-172.js
2018-06-25 00:00:37 +02:00

65 lines
2.0 KiB
JavaScript

(function( $ ) {
$.wpmdb = {
/**
* Implement a WordPress-link Hook System for Javascript
* TODO: Change 'tag' to 'args', allow number (priority), string (tag), object (priority+tag)
*/
hooks: { action: {}, filter: {} },
add_action: function( action, callable, tag ) {
jQuery.wpmdb.add_hook( 'action', action, callable, tag );
},
add_filter: function( action, callable, tag ) {
jQuery.wpmdb.add_hook( 'filter', action, callable, tag );
},
do_action: function( action, args ) {
jQuery.wpmdb.do_hook( 'action', action, null, args );
},
apply_filters: function( action, value, args ) {
return jQuery.wpmdb.do_hook( 'filter', action, value, args );
},
remove_action: function( action, tag ) {
jQuery.wpmdb.remove_hook( 'action', action, tag );
},
remove_filter: function( action, tag ) {
jQuery.wpmdb.remove_hook( 'filter', action, tag );
},
add_hook: function( hook_type, action, callable, tag ) {
if ( undefined === jQuery.wpmdb.hooks[hook_type][action] ) {
jQuery.wpmdb.hooks[hook_type][action] = [];
}
var hooks = jQuery.wpmdb.hooks[hook_type][action];
if ( undefined === tag ) {
tag = action + '_' + hooks.length;
}
jQuery.wpmdb.hooks[hook_type][action].push( { tag: tag, callable: callable } );
},
do_hook: function( hook_type, action, value, args ) {
if ( undefined !== jQuery.wpmdb.hooks[hook_type][action] ) {
var hooks = jQuery.wpmdb.hooks[hook_type][action];
for ( var i = 0; i < hooks.length; i++ ) {
if ( 'action' === hook_type ) {
hooks[i].callable( args );
} else {
value = hooks[i].callable( value, args );
}
}
}
if ( 'filter' === hook_type ) {
return value;
}
},
remove_hook: function( hook_type, action, tag ) {
if ( undefined !== jQuery.wpmdb.hooks[hook_type][action] ) {
var hooks = jQuery.wpmdb.hooks[hook_type][action];
for ( var i = hooks.length - 1; 0 < i; i-- ) {
if ( undefined === tag || tag === hooks[i].tag ) {
hooks.splice( i, 1 );
}
}
}
}
};
})( jQuery );