From d488512ca030154e5651e1227d4513a6ce51788a Mon Sep 17 00:00:00 2001 From: Pascal Deklerck Date: Thu, 7 Jun 2018 22:23:30 +0200 Subject: [PATCH 1/6] 5118 Create Javascript hook mechanism --- view/js/addon-hooks.js | 12 ++++++++++++ view/js/main.js | 17 +++++++++++++++++ view/templates/head.tpl | 4 ++++ 3 files changed, 33 insertions(+) create mode 100644 view/js/addon-hooks.js diff --git a/view/js/addon-hooks.js b/view/js/addon-hooks.js new file mode 100644 index 0000000000..b00285cb3a --- /dev/null +++ b/view/js/addon-hooks.js @@ -0,0 +1,12 @@ +var addon_hooks={}; + +function Addon_registerHook( type, hookfnstr ) +{ + if (!addon_hooks.hasOwnProperty(type)) { + addon_hooks[type]=[]; + } + + addon_hooks[type].push( hookfnstr ); + + console.log("addon_hooks type "+type+" has "+addon_hooks[type].length+" hooks registered"); +} diff --git a/view/js/main.js b/view/js/main.js index 475e810870..f0bab12806 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -395,6 +395,19 @@ function NavUpdate() { timer = setTimeout(NavUpdate, updateInterval); } +function callAddonHooks(typeOfHook) { + if (typeof addon_hooks !== 'undefined') { + var myTypeOfHooks = addon_hooks[typeOfHook]; + if (typeof myTypeOfHooks !== 'undefined') { + for (addon_hook_idx = 0; addon_hook_idx < myTypeOfHooks.length; addon_hook_idx++) { + var hookfnstr = myTypeOfHooks[addon_hook_idx]; + var hookfn = window[hookfnstr]; + if (typeof hookfn === "function") hookfn(); + } + } + } +} + function liveUpdate(src) { if ((src == null) || stopped || !profile_uid) { $('.like-rotator').hide(); return; @@ -460,6 +473,8 @@ function liveUpdate(src) { prev = ident; }); + callAddonHooks("postprocess"); + $('.like-rotator').hide(); if (commentBusy) { commentBusy = false; @@ -469,7 +484,9 @@ function liveUpdate(src) { $(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl"); /* autocomplete bbcode */ $(".comment-edit-form textarea").bbco_autocomplete('bbcode'); + }); + } function imgbright(node) { diff --git a/view/templates/head.tpl b/view/templates/head.tpl index c58b2b8290..75a676a91e 100644 --- a/view/templates/head.tpl +++ b/view/templates/head.tpl @@ -44,6 +44,10 @@ + +{{foreach $addon_hooks as $addon_hook}} + +{{/foreach}} +{{if is_array($addon_hooks)}} {{foreach $addon_hooks as $addon_hook}} {{/foreach}} +{{/if}}