PluginHost.js 1013 B

12345678910111213141516171819202122232425262728293031323334
  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. hooks: [],
  13. register: function (name, callback) {
  14. if (typeof(this.hooks[name]) == 'undefined')
  15. this.hooks[name] = [];
  16. this.hooks[name].push(callback);
  17. },
  18. run: function (name, args) {
  19. console.warn('PluginHost::run ' + name);
  20. if (typeof(this.hooks[name]) != 'undefined')
  21. for (i = 0; i < this.hooks[name].length; i++)
  22. if (!this.hooks[name][i](args)) break;
  23. }
  24. };
  25. /* PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED,
  26. function (args) { console.log('ARTICLE_RENDERED: ' + args); return true; });
  27. PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM,
  28. function (args) { console.log('ARTICLE_RENDERED_CDM: ' + args); return true; }); */