Skip to content

NodeBB: The global Search option

Solved Configure
5 2 817 1
  • Hi,
    I noticed both on the NodeBB forum, Sudonix forum, and mine also, there is no Search functionality. I would like this very much because I would like people to search for a past answer before asking for a new one. Maybe, I am looking at the wrong place, or do I need to activate it from admin?

  • My apologies! I have found the Search field on NodeBB and your site. I just need to figure out how to get it on my site. Could it be because I have no posts yet?

    @mventures Not quite - it’s because of this

    ff0a9849-5815-4c7a-853a-808fd325a779-image.png

    It’s installed, but not activated by default

    f6280a04-ace2-43a6-8e9a-4614efecba84-image.png

    Every time you install or uninstall a plugin, you need to rebuild NodeBB

    c638615a-4597-41f6-ad32-b552c8433c06-image.png

    f539df98-cb0c-4875-abf4-b61a60333ad5-image.png

    f311a7a0-05b7-4036-820d-85661410369b-image.png

    Confirm, and wait for NodeBB to restart

    bd46bebc-58c6-400a-a3f3-1bd09e17a5b0-image.png

    b1b5263e-f68a-4a34-99b6-5147979fb8af-image.png

    Now go back to your site

    You should see that Search has appeared

    39af2e82-15ec-4add-a758-f422b60c43ba-image.png

    I’ve done all of this for you, so this is for reference.

    Regds

  • My apologies! I have found the Search field on NodeBB and your site. I just need to figure out how to get it on my site. Could it be because I have no posts yet?

  • My apologies! I have found the Search field on NodeBB and your site. I just need to figure out how to get it on my site. Could it be because I have no posts yet?

    @mventures Not quite - it’s because of this

    ff0a9849-5815-4c7a-853a-808fd325a779-image.png

    It’s installed, but not activated by default

    f6280a04-ace2-43a6-8e9a-4614efecba84-image.png

    Every time you install or uninstall a plugin, you need to rebuild NodeBB

    c638615a-4597-41f6-ad32-b552c8433c06-image.png

    f539df98-cb0c-4875-abf4-b61a60333ad5-image.png

    f311a7a0-05b7-4036-820d-85661410369b-image.png

    Confirm, and wait for NodeBB to restart

    bd46bebc-58c6-400a-a3f3-1bd09e17a5b0-image.png

    b1b5263e-f68a-4a34-99b6-5147979fb8af-image.png

    Now go back to your site

    You should see that Search has appeared

    39af2e82-15ec-4add-a758-f422b60c43ba-image.png

    I’ve done all of this for you, so this is for reference.

    Regds

  • phenomlabundefined phenomlab has marked this topic as solved on
  • That’s awesome @phenomlab! Thank you. I can see it 🙂

    What did you mean by, “rebuild NodeBB”? And the whole rebuild happens by just clicking that “recycle” button?

  • That’s awesome @phenomlab! Thank you. I can see it 🙂

    What did you mean by, “rebuild NodeBB”? And the whole rebuild happens by just clicking that “recycle” button?

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


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
  • Interesting Widget code, but can't fetch API

    Solved Customisation nodebb
    26
    2 Votes
    26 Posts
    6k Views
    @Panda said in Interesting Widget code, but can’t fetch API: How did you drop that widget into the post there? I hadnt seen this BSgenerator anywhere on sudonix site, do you use it somewhere already? Yes, here https://sudonix.org/topic/414/corporate-bullshit-generator?_=1687774393044 It’s not a “post” or “topic” in the common sense. It is actually a page in it’s own right and leverages nodebb-plugin-custom-pages. This in turn creates a new “route” which behaves like a page, meaning it is then exposed for widgets. @Panda said in Interesting Widget code, but can’t fetch API: Also can you explain more what you mean by calling the code externally. In my API call example, how would I go about doing that? By this, I mean create all the required code in an external JS file that is reachable by the NodeBB instance - so, in “public” for example - or in my case /public/js. The widget then “calls” that file and because it runs outside of the scope of NodeBB, you just need to return the values to the widget. Hope this makes sense?
  • Smart Widgets

    Solved Configure nodebb
    9
    3 Votes
    9 Posts
    1k Views
    @Panda said in Smart Widgets: So why is that, or conversely why would the function to expose username ever be required, as it seems app.user is already an available global object? It is, yes, but not if you are using it outside of a widget. The function I wrote is also historical and comes from the 2.x train
  • 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.
  • 5 Votes
    13 Posts
    2k 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); } };
  • Top Ranked Forums

    Chitchat nodebb top ranked
    9
    1
    3 Votes
    9 Posts
    2k Views
    The real issue here is that most people consider forums to be “dead” in the sense that nobody uses them anymore, and social media groups have taken their place. Their once dominant stance in the 90’s and early 00’s will never be experienced again, but having said that, there are a number of forums that did in fact survive the social media onslaught, and still enjoy a large user base. Forums tend to be niche. One that immediately sticks out is Reddit - despite looking like it was designed in the 80s, it still has an enormous user base. Another is Stack Overflow, which needs no introduction. The key to any forum is the content it offers, and the more people whom contribute in terms of posting , the more popular and widely respected it becomes as a reliable source of information. Forums are still intensely popular with gamers, alongside those that offer tips on hacking etc.
  • [NodeBB] Import custom Font

    Solved Customisation custom fonts nodebb css
    12
    3 Votes
    12 Posts
    3k Views
    @cagatay you’ll need to define this in the body tag (or another element if you want greater or more granular targets) - for example body { font-family: "Poppins"; font-size: 16px; } Essentially, you use the font-size CSS directive.
  • NodeBB metadata

    Solved Configure nodebb
    4
    2 Votes
    4 Posts
    1k Views
    @phenomlab said in NodeBB metadata: @jac Are you sure ? https://www.google.co.uk/search?q=site%3Astockportcounty.fans&sxsrf=AOaemvLwnaZL-PliU_2dBOg_Eo1pMVhBjg%3A1638982328139&source=hp&ei=uOKwYeatBcOsad3yp7AE&iflsig=ALs-wAMAAAAAYbDwyLBSDcG5XYoFCKwQFhgz94wTxOcV&ved=0ahUKEwjm6dX71NT0AhVDVhoKHV35CUYQ4dUDCAk&uact=5&oq=site%3Astockportcounty.fans&gs_lcp=Cgdnd3Mtd2l6EAM6BAgjECc6CwgAEIAEELEDEIMBOg4ILhCABBCxAxDHARCjAjoRCC4QgAQQsQMQgwEQxwEQowI6BQguEIAEOggIABCABBCxAzoFCAAQgAQ6CAguELEDEIMBOgsILhCABBDHARCvAToICC4QgAQQsQM6BQgAELEDOgsILhCABBDHARDRAzoLCAAQgAQQsQMQyQM6BQgAEJIDUABYySZg0CdoAHAAeACAAW2IAa0NkgEEMjMuMpgBAKABAQ&sclient=gws-wiz Fair enough 🤪🤪.
  • Nodebb Hashtag plugin

    Solved General
    15
    1 Votes
    15 Posts
    3k Views
    @jac Great ! I’ll close this off.