[nodebb-plugin-ns-custom-fields] NS Custom Fields

  • Community Rep

    Looks cool.

    @Sergey Same issue for me, 0.7

  • Plugin & Theme Dev

    @Sergey thanks for report and participating in testing of the plugin on It's earlier stages 😉 I will fix it today. I think I know that is the problem.

  • Community Rep

    @Nicolas Consider changing

    customFields = [];


    customFields = params.userData.customFields || [];

    So that you don't overwrite customFields added by other plugins.

  • Last error I found in : nodebb-plugin-ns-custom-fields/public/js/fields-edit.js

    line 61:
    - .val(content[fieldEntity.key]);
    + .val(content && content[fieldEntity.key]);

    Now it works as expected. Thanks @Nicolas ! 👍

  • @yariplus said:

    customFields = params.userData.customFields || [];

    good catch. Thanks!

  • Small suggestion, check if Custom Field value is url and replace it with link.


    4: var urlRegex = /(((https?:\/\/)|(www\.))[^\s]+)/i;
    26:  if (result.data) { 
                var i = 0, len = result.fields.length, fieldMeta, customFields = params.userData.customFields || [];
                for (i; i < len; ++i) {
                    fieldMeta = result.fields[i];
                    var value = result.data[fieldMeta.key];
                    if (value) {
                            name : fieldMeta.name,
                            value: value.match(urlRegex)? urlify(value) : value
                params.userData.customFields = customFields;
    39:   }            
    53:     function urlify(text) {
            return text.replace(urlRegex, function(url,b,c) {
                var url2 = (c == 'www.') ?  'http://' +url : url;
                return '<a href="' +url2+ '" target="_blank">' + url + '</a>';
    58:  }
  • Plugin & Theme Dev

    For such task, will be dedicated formatters.
    8-th list item in TODO list 😉

  • Can you also add those custom fields in post data, so we can display them somewhere under user's avatar or something like that.

  • Plugin & Theme Dev

    Critical fixes are made, also plugin is published to Node Package Manager.
    First post is updated, same as documentation on GitHub.

  • Plugin & Theme Dev

    @Sergey sure, but it will be optional (You should toggle it in ACP)

  • Admin

    Nice 🙂 I'm sure there is a way we can add something to core without having you required to edit the theme manually. What if it was a widget area in the profile page? I'd accept that PR if you were willing to change how this works

  • If this works and I'll try it tommorow you sir are my hero. I was looking forward this feature since the begining and didn't had the time to jump in.

  • Plugin & Theme Dev

    New version 1.1.0 has been released.
    Now you have ability to populate Topic View with custom fields. Also this feature is optional, so Settings was introduced also.

    @psychobunny I'm not familiar with widgets in NodeBB. Can you collaborate and give me some example? (link on repo, benefits, etc.)

  • Plugin & Theme Dev

    @psychobunny Also I'm going to create another plugin, and I need this space in user's profile. Do you have any suggestions how I can reach it without manual editing also? 😉


  • Plugin & Theme Dev

    For example, render numeric values under avatar as metrics or accountStats

    						<div class="text-center account-stats">
    							<div class="inline-block text-center">
    								<span class="human-readable-number" title="{reputation}">{reputation}</span>
    								<span class="account-bio-label">[[global:reputation]]</span>
    							<div class="inline-block text-center">
    								<span class="human-readable-number" title="{postcount}">{postcount}</span>
    								<span class="account-bio-label">[[global:posts]]</span>
    							<div class="inline-block text-center">
    								<span class="human-readable-number" title="{profileviews}">{profileviews}</span>
    								<span class="account-bio-label">[[user:profile_views]]</span>

    Change on:

    				<!-- BEGIN metrics -->
    							<div class="inline-block text-center">
    								<span class="human-readable-number" title="{metrics.value}">{metrics.value}</span>
    								<span class="account-bio-label">{metrics.label}</span>
    				<!-- END metrics -->

  • NodeBB 0.7, new version error on startup:

    25/4 07:34 [27825] - error: Error: Cannot find module 'object-assign'

    Sorry, npm install should fix that problem.

  • Community Rep

    @Nicolas said:

    @psychobunny Also I'm going to create another plugin, and I need this space in user's profile. Do you have any suggestions how I can reach it without manual editing also? 😉

    Looks like it's the same problem, that part is tied to the theme, so it would need a widget area or a filter from core.

    I can probably help with the widget areas if needed.

  • Warning in console:
    25/4 11:57 [28225] - warn: [plugins] Callback timed out, hook 'static:app.load' in plugin 'nodebb-plugin-ns-custom-fields'

    I found another problem: Try to edit any user's profile as admin and you will see custom fields populated with admin's data.

  • Plugin & Theme Dev

    I'm still learning NodeBB architecture.
    Seems, socket.uid was a mistake to use as an User Reference.
    I will find another approach to get uid of user profile 😉

  • NodeBB

    socket.uid is the uid of the person making the socket call or 0 if they are not logged in.

Suggested Topics

| |