5118 Create Javascript hook mechanism
This commit is contained in:
parent
b53e74d989
commit
d488512ca0
12
view/js/addon-hooks.js
Normal file
12
view/js/addon-hooks.js
Normal file
|
@ -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");
|
||||||
|
}
|
|
@ -395,6 +395,19 @@ function NavUpdate() {
|
||||||
timer = setTimeout(NavUpdate, updateInterval);
|
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) {
|
function liveUpdate(src) {
|
||||||
if ((src == null) || stopped || !profile_uid) {
|
if ((src == null) || stopped || !profile_uid) {
|
||||||
$('.like-rotator').hide(); return;
|
$('.like-rotator').hide(); return;
|
||||||
|
@ -460,6 +473,8 @@ function liveUpdate(src) {
|
||||||
prev = ident;
|
prev = ident;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
callAddonHooks("postprocess");
|
||||||
|
|
||||||
$('.like-rotator').hide();
|
$('.like-rotator').hide();
|
||||||
if (commentBusy) {
|
if (commentBusy) {
|
||||||
commentBusy = false;
|
commentBusy = false;
|
||||||
|
@ -469,7 +484,9 @@ function liveUpdate(src) {
|
||||||
$(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl");
|
$(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl");
|
||||||
/* autocomplete bbcode */
|
/* autocomplete bbcode */
|
||||||
$(".comment-edit-form textarea").bbco_autocomplete('bbcode');
|
$(".comment-edit-form textarea").bbco_autocomplete('bbcode');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function imgbright(node) {
|
function imgbright(node) {
|
||||||
|
|
|
@ -44,6 +44,10 @@
|
||||||
<script type="text/javascript" src="view/asset/perfect-scrollbar/js/perfect-scrollbar.jquery.min.js" ></script>
|
<script type="text/javascript" src="view/asset/perfect-scrollbar/js/perfect-scrollbar.jquery.min.js" ></script>
|
||||||
<script type="text/javascript" src="view/js/acl.js" ></script>
|
<script type="text/javascript" src="view/js/acl.js" ></script>
|
||||||
<script type="text/javascript" src="view/asset/base64/base64.min.js" ></script>
|
<script type="text/javascript" src="view/asset/base64/base64.min.js" ></script>
|
||||||
|
<script type="text/javascript" src="view/js/addon-hooks.js" ></script>
|
||||||
|
{{foreach $addon_hooks as $addon_hook}}
|
||||||
|
<script type="text/javascript" src="addon/{{$addon_hook}}/{{$addon_hook}}.js"></script>
|
||||||
|
{{/foreach}}
|
||||||
<script type="text/javascript" src="view/js/main.js" ></script>
|
<script type="text/javascript" src="view/js/main.js" ></script>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue