Skip to content

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

Solved Configure
8 2 1.6k 1
  • 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
  • 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?

    @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?

  • 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.

  • 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 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.

  • @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

  • @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? Support 💗 Sudonix with a coffee
If your organisation needs deeper expertise around infrastructure, security, or technology leadership, learn more about Phenomlab Ltd. Many of the deeper technical guides behind Sudonix are published there.

Related Topics
  • 4 Votes
    3 Posts
    366 Views
    thanks @DownPW ! this is definitely very helpful.
  • Upgrade issues

    Solved Configure nodebb
    2
    1
    2 Votes
    2 Posts
    928 Views
    Use this code git fetch # Grab the latest code from the NodeBB repository git checkout v3.x git reset --hard origin/v3.x And you will have the latest version without specifying it https://docs.nodebb.org/configuring/upgrade/
  • Following the API docs but its not clear ...

    Solved Customisation api nodebb
    8
    2 Votes
    8 Posts
    2k Views
    @Panda you’d be surprised. If you consider that you’d need to use the API to be able to populate a WordPress widget for example (which in turn would of course be PHP), taking this route is still immensely popular.
  • Nodebb design

    Solved General nodebb
    2
    1 Votes
    2 Posts
    949 Views
    @Panda said in Nodebb design: One negative is not being so good for SEO as more Server side rendered forums, if web crawlers dont run the JS to read the forum. From recollection, Google and Bing have the capability to read and process JS, although it’s not in the same manner as a physical person will consume content on a page. It will be seen as plain text, but will be indexed. However, it’s important to note that Yandex and Baidu will not render JS, although seeing as Google has a 90% share of the content available on the web in terms of indexing, this isn’t something you’ll likely lose sleep over. @Panda said in Nodebb design: The “write api” is preferred for server-to-server interactions. This is mostly based around overall security - you won’t typically want a client machine changing database elements or altering data. This is why you have “client-side” which could be DOM manipulation etc, and “server-side” which performs more complex operations as it can communicate directly with the database whereas the client cannot (and if it can, then you have a serious security flaw). Reading from the API is perfectly acceptable on the client-side, but not being able to write. A paradigm here would be something like SNMP. This protocol exists as a UDP (UDP is very efficient, as it is “fire and forget” and does not wait for a response like TCP does) based service which reads performance data from a remote source, thus enabling an application to parse that data for use in a monitoring application. In all cases, SNMP access should be “RO” (Read Only) and not RW (Read Write). It is completely feasible to assume complete control over a firewall for example by having RW access to SNMP and then exposing it to the entire internet with a weak passphrase. You wouldn’t do it (at least, I hope you wouldn’t) and the same ethic applies to server-side rendering and the execution of commands.
  • nodebb loading emojis

    Solved Configure nodebb emojis
    16
    1
    1 Votes
    16 Posts
    3k Views
    @DownPW sure. Let me have a look at this in more detail. I know nginx plus has extensive support for this, but it’s not impossible to get somewhere near acceptable with the standard version. You might be better off handling this at the Cloudflare level given that it sits in between the requesting client and your server.
  • Post Style View

    Solved Customisation post style sudonix nodebb
    67
    2
    18 Votes
    67 Posts
    21k Views
    @cagatay Just add margin-left on the element like @phenomlab said to you : topic [component="post/parent"] { margin-left: 10px; } [image: 1669191112290-aa08c62b-4223-4cba-8c0f-c73d50474c0d-image.png] Maybe @phenomlab have a better way
  • Recent Cards plugin customization

    Solved Customisation nodebb
    21
    1
    13 Votes
    21 Posts
    8k Views
    @pobojmoks that’s easily done by modifying the code provided here so that it targets background rather than border In essence, the below should work $(document).ready(function() { $(window).on('action:ajaxify.end', function(data) { $('.recent-card-container').each(function(i) { var dataId = $(this).attr("data-cid"); var color = $('[role="presentation"]', this).css("background-color"); console.log("data-cid " + dataId + " is " + color); $('[data-cid="' + dataId + '"] .recent-card').attr("style", "background-color: " + color); }); }); });
  • [NODEBB] Help for my custom CSS

    Solved Customisation nodebb css bugfix
    237
    49 Votes
    237 Posts
    98k Views
    @baris said: You should change your selectors so it doesn’t look at the entire document. You probably only want to apply fancybox to stuff inside the #content element which is what changes when the user navigates around the page. So use $('#content a').... for your selectors then the forum logo in the header won’t be selected. I modified the JS Fancybox code now and this code and it seem better // --------------------------------------------- // Fancybox Media Reader (Without Website Logo) // --------------------------------------------- if (top.location.pathname !== '/login') { $(window).on('action:posts.loaded', function(data) { console.log("Polling DOM for lazyLoaded images to apply Fancybox"); $(document).ready(function() { $('#content a').not('.forum-logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); }); }); }); } if (top.location.pathname !== '/login') { $(document).ready(function() { $(window).on('action:ajaxify.end', function(data) { $('#content a').not('.logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); data.preventDefault() // Strip out the images contained inside blockquotes as this looks nasty :) $('#content blockquote img').remove(); }); Fancybox.bind( '#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]', { groupAll: true, } ); }); }); } // Chat fancybox - fires when chat module loaded and AJAX calls new chat $(document).ready(function() { $(window).on('action:chat.loaded', function(data) { // >>> Se limiter au contenu principal uniquement <<< $('#content img').not('.forum-logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { var newHref = $(this).attr("src"); $(this).wrap("<a class='fancybox' href='" + newHref + "'/>"); $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); data.preventDefault(); // Strip out the images contained inside blockquotes as this looks nasty :) $('#content blockquote img').remove(); }); Fancybox.bind( '#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]', { groupAll: true, } ); }); }); For the logo, I must use overflow: visible !important; on [component="brand/logo"] /* --- Logo --- */ [component="brand/logo"] { max-height: 50px; width: auto; height: auto; max-width: 100%; display: block; object-fit: contain; object-position: left center; overflow: visible !important; } Better result !!