html widgets can access template data in 1.6.1
-
This is a new feature that is coming in 1.6.1, previously html widgets were just static. Now you can use them like any template. For example here is a sample html widget placed on category.tpl sidebar.
Now when you visit the
General Discussion
category it looks like this:If you visit
Announcements Category
it looks like this:You can use any benchpressjs(templates.js) syntax, and any data that is avaiable in
ajaxify.data
. You can see the variables available by opening up your browser console and typingajaxify.data
.Another cool feature this allows is letting plugins add custom data into pages and then utilizing that in widgets. By using the hooks
filter:<template_name>.build
and/orfilter:middleware.render
you can add data into the page and the widget will have access to the same data.Hope this helps customise your NodeBB even further!
-
I've wanted this for so long...
-
@djensen47 can you give some more details? What page are you looking at etc
-
I'm trying to insert some template data into an html widget. I'm currently looking at the homepage while testing this.
.... oh. But I'm still not sure how to get the user data like username.
-
@djensen47
ajaxify.data.loggedInUser.username
would beloggedInUser.username
in the template context. -
@djensen47 oh, huh. Appears
loggedInUser
isn't defined on the home page (/category listing). Odd. In that case, you'll have to provide that data yourself by hooking intofilter:<abc>.render
or adding the info to the widget itself.Otherwise you'll have to bug us to add that into core.
-
@PitaJ said in html widgets can access template data in 1.6.1:
adding the info to the widget itself.
I'm using the HTML widget, is there another way to get this data into the HTML widget?
-
@djensen47 Not at this time AFAIK
-
Looks like I can do it with JavaScript.
-
But lemmie tell you writing Javascript inside an HTML widget is a Pain In The Neck.