Skip to content

Upgrade to NodeBB v3? 2BB or not 2BB, that is the question!

Solved Configure
  • I upgraded to NodeBB v3 this week and have to be honest, so far haven’t notice much difference, except for some new problems in Admin panel sidebar!
    I actually wondered after, if I’d done it too soon and should have waited!

    I see people writing there are big changes. NodeBB team the v3 release post said there were too many improvements to list.
    So now I’ve done it I would like to know reasons why it was worth doing 🙂

    @phenomlab You wrote on the NodeBB forum ‘this upgrade is revolutionary. I’ve been playing with replicated (and really stale) data for so long’
    Can you explain what this means? What has changed in relation to ‘stale data’?
    Specifically what does the term replicated data mean, and what is different now?

  • Pandaundefined Panda has marked this topic as solved on
  • @Panda said in Upgrade to NodeBB v3? 2BB or not 2BB, that is the question!:

    You wrote on the NodeBB forum ‘this upgrade is revolutionary. I’ve been playing with replicated (and really stale) data for so long’
    Can you explain what this means? What has changed in relation to ‘stale data’?
    Specifically what does the term replicated data mean, and what is different now?

    That statement about being revolutionary is factual in the sense that the 2.x train of NodeBB used bootstrap v3 whereas the V3 train uses bootstrap v5. This isn’t feature creep - it’s a major change, and whilst not all functionality is obvious to the end user, the changes required under the bonnet are huge - almost a rewrite. The revolutionary part refers to the ability to extend the core even further than was possible before.

    My reference to replicated data meant I had taken a copy of the production database and upgraded my development environment based on that. The comment about stale data is in relation to an older copy of a production database which of course was not synchronised with the live version (which at the time was still running v2). Playing with stale data of course doesn’t give you a true picture of what your forum will look like unless you regularly refresh the development database.

    In short, the difference between the two versions of NodeBB is huge. You only need to look at the github commit log to see how much time and effort has gone into the V3 release.

    Lastly, you say you can’t see any difference - are you using Persona still, or Harmony ? The former is being sunset, so harmony is where all of the changes are taking place, which might be the source of confusion.

  • Ah, will try changing Theme to Harmony!
    Edit: Thats fixed my problems with Admin sidebar!

  • Just done it, can see many changes!
    However, my newly created custom widget doesnt show now.
    How about the unline Users pluggin, will that need reinstalling or should it carry over?

  • @Panda when you change themes, the widget positions are all reset. You just need to put them back to where you’d like them.

  • @Panda said in Upgrade to NodeBB v3? 2BB or not 2BB, that is the question!:

    How about the unline Users pluggin, will that need reinstalling or should it carry over?

    Plugins aren’t uninstalled unless you actually remove them, so no issues there.

  • @phenomlab yes my new Widget wasnt working but it had moved to ‘Draft Zone’ !
    And the Online Users HTML had moved to Draft too. So although thats a plugin it has Widget like element and stopped working on the Theme change

  • @Panda said in Upgrade to NodeBB v3? 2BB or not 2BB, that is the question!:

    So although thats a plugin it has Widget like element and stopped working on the Theme change

    Which is normal based on the widgets being reset when you change themes.


