Skip to content

NodeBB Plugins

Discussion regarding NodeBB Plugin development.

1.8k Topics 15.2k Posts
Most Voted Plugins

Subcategories


  • Have a question about building a plugin? Ask here
    440 Topics
    2k Posts
    barisB
    You could use the below custom javascript, it will open the last chat if there is no open chat. $(window).on('action:ajaxify.end', async () => { const { data } = ajaxify; if (data.template.chats && !data.template.roomId && data.rooms.length) { const Chats = await app.require('forum/chats'); Chats.switchChat(data.rooms[0].roomId); } });
  • Need a plugin developed? Ask here!
    223 Topics
    1k Posts
    Silver.meS
    I am willing to pay whatever it takes, $30 max.
  • 0 Votes
    13 Posts
    6k Views
    N
    @yariplus Thank you.
  • nodebb-plugin-adsense compatible to 0.9.4 ?

    1
    1 Votes
    1 Posts
    829 Views
    N
    i am using 0.9.4 version of nodebb. I can't get it to work the nodebb-plugin-adsense in my app. I need to know if its compatible with 0.9.4 version?
  • Redactor plugin not working with 0.9.4 version

    3
    0 Votes
    3 Posts
    1k Views
    N
    @ThingBreaker I think i tried it after disabling the default composer and markdown plugins. But it is not working. There will be no styling or anything if i save the post.
  • [nodebb-plugin-videoplayer]

    9
    3 Votes
    9 Posts
    5k Views
    julianJ
    @ogerly Awesome work, thanks for updating, @ogerly !
  • Tip with bitcoin

    4
    0 Votes
    4 Posts
    2k Views
    nhl.plN
    It is already reported. https://github.com/reddink/nodebb-plugin-reddcoin/issues/4
  • [nodebb-plugin-temporal-ban] Temporal Ban for NodeBB

    3
    9 Votes
    3 Posts
    2k Views
    ?
    Looks like this is no longer working as of 0.9.
  • Resize Image Plugin

    Locked
    3
    0 Votes
    3 Posts
    2k Views
    julianJ
    Locking to limit discussion
  • This topic is deleted!

    4
    0 Votes
    4 Posts
    168 Views
  • 0 Votes
    4 Posts
    4k Views
    yariplusY
    @pichalite Ah, you're right. Looks like tpl_url was added in master. Changed the hook to contentLoaded, since end doesn't pass the template in 0.9.x.
  • [nodebb-plugin-emoji-extended] Emoji Extended

    87
    3 Votes
    87 Posts
    47k Views
    julianJ
    Makes sense. Very well , I approve.
  • Activate plugins through CLI and use of proxy

    3
    1 Votes
    3 Posts
    3k Views
    P
    @Ron looks like it is not working. reported here https://github.com/NodeBB/NodeBB/issues/4252
  • 0 Votes
    4 Posts
    4k Views
    julianJ
    Is this for a hook of some sort? Please paste the entire function, and which hook you're subscribing to...
  • How try to sync,sync instructions with async instructions

    2
    0 Votes
    2 Posts
    2k Views
    yariplusY
    for is synchronous, so you will need to require the async library. That library has an async.each() function which is an asynchronous version of forEach. You will want to read up on it here. https://github.com/caolan/async#each var async = require.main.require('async'); function doLast(){ console.log(" STRING "); } var array = [a, b, c]; async.each(array, function(value, next){ // The value is sent here, not the index, if you really need the index, you can use forEachOf() or do array.indexOf(value). db.getObject(------,function(err,returnData){ //in this method modify string in some way console.log("METHOD"); // Call next() to let the the app know that the async operation is complete. next(); }); // When all async operations are complete, run doLast. }, doLast);
  • Cannot read property 'locked' of null[ERROR]

    1
    0 Votes
    1 Posts
    1k Views
    D
    I obtain this error when I try to access to category but the google console don't give me some details but only that the error is: "Cannot read property 'locked' of null" nodebb.min.js:25243 Uncaught TypeError: Cannot read property at this line: helpers.generateTopicClass = function(topic) { var style = []; //at this line if (topic.locked) { style.push('locked'); } if (topic.pinned) { style.push('pinned'); } if (topic.deleted) { style.push('deleted'); } if (topic.unread) { style.push('unread'); } return style.join(' '); }; I think is for the async.waterfall call because function(data,callback){ async.waterfall([ function(next){ //someOperation next(null,topic); }],function(err,topic){ data.category.topics = topic.concat(data.category.topics); }); Anyone can help me?
  • Does a Qna registration plugin exist for NodeBB?

    8
    0 Votes
    8 Posts
    2k Views
    P
    @Jenkler there is a guide to add languages to plugins https://docs.nodebb.org/en/latest/plugins/i18n.html
  • How add another route with another .tpl file

    6
    0 Votes
    6 Posts
    4k Views
    julianJ
    Thanks for providing much needed assistance @frissdiegurke Welcome to the land of plugin creation @Doppy !!
  • [nodebb-plugin-postlink] Adds a prefix on postlinks

    8
    4 Votes
    8 Posts
    4k Views
    julianJ
    @Jenkler said: when to use ./ and when not to? To answer your earlier inquiry... in general it should be safe to use both. When paths are passed in plugin configs, we run them through path.join to remove relative relations and double slashes, etc. In all cases (exceptions are bugs), the path should be relative from the plugin directory itself.
  • Error installing nodebb-widget-ns-stats

    7
    0 Votes
    7 Posts
    2k Views
    N
    @rspk should be resolved https://github.com/NicolasSiver/nodebb-widget-ns-stats/issues/2
  • [nodebb-plugin-featured-threads] Featuring threads + related widgets

    15
    1 Votes
    15 Posts
    8k Views
    jareyJ
    @psychobunny said: I think the most recent one this would be good for is 0.8.x, we since revamped our menu system to lazy load instead so that made this one incompatible. Ping me again if I haven't looked at this by end of next week ping @psychobunny :bowtie:
  • 0 Votes
    2 Posts
    2k Views
    yariplusY
    in the client, those values are stored in ajaxify.data For your jQuery, you don't append a closing tag, it does that automatically. When you want to insert the element into the div, you need to use appendTo(). Also, unless your label has additional data, I recommend using html() instead of text(). Here's a fiddle. I also added an ID to the new label so it isn't added more than once. https://jsfiddle.net/bdLgsj7p/