PluginHost.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // based on http://www.velvetcache.org/2010/08/19/a-simple-javascript-hooks-system
  2. var PluginHost = {
  3. HOOK_ARTICLE_RENDERED: 1,
  4. HOOK_ARTICLE_RENDERED_CDM: 2,
  5. HOOK_ARTICLE_SET_ACTIVE: 3,
  6. HOOK_FEED_SET_ACTIVE: 4,
  7. HOOK_FEED_LOADED: 5,
  8. HOOK_ARTICLE_EXPANDED: 6,
  9. HOOK_ARTICLE_COLLAPSED: 7,
  10. HOOK_PARAMS_LOADED: 8,
  11. HOOK_RUNTIME_INFO_LOADED: 9,
  12. HOOK_FLOATING_TITLE: 10,
  13. hooks: [],
  14. register: function (name, callback) {
  15. if (typeof(this.hooks[name]) == 'undefined')
  16. this.hooks[name] = [];
  17. this.hooks[name].push(callback);
  18. },
  19. run: function (name, args) {
  20. console.warn('PluginHost::run ' + name);
  21. if (typeof(this.hooks[name]) != 'undefined')
  22. for (var i = 0; i < this.hooks[name].length; i++)
  23. if (!this.hooks[name][i](args)) break;
  24. }
  25. };
  26. /* PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED,
  27. function (args) { console.log('ARTICLE_RENDERED: ' + args); return true; });
  28. PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM,
  29. function (args) { console.log('ARTICLE_RENDERED_CDM: ' + args); return true; }); */