Skip to content

[NODEBB] Help for my custom CSS

Solved Customisation
258 5 168.0k 3
  • wrote on last edited by DownPW

    @phenomlab

    the trick is to know which plugin is in question!!

  • @phenomlab

    the trick is to know which plugin is in question!!

    wrote on last edited by

    @DownPW sorry. I meant the imgur plugin author

  • @DownPW sorry. I meant the imgur plugin author

    wrote on last edited by DownPW

    @phenomlab

    hmmm I don’t thinks so because I have the same problem on NO PRODUCTION VM and I have this bug too without nodebb-imgur-plugin.

    I have test with a local url in public nodebb folder and it’s the same too

    I test to desactivate all plugin one by one for see at the moment

  • @phenomlab

    hmmm I don’t thinks so because I have the same problem on NO PRODUCTION VM and I have this bug too without nodebb-imgur-plugin.

    I have test with a local url in public nodebb folder and it’s the same too

    I test to desactivate all plugin one by one for see at the moment

    wrote on last edited by

    @DownPW let me know when your development server is available tomorrow and I’ll take a look at that code I provided previously

  • wrote on last edited by

    no problem I’m at home tomorrow all the day

    I’ll let you know if I find

  • wrote on last edited by DownPW

    @phenomlab

    I think it’s a nodebb issue, because with only one plugin and one theme activate :

    • nodebb-plugin-composer-default@9.1.0 (installed, enabled)
    • nodebb-theme-persona@12.1.1 (installed, enabled)

    Custom CSS, custom JS, custom Header and all custom widgets are disable…

    Result it’s the same, I have this bug.

    On your dev system, can you test to add a logo for a catégorie, delete the icon and test a new topic in this category ?

    I think you will have the same result.

    Let me know if you test too !

  • @phenomlab

    I think it’s a nodebb issue, because with only one plugin and one theme activate :

    • nodebb-plugin-composer-default@9.1.0 (installed, enabled)
    • nodebb-theme-persona@12.1.1 (installed, enabled)

    Custom CSS, custom JS, custom Header and all custom widgets are disable…

    Result it’s the same, I have this bug.

    On your dev system, can you test to add a logo for a catégorie, delete the icon and test a new topic in this category ?

    I think you will have the same result.

    Let me know if you test too !

    wrote on last edited by

    @DownPW did you delete the icon ? I’m wondering if this creates an orphaned reference to an icon which of course can’t be read.

  • wrote on last edited by DownPW

    yes off course I delete it
    because if Idon’t delete the icon, she appears on bubble 🙂

    Open issue here:

    https://github.com/NodeBB/NodeBB/issues/10896

    If I not delete icon, she’s appear but not the image :

    3b93ffe1-e68b-4f78-aa67-fba0f1351c24-image.png

  • wrote on last edited by

    The issue is closed @phenomlab

    It’s a nodebb bug. Fixed in 2.5.3 milestone 😉

  • The issue is closed @phenomlab

    It’s a nodebb bug. Fixed in 2.5.3 milestone 😉

    wrote on last edited by

    @DownPW Yes, I saw that. Caused by regression from what I see.

    Thanks

  • @phenomlab

    JS code seems not working but…

    I see on ACP, the image of category is uploaded to imgur :

    7ca2e670-4928-43d9-b1fd-530fae97c72a-image.png

    and I see this on dev console :

    b2321b44-7a73-4510-97b2-57fa73a096c9-image.png

    The url seems to not be encoded correctly, I don’t know why ???

    If I change manually the URL in the dev console, it’s OK:

    e7b51ef6-6b5f-48a7-9ed0-4d7e27d299fe-image.png

    d09b152a-a5fd-4243-b4d8-4d9287b07d47-image.png

    wrote on last edited by

    @DownPW said in [NODEBB] Help for my custom CSS:

    JS code seems not working but…

    Sorry, that should have been something like this (obviously modify the source and replacement)

    $(document).ready(function() {
        $(window).on('action:ajaxify.end', function(data) {
            $(".row").find($(".fa")).removeClass('fa-fw fa-comments-o').addClass('fa-check-to-slot');
        });
    });
    
  • wrote on last edited by DownPW

    hi @phenomlab

    on v2.x , I have user online widget in my home page and I can center the widget like this :

    4df43aa7-122e-4696-b8e0-72fa48280350-image.png

    c6409e47-96b9-473b-8fe0-28ec73b050fa-image.png

    because we have a div by default on the widget

    I can’t do the same on v3.x

    Any idea how to get the same result ?

    Thanks Dude

  • hi @phenomlab

    on v2.x , I have user online widget in my home page and I can center the widget like this :

    4df43aa7-122e-4696-b8e0-72fa48280350-image.png

    c6409e47-96b9-473b-8fe0-28ec73b050fa-image.png

    because we have a div by default on the widget

    I can’t do the same on v3.x

    Any idea how to get the same result ?

    Thanks Dude

    wrote on last edited by

    @DownPW I’d give the widget itself an id and then add custom css to that

    653aad37-edd8-4dee-a212-74a9249ea722-image.png

    div#onlineusers {
        left: 0;
        right: 0;
        margin: 0 auto;
        position: relative;
    }
    

    ffc39563-255e-488d-b325-f866ae7694c4-image.png

  • wrote on last edited by

    @phenomlab

    Yep, it’s a good idea thanks to you but I’d like to display it without div card-header and body like the first screen

  • @phenomlab

    Yep, it’s a good idea thanks to you but I’d like to display it without div card-header and body like the first screen

    wrote on last edited by phenomlab

    @DownPW In that case, change the container code to

    9a2d4511-bf9b-42d0-8021-b6d47ec4ae1c-image.png

    <div id="onlineusers">{{body}}</div>
    

    And same CSS class

    div#onlineusers {
        justify-content: center;
        display: flex;
    }
    

    Then add padding and margin to suit

  • wrote on last edited by phenomlab

    Perfect my friend 😉

  • wrote on last edited by

    Hello mark 🙂

    I wanted for test purposes, to put the welcome message in the Brand menu in the header widget.

    I commented in the footer widget the corresponding code then I added it in my brand header widget:

    <span id="thisuser" class="getUsername">, &nbsp;<a href="/me"><span class="username">DownPW</span></a></span>
    

    I commented out the old CSS to add the new:

    /* Welcome Message Username on Header */
    span#thisuser {
         margin-top: 0.7rem;
         margin-left: 2px;
         margin-right:-2px;
         font-size: .875rem;
         line-height: 1.4rem;
         font-weight: 500;
    }
    

    So far everything is fine, the result is correct :

    4c4eedf9-e511-4e3c-acb8-0049035729a6-image.png

    But as soon as I select links in the left sidebar (home, recent, etc …), the message is added and displayed as many times as I select a link .

    theme swatch menu.gif

    Did I miss something or do you have an idea to solve this bug?

    Thanks my friend 😉

  • Hello mark 🙂

    I wanted for test purposes, to put the welcome message in the Brand menu in the header widget.

    I commented in the footer widget the corresponding code then I added it in my brand header widget:

    <span id="thisuser" class="getUsername">, &nbsp;<a href="/me"><span class="username">DownPW</span></a></span>
    

    I commented out the old CSS to add the new:

    /* Welcome Message Username on Header */
    span#thisuser {
         margin-top: 0.7rem;
         margin-left: 2px;
         margin-right:-2px;
         font-size: .875rem;
         line-height: 1.4rem;
         font-weight: 500;
    }
    

    So far everything is fine, the result is correct :

    4c4eedf9-e511-4e3c-acb8-0049035729a6-image.png

    But as soon as I select links in the left sidebar (home, recent, etc …), the message is added and displayed as many times as I select a link .

    theme swatch menu.gif

    Did I miss something or do you have an idea to solve this bug?

    Thanks my friend 😉

    wrote on last edited by phenomlab

    @DownPW sorry for the delay. That is being caused by ajax which is adding another element each time data is being called. I’d need to see the entire code block where you are adding this to confirm, but from the video you provided, that’s typically caused by the above.

    You only need that specific function to run once at page load - it’s running each time data is being requested which explains the additions.

  • wrote on last edited by DownPW

    it’s just the brand HTML header widget, just add this code to him

    <span id="thisuser" class="getUsername">,  <a href="/me"><span class="username">DownPW</span></a></span>]
    

    What do you want ? The HTML header widget on welcome message JS code ?

    EDIT : All code in PM

  • it’s just the brand HTML header widget, just add this code to him

    <span id="thisuser" class="getUsername">,  <a href="/me"><span class="username">DownPW</span></a></span>]
    

    What do you want ? The HTML header widget on welcome message JS code ?

    EDIT : All code in PM

    wrote on last edited by

    @DownPW thanks. Can you try a theory for me and change that code so it looks like the below

    <span id="thisuserbrand" class="getUsername">,  <a href="/me"><span class="username">DownPW</span></a></span>
    

    I expect this to return nothing, which will prove my theory around the Ajax calls.


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
  • What’s going on with NodeBB?

    Performance nodebb script die
    20
    8 Votes
    20 Posts
    5k Views
    phenomlab
    @cagatay The most reliable way to upgrade Node.js on Ubuntu depends on how you originally installed it. Method 1: Using NVM (Recommended) If you already use Node Version Manager (NVM), upgrading is simple. NVM allows you to keep both versions and switch between them if needed. Install Node 22: nvm install 22 Switch to Node 22: nvm use 22 Set it as your default: nvm alias default 22 Verify the change: node -v Method 2: Using NodeSource (PPA) If you installed Node.js via apt using the NodeSource repository, you need to update the repository script to point to the new version. Remove the old NodeSource list (optional but cleaner): sudo rm /etc/apt/sources.list.d/nodesource.list Download and run the NodeSource setup script for Node 22: curl -fsSL [https://deb.nodesource.com/setup_22.x](https://deb.nodesource.com/setup_22.x) | sudo -E bash - Install/Upgrade Node.js: sudo apt-get install -y nodejs Verify the installation: node -v Method 3: Using the ‘n’ Package If you have npm installed, you can use the n interactive manager. Clear the npm cache: sudo npm cache clean -f Install the ‘n’ helper: sudo npm install -g n Install Node 22: sudo n 22 Update your shell: hash -r Troubleshooting Permission Denied: If you see permission errors using Method 2 or 3, ensure you are using sudo. Path Issues: If node -v still shows version 20 after upgrading via NVM, restart your terminal or run source ~/.bashrc. Conflicts: Avoid mixing these methods. If you switch from apt to nvm, it is best to sudo apt remove nodejs first to avoid path conflicts.
  • Bug in Nodebb route when clicking title

    Moved Configure nodebb
    3
    2 Votes
    3 Posts
    1k Views
    Panda
    Ah silly me, thanks for finding that!
  • SEO and Nodebb

    Performance nodebb seo
    2
    2 Votes
    2 Posts
    2k Views
    phenomlab
    @Panda It’s the best it’s ever been to be honest. I’ve used a myriad of systems in the past - most notably, WordPress, and then Flarum (which for SEO, was absolutely dire - they never even had SEO out of the box, and relied on a third party extension to do it), and NodeBB easily fares the best - see below example https://www.google.com/search?q=site%3Asudonix.org&oq=site%3Asudonix.org&aqs=chrome..69i57j69i60j69i58j69i60l2.9039j0j3&sourceid=chrome&ie=UTF-8#ip=1 However, this was not without significant effort on my part once I’d migrated from COM to ORG - see below posts https://community.nodebb.org/topic/17286/google-crawl-error-after-site-migration/17?_=1688461250365 And also https://support.google.com/webmasters/thread/221027803?hl=en&msgid=221464164 It was painful to say the least - as it turns out, there was an issue in NodeBB core that prevented spiders from getting to content, which as far as I understand, is now fixed. SEO in itself is a dark art - a black box that nobody really fully understands, and it’s essentially going to boil down to one thing - “content”. Google’s algorithm for indexing has also changed dramatically over the years. They only now crawl content that has value, so if it believes that your site has nothing to offer, it will simply skip it.
  • Adding fileWrite to nodebb code

    Solved Configure nodebb
    16
    1
    5 Votes
    16 Posts
    5k Views
    phenomlab
    @eveh this might be a question for the NodeBB Devs themselves. In all honesty, I’m not entirely sure without having to research this myself.
  • Link vs Refresh

    Solved Customisation nodebb blog customization
    20
    2
    8 Votes
    20 Posts
    7k Views
    phenomlab
    @pobojmoks Do you see any errors being reported in the console ? At first guess (without seeing the actual code or the site itself), I’d say that this is AJAX callback related
  • 4 Votes
    8 Posts
    5k Views
    phenomlab
    @DownPW done
  • [NODEBB] CSS Style Sheets SelectBox

    Locked Solved Customisation css
    112
    24 Votes
    112 Posts
    63k Views
    phenomlab
    @DownPW as discussed in PM Seems to have been solved with the new JS code that you added allowing the version CSS file change!! Cache problem therefore with the JS of the Switcher theme Based on this, I will close this thread and reference https://sudonix.com/topic/207/nodebb-help-for-my-custom-css/27
  • CSS Help on my Flarum

    Solved Customisation
    5
    2
    2 Votes
    5 Posts
    3k Views
    phenomlab
    @mike-jones Yes, you’ll typically see this type of behaviour if there is another style that has higher priority in the sense that yours will be overridden. Using !important will override the higher preference, but should be used sparingly rather than everywhere.