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
    8 Posts
    3k Views
    C
    redactor composer javascript is almost a year out of date, will they update it?
  • Overriding Admin tpl's From A Plugin?

    5
    0 Votes
    5 Posts
    2k Views
    D
    any chance to share the repository? thanks in advance
  • 9 Votes
    137 Posts
    133k Views
    julianJ
    That might be a nice workaround, although slightly nefarious in spirit That said, I don't use Pushbullet anymore, as I no longer support them since they went pro. Happy to hand over the reigns to somebody else if a volunteer is available
  • Is it possible to access the user ID via a widget?

    2
    0 Votes
    2 Posts
    1k Views
    yariplusY
    The logged in user should be app.user.uid, if you are visiting a user, the id should be ajaxify.data.theirid Here's a small script for you. <span id="myid" style="display:none;">My uid: </span> <span id="theirid" style="display:none;">Their uid: </span> <script> if (app.user.uid) { $('#myid').append(app.user.uid) $('#myid').show() } if (ajaxify.data.theirid) { $('#theirid').append(ajaxify.data.theirid) $('#theirid').show() } </script>
  • [nodebb-plugin-smoothshorts] Short URLs built in...

    15
    5 Votes
    15 Posts
    7k Views
    P
    Unfortunately I don't think @rbeer has been around awhile. This might need to be forked to our community repository to keep it alive, sadly
  • Naming convention for socket.io message?

    4
    0 Votes
    4 Posts
    4k Views
    Bruce LeeB
    Thanks @baris and @PitaJ for the nice info, I will try it out.
  • Is there an option that users can hide a category from the forum?

    5
    0 Votes
    5 Posts
    2k Views
    M
    @pichalite said in Is there an option that users can hide a category from the forum?: @MJ well... you are trying to do it the harder way. Yes, I know people tell me everyday haha. But maybe are there more people who want an option for choose if they want to see adult content or not.
  • State of available plugins

    7
    0 Votes
    7 Posts
    3k Views
    P
    @PitaJ said in State of available plugins: ./nodebb reset plugin="nodebb-plugin-im-broken" that's not how you disable a plugin... ./nodebb reset -p nodebb-plugin-im-broken
  • [nodebb-plugin-markdown-toc] table of content

    4
    0 Votes
    4 Posts
    3k Views
    N
    I love this plugin, but I noticed one deadly problem. Misplaced characters can break the forum. The plugin looks for markdown header codes like http://i.imgur.com/b39Sg5u.jpg and creates a toc...however if the codes are wrong http://i.imgur.com/FPWyedz.jpg the first line here has a period infront of the # the toc function will break. It seems the creator is gone so I hope someone else will fix this bug.
  • [nodebb-plugin-events]

    3
    0 Votes
    3 Posts
    2k Views
    P
    @psychobunny You make me sad all the time.
  • redirect post to url

    2
    0 Votes
    2 Posts
    1k Views
    PitaJP
    @chrismccoy you'd have to make a plugin and override the express route to be a redirect.
  • Gallery Plugin.. How to Use it?

    2
    0 Votes
    2 Posts
    1k Views
    Muchsin AssegafM
    Re: [nodebb-plugin-gallery] Lightbox Gallery Plugin It seems the plugin is not working for me. So when creating new topic/reply and I click "picture" in the composer, the image will not open in a lightbox.. I need to go back and forth to see another image And if by "upload image", the image will open in a lightbox, but at first it will open in a new tab. I install the plugin via ACP. Thanks
  • invalid csrf token

    6
    0 Votes
    6 Posts
    2k Views
    Bruce LeeB
    Thanks @yariplus and @julian for the help, I made a careless mistake. The button was requesting using wrong method, ie. PUT instead of POST.
  • Google SSO issues - invalid username

    7
    0 Votes
    7 Posts
    2k Views
    JenklerJ
    Cool Must have been a hick up here then
  • [nodebb-plugin-session-sharing] Logins other user

    2
    0 Votes
    2 Posts
    1k Views
    yariplusY
    Looking at the code, it appears the plugin will not automatically associate your token's id with an existing user's uid when they overlap (likely for security reasons). It checks the database hash 'appId:uid' for the association. The hash fields are your app's id and the value is the associated uid. You should be able to manually create an association with an existing user by editing that hash. I think the mongo command would be like this: db.objects.update({ _key: "appId:uid" }, { $set: { "13": "13" } })
  • 0 Votes
    6 Posts
    3k Views
    barisB
    Should be fixed on master.
  • Creating a more advanced plugin!

    5
    0 Votes
    5 Posts
    2k Views
    JenklerJ
    sure, I will speak with my customer and fix a spec of what should be done
  • [nodebb-widget-lunbo] hello nodebb ~

    5
    3 Votes
    5 Posts
    3k Views
    刘开
    @psychobunny i have changed the theme a lot since then, check careerfore to visit our site.
  • About a plugin to clean and tidy our database

    8
    1 Votes
    8 Posts
    3k Views
    SuperMikeS
    @jiangcaiyang said in About a plugin to clean and tidy our database: I could not delete certain user from our chat room whereas I can when adding user to chat room. I faced the same problem when upgrade to 1.10. But I could delete user after create a new room. So I think it must be caused by the consistence of data in DB.
  • [nodebb-script-rss] Embed an RSS feed from your blog as a widget

    10
    3 Votes
    10 Posts
    5k Views
    JenklerJ
    Here is my version of it. Check out the result on UEX start page. Feel free to use Google translate <style> #nyheter .date { float: right; } #nyheter img { display: block; height: auto; margin: 10px 0px; max-width: 100%; } #nyheter iframe { max-width: 100%; } </style> <table id="nyheter" class="table table-striped"></table> <script type="text/javascript"> var rss_urls = [ 'http://www.fz.se/core/rss/fznews_rss20.xml', 'http://loading.se/rss.php?type=news', 'http://www.eurogamer.se/?format=rss&type=news', 'http://www.gamereactor.se/rss/rss.php?texttype=4' ]; var news_items = []; var protocol = document.location.protocol === "file:" ? "http:" : document.location.protocol; for (var i = 0; i < rss_urls.length; i++) { var rss_url = rss_urls[i]; jQuery.ajax({ type: "GET", url: protocol+'//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(rss_url), dataType: 'json', success: function(data) { values = data.responseData.feed.entries; var list = '', count = 0; jQuery.each(values, function(index, item) { if (count >= 5) { return; } var news_item = {}; var pubDate = item.publishedDate; var date = new Date(pubDate); var month = date.getMonth < 10 ? date.getMonth() : "0" + date.getMonth(); news_item.date = date.getFullYear() + "-" + month + "-" + date.getDate() + " " + date.getHours() + ":" + date.getHours(); news_item.datetime = date.getTime(); news_item.link = item.link; news_item.title = item.title; news_item.content = item.content; news_items.push(news_item); count++; }); update_table(); } }); } function update_table() { news_items.sort(function(a, b) { var keyA = new Date(a.datetime), keyB = new Date(b.datetime); // Compare the 2 dates if (keyA < keyB) return 1; if (keyA > keyB) return -1; return 0; }); var list = ""; for (var i = 0; i < news_items.length; i++) { var item = news_items[i]; list += "<tr><td><a href='" + item.link + "' target='_blank'>" + item.title + "</a><span class='date'''>" + item.date + "</span> <br/> <span>" + item.content + "</span><br/></td></tr>"; } jQuery('#nyheter').html(list); } </script> Sharing is caring ....