mirror of
				https://github.com/ether/etherpad-lite.git
				synced 2025-11-04 10:11:33 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * This code is mostly from the old Etherpad. Please help us to comment this code. 
 | 
						|
 * This helps other people to understand this code better and helps them to improve it.
 | 
						|
 * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED
 | 
						|
 */
 | 
						|
 | 
						|
var plugins = {
 | 
						|
  callHook: function(hookName, args)
 | 
						|
  {
 | 
						|
    var global = (function () {return this}());
 | 
						|
    var hook = ((global.clientVars || {}).hooks || {})[hookName];
 | 
						|
    if (hook === undefined) return [];
 | 
						|
    var res = [];
 | 
						|
    for (var i = 0, N = hook.length; i < N; i++)
 | 
						|
    {
 | 
						|
      var plugin = hook[i];
 | 
						|
      var pluginRes = eval(plugin.plugin)[plugin.original || hookName](args);
 | 
						|
      if (pluginRes != undefined && pluginRes != null) res = res.concat(pluginRes);
 | 
						|
    }
 | 
						|
    return res;
 | 
						|
  },
 | 
						|
 | 
						|
  callHookStr: function(hookName, args, sep, pre, post)
 | 
						|
  {
 | 
						|
    if (sep == undefined) sep = '';
 | 
						|
    if (pre == undefined) pre = '';
 | 
						|
    if (post == undefined) post = '';
 | 
						|
    var newCallhooks = [];
 | 
						|
    var callhooks = plugins.callHook(hookName, args);
 | 
						|
    for (var i = 0, ii = callhooks.length; i < ii; i++) {
 | 
						|
      newCallhooks[i] = pre + callhooks[i] + post;
 | 
						|
    }
 | 
						|
    return newCallhooks.join(sep || "");
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
exports.plugins = plugins;
 |