Did this solution help you?
Did you find the suggested solution useful? Why not buy me a coffee? It's a nice gesture, and a great way to show your appreciation 💗

  • Email validation NodeBB

    Bugs
    21
    3 Votes
    21 Posts
    894 Views

    @Panda said in Email validation NodeBB:

    Did you configure that as a custom change to the usual quote icon. How do you do that?
    I notice on NodeBB site its a solid blue quotes

    Yes, I changed it. NodeBB by default users the free font awesome library whereas I use the pro (paid) version SDK have access to a wider set of icons, and at different thicknesses etc. The change of colour is just simple CSS.

  • NodeBB v3 Android Problem

    Solved Configure
    4
    4 Votes
    4 Posts
    192 Views

    thank you fixed.

  • 0 Votes
    5 Posts
    198 Views

    @mventures Yes, exactly. The other icon will restart NodeBB whilst the first icon I referenced will rebuild (recompile) it.

    The huge strength of NodeBB over Flarum (for example) is that the code is precompiled, and called once at boot. PHP’s code has to repeatedly reload code from source making it much slower.

  • 8 Votes
    35 Posts
    2k Views

    @cagatay No, you can ignore that.

  • 5 Votes
    13 Posts
    506 Views
    'use strict'; const winston = require('winston'); const user = require('../user'); const notifications = require('../notifications'); const sockets = require('../socket.io'); const plugins = require('../plugins'); const meta = require('../meta'); module.exports = function (Messaging) { Messaging.notifyQueue = {}; // Only used to notify a user of a new chat message, see Messaging.notifyUser Messaging.notifyUsersInRoom = async (fromUid, roomId, messageObj) => { let uids = await Messaging.getUidsInRoom(roomId, 0, -1); uids = await user.blocks.filterUids(fromUid, uids); let data = { roomId: roomId, fromUid: fromUid, message: messageObj, uids: uids, }; data = await plugins.hooks.fire('filter:messaging.notify', data); if (!data || !data.uids || !data.uids.length) { return; } uids = data.uids; uids.forEach((uid) => { data.self = parseInt(uid, 10) === parseInt(fromUid, 10) ? 1 : 0; Messaging.pushUnreadCount(uid); sockets.in(`uid_${uid}`).emit('event:chats.receive', data); }); if (messageObj.system) { return; } // Delayed notifications let queueObj = Messaging.notifyQueue[`${fromUid}:${roomId}`]; if (queueObj) { queueObj.message.content += `\n${messageObj.content}`; clearTimeout(queueObj.timeout); } else { queueObj = { message: messageObj, }; Messaging.notifyQueue[`${fromUid}:${roomId}`] = queueObj; } queueObj.timeout = setTimeout(async () => { try { await sendNotifications(fromUid, uids, roomId, queueObj.message); } catch (err) { winston.error(`[messaging/notifications] Unabled to send notification\n${err.stack}`); } }, meta.config.notificationSendDelay * 1000); }; async function sendNotifications(fromuid, uids, roomId, messageObj) { const isOnline = await user.isOnline(uids); uids = uids.filter((uid, index) => !isOnline[index] && parseInt(fromuid, 10) !== parseInt(uid, 10)); if (!uids.length) { return; } if (roomId != 11) { // 5 Is the ID of the ID of the global chat room. Messaging.getUidsInRoom(roomId, 0, -1); // Proceed as normal. } else { user.getUidsFromSet('users:online', 0, -1); // Only notify online users. } const { displayname } = messageObj.fromUser; const isGroupChat = await Messaging.isGroupChat(roomId); const notification = await notifications.create({ type: isGroupChat ? 'new-group-chat' : 'new-chat', subject: `[[email:notif.chat.subject, ${displayname}]]`, bodyShort: `[[notifications:new_message_from, ${displayname}]]`, bodyLong: messageObj.content, nid: `chat_${fromuid}_${roomId}`, from: fromuid, path: `/chats/${messageObj.roomId}`, }); delete Messaging.notifyQueue[`${fromuid}:${roomId}`]; notifications.push(notification, uids); } };
  • 6 Votes
    10 Posts
    383 Views

    @phenomlab yes it caused a problem for mobile users.
    thank you for helping …

  • 0 Votes
    5 Posts
    393 Views

    @qwinter this particular site uses the code I wrote if you want to see it in action. It’s a information and intelligence gatherer I designed for collecting various information security articles from around the globe and consolidating them in one place.

    Essentially, each “post” is in fact generated by the script, and the NodeBB API.

    https://hostrisk.com/

  • Iframely (Nodebb)

    Solved Configure
    40
    4 Votes
    40 Posts
    2k Views

    @DownPW This is now resolved. The issue was an incorrect URL specified in the Nodebb plugin. I’ve corrected this, and now it works as intended.