NodeBB Plugins
Discussion regarding NodeBB Plugin development.
1.8k
Topics
15.2k
Posts
Most Voted Plugins
General
This is a Shoutbox plugin for NodeBB! It currently requires and supports NodeBB v1.x.x
Current version:
0.3.3
Some screenshots to convince you:
[image: 8cOhczF.png]
[image: 753heWj.png]
Features
Real-time shouting! Aaaaaaaaahhh!
Supports whatever text parsing plugin you have installed, so that's Markdown by default!
Choose where you want to place the shoutbox! It works just like any other NodeBB widget.
You can edit and delete your shouts! Beware of admins though, they can edit and delete anyone's shouts!
Because our forum is a bit programmer oriented you can quickly create Gists!
Get a blast from the past! View all the old shouts with the archive! Currently broken.
Don't want that? Admins can clear the shout database!
Settings! They even show up in your profile settings!
Want to enable or disable the little notification sound? You can!
Choose whether the title bar notifies you about new shouts!
And more!
Installation
You can install this plugin with:
npm install nodebb-plugin-shoutbox
Other information
The source can be found here:
https://github.com/Schamper/nodebb-plugin-shoutbox
Do you like my plugins? Contact me if you want to buy me a beer.
NodeBB Plugins
37 votes
NodeBB Hover Cards
I made a little thing.
This plugin adds a little feature to the mentions plugin. With this enabled, you can hover over a mention and view some information about the mentioned user.
Screenshot
[image: wdBOeLY.png]
Install
npm install nodebb-plugin-cards
Source
https://github.com/Schamper/nodebb-plugin-cards
NodeBB Plugins
20 votes
I need testers for my calendar plugin. I've been working on it for a while, and I just got into a feature full stage, so now I need it to be tested. If you're willing to test it for me, please install it to your NodeBB and report any bugs or anything here or on Github. Thanks!
nodebb-plugin-calendar v1.0.0-alpha.x
This plugin adds a site-wide calendar to NodeBB.
Installation
npm install nodebb-plugin-calendar@latest
Activate it in the ACP and restart NodeBB
Configure permissions at ACP Manage > Categories page
Don't forget to restart after installing the plugin.
Features
Events created, edited, and deleted as part of a post
Native NodeBB category permissions are used to determine who can post and view events
Public events as part of the same permissions system
Response system for easy user responses (yes, maybe, no)
Configurable automated reminders for upcoming events using NodeBB's notifications system
Centralized calendar interface to view all upcoming events
In The Works
iCal export
Simplistic, graceful calendar UI (infinite scroll) with mobile support
NodeBB Plugins
20 votes
(Taking gamification to the next level, literally :p)
About 10 years ago I worked on this project called ADR (Advanced Dungeons and Rabbits), which was an RPG modification for phpBB2. There were a few of those modifications back in the day, such as Moogies and Zarath's RPG mods. Even Gaia Online was based upon phpBB at some point.
Anyways, that project was very dear to my heart and I've always wanted to port it to something more modern (initially to phpBB3, thank goodness I didn't bother with that!)
Anyways, here it is. *Do not use on production environment - I only spent a grand total of two weekends on this... I have a ton left to do! Any help is appreciated
I'll set up a Transifex project for this at some point, because we actually have a ton of translations already, I think maybe even more than what NodeBB has at the moment
Screenshots
[image: 9c2ExRn.png]
[image: lBwIU3t.png]
[image: Y69K3B4.png]
[image: 5xdxqkf.png]
[image: LfVJ4Fa.png]
[image: KkRi898.png]
Installation
npm install nodebb-plugin-openfantasy
Note: You need the Cash MOD currency plugin installed in order for the RPG system to be activated.
Fork it on GitHub.
NodeBB Plugins
19 votes
This NodeBB plugin pulls RSS feeds and creates topics in predefined categories.
https://github.com/barisusakli/nodebb-plugin-rss
To customise options for the parser, please consult the "RSS" page in the administration panel, under the "Plugins" heading.
Installation
npm install nodebb-plugin-rss
Usage
[image: oiIHYGB.png]
Click 'Add Feed'
Enter the RSS feed you want to pull
Select the category you want to post to
Enter tags if you want to tag the posted topics
Type in the username you want to post as
Select the interval to query the RSS feed
Select the timestamp to use for the topic
Click Save.
NodeBB Plugins
18 votes
NodeBB Blog Comments
Lets NodeBB act as a comments engine/widget for your blog. Currently supports both Ghost and WordPress. There is a separate repo for PencilBlue support. If you'd like to see support for other CMS/blog systems, please submit an issue on our tracker.
The comments are exposed to any plugin you have built into the core, so it is completely possible to have emoticons, embedded video, and/or whatever else you want in the comments section of your blog.
Articles are published to a forum category of your choice, and will gain a tag that links it back to the original article.
What's new in 0.8x
The WP-JSON plugin is no longer required. This plugin will now use the built-in JSON API.
The comments snippet has changed, please update your integration code as necessary
Fixed a bug that caused errors when no ACAO header was defined
Upgrading to 0.6x
Getting Unexpected end of JSON input for /comments/publish? On your blog's post template (ex. post.hbs for Ghost) where you have installed the blog comments script, find the following line:
<script id="nbb-markdown" type="text/markdown">{{../post.markdown}}</script>
and above, add:
<script id="nbb-title" type="text/markdown">{{../post.title}}</script>
What's new in 0.3x
Fixed quite a few server crashes (especially when publishing)
Compatible with NodeBB 0.6x+ and Ghost 0.5.10
Added tags support for Ghost
Added comment support in general
Screenshots
[image: pPO42Hy.png]
Installation
First install the plugin:
npm install nodebb-plugin-blog-comments
Activate the plugin in the ACP and reboot NodeBB. Head over to the Blog Comments section in the ACP and select the Category ID you'd like to publish your blog content to (default is Category 1). Make sure you put the correct URL to your blog.
Ghost Installation
Paste this any where in yourtheme/post.hbs, somewhere between {{#post}} and {{/post}}. All you have to edit is line 3 (nbb.url) - put the URL to your NodeBB forum's home page here.
<a id="nodebb-comments"></a>
<script type="text/javascript">
var nbb = {};
nbb.url = '//your.nodebb.com'; // EDIT THIS
nbb.cid = 1; // OPTIONAL. Forces a Category ID in NodeBB.
// Omit it to fallback to specified IDs in the admin panel.
(function() {
nbb.articleID = '{{../post.id}}';
nbb.tags = [{{#../post.tags}}"{{name}}",{{/../post.tags}}];
nbb.script = document.createElement('script'); nbb.script.type = 'text/javascript'; nbb.script.async = true;
nbb.script.src = nbb.url + '/plugins/nodebb-plugin-blog-comments/lib/ghost.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(nbb.script);
})();
</script>
<script id="nbb-title" type="text/markdown">{{../post.title}}</script>
<script id="nbb-markdown" type="text/markdown">{{../post.markdown}}</script>
<noscript>Please enable JavaScript to view comments</noscript>
If you wish, you can move <a id="nodebb-comments"></a> to where you want to place the actual comments widget.
Wordpress Installation
Replace the contents of /wp-content/themes/YOUR_THEME/comments.php with the following (back-up the old comments.php, just in case):
<?php
if ( post_password_required() )
return;
?>
<a id="nodebb-comments"></a>
<script type="text/javascript">
const nodeBBURL = '//your.nodebb.com';
const wordpressURL = '<?php get_site_url(); ?>';
const articleID = \''.get_the_ID().'\';
const categoryID = null; // OPTIONAL. Forces a Category ID in NodeBB.
// Omit it to fallback to specified IDs in the admin panel.
(function() {
var nbb = document.createElement('script'); nbb.type = 'text/javascript'; nbb.async = true;
nbb.src = nodeBBURL + '/plugins/nodebb-plugin-blog-comments/lib/wordpress.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(nbb);
})();
</script>
<noscript>Please enable JavaScript to view comments</noscript>
General - PHP example
Paste this any where that you want load commenting system. All you have to edit is line 3 (nodeBBURL) - put the URL to your NodeBB forum's home page here. You can also use any template engine (hbs, eco...) instead of PHP.
<a id="nodebb-comments"></a>
<script type="text/javascript">
var nodeBBURL = '//your.nodebb.com',
<?php
echo "articleID = " .getId().";";
$obj = new stdClass();
$obj->title_plain = "";
$obj->url="";
$obj->tags = [];
$obj->markDownContent= "";
$obj->cid = 1; // OPTIONAL. Forces a Category ID in NodeBB.
// Omit it to fallback to specified IDs in the admin panel.
echo "var articleData =" .json_encode($obj).";";
?>
(function() {
var nbb = document.createElement('script'); nbb.type = 'text/javascript'; nbb.async = true;
nbb.src = nodeBBURL + '/plugins/nodebb-plugin-blog-comments/lib/generalphp.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(nbb);
})();
</script>
<noscript>Please enable JavaScript to view comments</noscript>
You must have some getId() function on your website, for example:
For a PHP website
<?php
function getId(){
$id = 0;
// unique id for each page of your website
return $id;
}
?>
If you don't have such ID, you can use this function that generates a unique ID from the URL:
<?php
function getId(){
return stringToInteger($_SERVER['REQUEST_URI']);
}
function stringToInteger($string) {
$string = md5($string);
$output = '1';
for ($i = 0; $i < strlen($string); $i++) {
$output .= (string) ord($string[$i]);
}
return (int) $output;
}
?>
Comments Counter
You may optionally put a "# of comments" counter anywhere on the page with the following code:
<span id="nodebb-comments-count"></span> Comments
A mechanism to query the number of comments on another separate page will be available in a future release.
Author and Category information
[image: NyLs4LQ.png]
To use NodeBB's category and author information (instead of using Ghost's user/tag system), there are two elements that this plugin searches for:
Published by <span id="nodebb-comments-author"></span> in <span id="nodebb-comments-category"></span>
Publishing
Head over to the article that you'd like to publish. The code will detect if you're both an administrator of your blog and NodeBB (so ensure that you're logged into both) and will display a publish button if so.
You may also create a publishers group in NodeBB to allow a group of regular users to have publish rights.
Multiple blogs
You may use a comma-separated entry of blogs in the ACP to support publishing from a network of separate blogs to your forum. You can also choose to put each blog in its own dedicated category, or place them all into one category.
Sites using this plugin
NodeBB's Blog (Wordpress).
The Unknown Artist Hour (Ghost).
Strange Adventures In (Ghost).
V2MM (Ghost).
Please submit a PR to add your site here
TODO
Republishing (for now you can just edit both the article and the published blog).
Pull CSS files from appropriate plugins? Ability to load custom CSS to style widget.
NodeBB Plugins
18 votes
NodeBB Plugin Browsing Users
This plugin shows who is currently viewing a topic. This was a core feature that we removed a while ago, now it is back as a plugin
Installation
npm install nodebb-plugin-browsing-users
More info at https://github.com/barisusakli/nodebb-plugin-browsing-users
Notes
Currently only persona supports this, if you want to add it to your custom theme make these changes.
NodeBB Plugins
18 votes
NodeBB Awards
Plugin for adding Award System on your board: it could be medals, or it could be very special ranks, etc. It's a good instrument to engage users on your board, and It's another instrument for gamification of your board.
I hope this plugin will be helpful for you
Install
npm install nodebb-plugin-ns-awards
Links
Plugin
Issues
Changelog
Features Overview, pre-release
All components will be improved overtime. It's just very first steps If you have ideas, don't hesitate to share them.
Create Awards
[image: T5q5Heq.png]
Overview them in ACP
[image: H1c21kq.png]
Give Medals!
[image: 6hMMIJY.png]
Overview all awards at yourboard.com/awards
[image: aPZtzRa.png]
Extend user's profiles
[image: pmn2uHd.png]
NodeBB Plugins
17 votes
NodeBB Plugin Newsletter
The newsletter plugin allows NodeBB forum administrators to send e-mail newsletters to all users or groups of users.
Latest version v0.7.x is compatible with NodeBB v1.5.0 and up.
Setup
Before using this plugin you will need to install an emailer plugin. I recommend nodebb-plugin-emailer-mailgun, but any plugin with nodebb-plugin-emailer-* should work.
Usage
This plugin uses a WYSIWYG editor tinyMCE located within the admin panel plugins menu.
[image: 1c8fff6cee.png]
Newsletters can be sent to multiple user groups. Options are also given for subscription overrides and blacklists.
[image: fafdb818ef.png]
Users can unsubscribe from newsletters via the user settings menu. New users will automatically receive newsletters.
[image: 8bb0688a4e.png]
In addition to using the WYSIWYG editor, admins can also send newsletters directly from the composer when creating a new topic.
TODOs
Translations.
Emoji-Extended integration.
Save email templates.
Save previous newsletter stats and recipients.
Fork Me on GitHub!
[image: 88x15.png]
NodeBB Plugins
16 votes
NodeBB Poll plugin
This NodeBB plugin will allow you to add polls to the first post of a topic.
Current version: 3.2.3
NodeBB compatibility: 3.2.0 and up.
Disclaimer
This is still a work in progress. It's entirely possible that old polls will end up broken by new releases.
How to add a poll
There are two ways to add a poll to a topic. The easiest and advised way is to use the poll creator. After installing you will find a new button in the composer. Clicking it will open the poll creator. In here you can change some settings and add the options for your poll. When you're done, hit Confirm and the appropriate poll markup will be added to your post.
[image: 2fPnWLb.png]
The second way is to write the markup yourself. Its syntax is as follows:
It doesn't matter where in the post you add this markup, as long as you keep it intact.
Keep in mind that you can only add a poll to the first post of a topic. You can add polls to existing topics by editing the first post.
Administration
The AdminCP page for this plugin will allow you to change the default settings and set some constraints. There are currently only a few options, but these will expand over time.
Installation
Either through the NodeBB ACP or npm install nodebb-plugin-poll
Screenshots
[image: naujJdp.png]
[image: o1f6H1m.png]
[image: 42sfrrE.png]
Todo
Add the ability to edit a poll
More...
If you're willing to help, please make any improvements you want and submit a PR.
Source
The source can be found on Github.
Donation
For those that insist on buying me a beer: hit my up on the chat.
NodeBB Plugins
14 votes
NodeBB Plugins
14 votes
Telegram Notifications
[image: f9l26r.png]
Allows NodeBB to send notifications over an TelegramBot!
Installation
Install it from nodebb plugin manager on your admin zone and you are done
or
clone it and Enter to the directory of the plugin and execute
https://github.com/NodeBB-Community/nodebb-plugin-telegram-notifications
Enter to the directory of the plugin and execute:
npm install
This will install all libs the plugin needs.
Configuration
Install and activate this plugin.
Create your Bot, and obtain your bot token
Enter the token into the plugin's setup page (/admin/telegram), and save.
Reload NodeBB.
User Config
Talk to the bot and get user token
Go to yourdomain/telegram/settings and fill the token
Have fun
Commands on telegram
Reply thread
/r topicID message
Send chat
/chat userslug message
Show Recent
/recent
Show last post on a topic
/read topicID (number of posts)
Known bugs:
Please use restart first time after putin your token on admin zone
If you have nodebb scaling you must run the plugin on main server with a port non set on other instances, can change mainport in library.js
Github:
https://github.com/NodeBB-Community/nodebb-plugin-telegram-notifications
Example of notification on telegram
[image: jcsIotG.png]
NodeBB Plugins
14 votes
NodeBB Desktop Notifications
This NodeBB plugin uses the HTML5 Notifications API to display desktop alerts upon new incoming notifications.
If you have a forum logo set it will use that as the notification icon. Clicking on the notification will take you the appropriate thread.
Install via NPM:
npm install nodebb-plugin-desktop-notifications
[image: UnBFk3z.png]
When the user clicks on the notification icon in the menu, a permission dialog is launched to activate desktop notifications.
Also supports push notifications on mobile:
[image: JbfEBTJ.png]
Even when the browser is minimized, you can still get a notification.
More info on Github
NodeBB Plugins
13 votes
This is a light weight RSVP plugin . For example you can use this to ask people to join an event or express their interest in a topic, right from inside a post. The source code is on github.
npm install nodebb-plugin-whoisin
Once you activate the plugin, you just have to ask the magic phrase: who is in? in a post
The plugin will automatically replace that question with a widget like this:
[image: YHVvJK3.png]
Now every user can easily add themselves to that list, or remove themselves if they change their mind. Currently only one unique whoisin widget can be added to each topic.
This is my first plugin for NodeBB. Any feedback, feature requests or bug reports will be much appreciated!
I hope some people will find this useful.
NodeBB Plugins
13 votes
NodeBB Likes
Tradional Like system, like on various social networks. This plugin uses NodeBB Vote System, but as you can see only up-votes
Same as default chevrons, plugin uses sockets to update in real-time.
Links
Plugin
Issues
Theme configuration
How does it look like?
It's a small widget (Bootstrap, extra small button).
[image: pBjmtVS.png]
It's a split button:
left part is toggle button, to like/unlike
right part is count button, to show likers
NodeBB Plugins
13 votes
Session Sharing for NodeBB
In a nutshell, this plugin allows you to share sessions between your application and NodeBB. You'll need to set a
special cookie with a common domain, containing a JSON Web Token with user data. If sufficient, this plugin will
handle the rest (user registration/login).
How is this related to SSO?
Single Sign-On allows a user to log into NodeBB through a third-party service. It is best (and most securely)
achieved via OAuth2 provider, although other alternatives exist. An example of a single sign-on plugin is
nodebb-plugin-sso-facebook.
Single sign-on does not allow a session to become automatically created if a login is made to another site.
This is the one misconception that people hold when thinking about SSO and session sharing.
This session sharing plugin will allow NodeBB to automatically log in users (and optionally, log out users)
if the requisite shared cookie is found (more on that below).
You can use this plugin and single sign-on plugins together, but they won't be seamlessly integrated.
How does this work?
This plugin checks incoming requests for a shared cookie that is saved by your application when a user
logs in. This cookie contains in its value, a specially crafted signed token containing unique identifying
information for that user.
If the user can be found in NodeBB, that user will be logged in. If not, then a user is created, and that
unique indentifier is saved for future reference.
Read more at the project repository
Updates
v1.0.13 released
v2.0.0 released
NodeBB Plugins
13 votes
##About
I'm way too tired to write a lot about this. It's nearly 3AM here and I've been working on this from late this afternoon. Just wanted to get this out in the open ASAP so I can finally cross it off my todo-list and so that people who really want / need it can contribute.
This plugin essentially adds a Call button to the chat modal. Hitting it will allow you to video call another user.
It's not the best code, but it works and I'm fairly happy with it, seeing as I started today by not being able to tell if the other user was available to call.
##Install
npm install nodebb-plugin-webrtc
##Usage
After enabling, start a chat with a user. After the other user has also opened the chat window, the Call button will be enabled. Just hit it
##Source
https://github.com/Schamper/nodebb-plugin-webrtc
Please contribute.
I'm going to sleep now
And I also need to finally fix that setting in my IDE for tabs vs spaces...
NodeBB Plugins
12 votes
NodeBB Plugins
11 votes
aka "the One Plugin"
In the interest of making available plugins easier to find and install, I made a plugin that will do just that!
Now:
[image: Screenshot%202014-02-10%2000.12.33.png]
*Some console typing required
Just:
npm install nodebb-plugin-finder
(maybe even for the last time!)
Github
History:
v. up to 0.0.4: works with nodebb v. 0.3.x
0.0.5: Compatibility with NodeBB v. 0.4.1
UPDATE: this plugin is now deprecated, as the functionality has been implemented in the core product. It will still be available on github and npm for functionality up to (but not including) NodeBB v. 0.4.3
NodeBB Plugins
11 votes
NodeBB User Invitations
source: https://github.com/yariplus/nodebb-plugin-user-invitations
This NodeBB plugin allows current users to send email invitations to potential new users.
Sending Invitations
Users can send invitations from the 'Invitations' page listed on their profile links menu.
[image: lhXcF.jpg]
Admins can also send invitations from the 'User Invitations' page in the ACP.
[image: lhY2S.png]
Configuration
Admins can configure additional settings from the 'User Invitations' page in the ACP. All settings are saved automagically.
[image: lw7oK.png]
Installation
Install the plugin using the "Install Plugins" page in the ACP. The package name is nodebb-plugin-newuser-invitation
Screenshots
[image: lhZ6w.png]
[image: lhZ3g.png]
Additional info
CC0 or MIT license.
This project started as a fork of nodebb-plugin-newuser-approval by pichalite. I have since detached the fork because the plugins no longer have anything in common.
NodeBB Plugins
11 votes
Subcategories
-
Plugin Development
Have a question about building a plugin? Ask here -
Plugin Requests
Need a plugin developed? Ask here!
Copyright © 2024 NodeBB | Contributors