mirror of
https://hk.gh-proxy.com/https://github.com/NodeBB/nodebb-widget-essentials.git
synced 2025-10-03 20:00:59 +08:00
popular tags display option
This commit is contained in:
parent
735596af5e
commit
dfa1b77c8b
4 changed files with 48 additions and 73 deletions
|
@ -310,6 +310,7 @@ Widget.renderCategories = async function (widget) {
|
|||
|
||||
Widget.renderPopularTags = async function (widget) {
|
||||
const numTags = widget.data.numTags || 8;
|
||||
const display = widget.data.display || 'buttons';
|
||||
let tags = [];
|
||||
if (widget.templateData.template.category) {
|
||||
tags = await topics.getCategoryTagsData(widget.templateData.cid, 0, numTags - 1);
|
||||
|
@ -330,6 +331,7 @@ Widget.renderPopularTags = async function (widget) {
|
|||
|
||||
widget.html = await app.renderAsync('widgets/populartags', {
|
||||
tags: tags,
|
||||
display,
|
||||
template: widget.templateData.template,
|
||||
relative_path: nconf.get('relative_path'),
|
||||
});
|
||||
|
|
96
plugin.json
96
plugin.json
|
@ -5,78 +5,30 @@
|
|||
"url": "https://github.com/psychobunny/nodebb-widget-essentials",
|
||||
"library": "./library.js",
|
||||
"hooks": [
|
||||
{
|
||||
"hook": "static:app.load", "method": "init"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widgets.getWidgets", "method": "defineWidgets"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:text", "method": "renderTextWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:html", "method": "renderHTMLWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:search", "method": "renderSearchWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:onlineusers", "method": "renderOnlineUsersWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:activeusers", "method": "renderActiveUsersWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:latestusers", "method": "renderLatestUsersWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:topposters", "method": "renderTopPostersWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:moderators", "method": "renderModeratorsWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:forumstats", "method": "renderForumStatsWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:recentposts", "method": "renderRecentPostsWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:recenttopics", "method": "renderRecentTopicsWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:recentview", "method": "renderRecentViewWidget"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:categories", "method": "renderCategories"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:populartags", "method": "renderPopularTags"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:populartopics", "method": "renderPopularTopics"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:toptopics", "method": "renderTopTopics"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:newgroups", "method": "renderNewGroups"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:mygroups", "method": "renderMyGroups"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:groupposts", "method": "renderGroupPosts"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:suggestedtopics", "method": "renderSuggestedTopics"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:userpost", "method": "renderUserPost"
|
||||
},
|
||||
{
|
||||
"hook": "filter:widget.render:chat", "method": "renderChatRoom"
|
||||
}
|
||||
{ "hook": "static:app.load", "method": "init" },
|
||||
{ "hook": "filter:widgets.getWidgets", "method": "defineWidgets" },
|
||||
{ "hook": "filter:widget.render:text", "method": "renderTextWidget" },
|
||||
{ "hook": "filter:widget.render:html", "method": "renderHTMLWidget" },
|
||||
{ "hook": "filter:widget.render:search", "method": "renderSearchWidget"},
|
||||
{ "hook": "filter:widget.render:onlineusers", "method": "renderOnlineUsersWidget" },
|
||||
{ "hook": "filter:widget.render:activeusers", "method": "renderActiveUsersWidget" },
|
||||
{ "hook": "filter:widget.render:latestusers", "method": "renderLatestUsersWidget" },
|
||||
{ "hook": "filter:widget.render:topposters", "method": "renderTopPostersWidget" },
|
||||
{ "hook": "filter:widget.render:moderators", "method": "renderModeratorsWidget" },
|
||||
{ "hook": "filter:widget.render:forumstats", "method": "renderForumStatsWidget" },
|
||||
{ "hook": "filter:widget.render:recentposts", "method": "renderRecentPostsWidget" },
|
||||
{ "hook": "filter:widget.render:recenttopics", "method": "renderRecentTopicsWidget" },
|
||||
{ "hook": "filter:widget.render:recentview", "method": "renderRecentViewWidget" },
|
||||
{ "hook": "filter:widget.render:categories", "method": "renderCategories" },
|
||||
{ "hook": "filter:widget.render:populartags", "method": "renderPopularTags" },
|
||||
{ "hook": "filter:widget.render:populartopics", "method": "renderPopularTopics" },
|
||||
{ "hook": "filter:widget.render:toptopics", "method": "renderTopTopics" },
|
||||
{ "hook": "filter:widget.render:newgroups", "method": "renderNewGroups" },
|
||||
{ "hook": "filter:widget.render:mygroups", "method": "renderMyGroups" },
|
||||
{ "hook": "filter:widget.render:groupposts", "method": "renderGroupPosts" },
|
||||
{ "hook": "filter:widget.render:suggestedtopics", "method": "renderSuggestedTopics" },
|
||||
{ "hook": "filter:widget.render:userpost", "method": "renderUserPost" },
|
||||
{ "hook": "filter:widget.render:chat", "method": "renderChatRoom" }
|
||||
],
|
||||
"templates": "./public/templates",
|
||||
"css": [
|
||||
|
|
|
@ -2,3 +2,10 @@
|
|||
<label class="form-label">Amount of Tags to display:</label>
|
||||
<input type="text" class="form-control" name="numTags" placeholder="8" />
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Display Type:</label>
|
||||
<select class="form-select" name="display">
|
||||
<option value="buttons">Buttons</option>
|
||||
<option value="bars">Bars</option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<div class="popular-tags d-flex flex-column gap-2 mb-3">
|
||||
{{{ each tags }}}
|
||||
{{{ if (display == "bars") }}}
|
||||
{{{ each tags }}}
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<div class="w-75 p-1 border position-relative" style="min-width: 0;">
|
||||
<div class="position-absolute bg-info opacity-25 start-0 top-0" style="width: 100%; height:100%; z-index: 0;"></div>
|
||||
|
@ -11,6 +12,19 @@
|
|||
|
||||
<div class="text-center fw-bold p-1 text-end w-25 tag-topic-count border rounded">{./score}</div>
|
||||
</div>
|
||||
{{{ end }}}
|
||||
{{{ end }}}
|
||||
{{{ if (display == "buttons") }}}
|
||||
<div class="tag-list row row-cols-2 gx-3 gy-2">
|
||||
{{{ each tags }}}
|
||||
<div>
|
||||
<a href="{config.relative_path}/tags/{./valueEncoded}" data-tag="{./valueEscaped}" class="btn btn-ghost ff-base d-flex flex-column gap-1 align-items-start justify-content-start text-truncate p-2">
|
||||
<div class="fw-semibold text-nowrap tag-item w-100 text-start text-truncate">{./valueEscaped}</div>
|
||||
<div class="text-xs text-muted text-nowrap tag-topic-count">[[global:x-topics, {txEscape(formattedNumber(./score))}]]</div>
|
||||
</a>
|
||||
</div>
|
||||
{{{ end }}}
|
||||
</div>
|
||||
{{{ end }}}
|
||||
</div>
|
||||
<script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue