Import plugin for phpbb port for phpnuke

Plugin Development
  • Hey there NodeBB community!

    I'm posting partially to get the word out for an import plugin that I'm working on for phpbb installs in phpnuke and also to request any tips.

    Unfortunately, I can't use the existing phpbb plugin because of how the port for phpnuke mixes the data into phpnuke data in the MySQL database. Regardless, a lot of these importers were incredibly helpful to reference so thank you to all you authors out there (@psychobunny for a lot of them) and to @akhoury for the import plugin.

    As it stands, my plugin is working on my NodeBB install at version 1.7.5 stood up behind nginx on linode. I'm planning to upgrade to 1.10.x or latest after I run my final migration and bbcode to markdown conversion pending investigating to plugin support drop off for newer NodeBB versions (advice here also very welcome).

    Without further adieu, you can find the source code for the import plugin at the following link: nodebb-plugin-import-phpnuke-phpbb

    Looking forward to any feedback!

  • Awesome!! Thanks for sharing your exporter, I'm sure it will help people looking to migrate 🙂

  • Hope so! Seems like there's at least one other site using this port of phpbb. Perhaps more if they cleaned out the attribution footer markup or aren't indexed by google.


Suggested Topics


  • 0 Votes
    3 Posts
    30 Views

    @josef Thank you. I'll give it a try.

  • 0 Votes
    7 Posts
    795 Views

    @pitaj Many thanks for your effort 🙏

    Okay so I just npm link'ed my plugin again so I thought some file will be updated. But they weren't.

    Here is my full source code of libary.js:

    'use strict'; /* NodeBB Basic Plugin Libraries */ const controllers = require('./lib/controllers'); const plugin = {}; /* Third Party Libraries */ const Discord = require("discord.js"); const fs = require("fs"); // Nodebb Discord Bot const config = JSON.parse(fs.readFileSync("./utils/config.json", "utf-8")); var client = new Discord.Client(); let debug = true; plugin.init = function (params, callback, client) { myDebug("nodebb-discord-bot-started"); callback(); }; function myDebug(msg){ if(debug){ console.log(msg); } } module.exports = plugin; 2021-01-12T10:46:19.318Z [4567/4689] - error: Error: ENOENT: no such file or directory, open './utils/config.json' at Object.openSync (fs.js:462:3) at Object.readFileSync (fs.js:364:35) at Object.<anonymous> (/home/ubuntu/nodebb-linked-modules/nodebb-plugin-makesmart-discord-bot/library.js:15:30) at Module._compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.Plugins.requireLibrary (/home/ubuntu/nodebb/src/plugins/index.js:70:39)

    I tried it with path again:

    // Nodebb Discord Bot var configpath = path.join(__dirname, 'utils', 'config.json'); const config = JSON.parse(fs.readFileSync(configpath, "utf-8")); var client = new Discord.Client();

    an suddenly ... it worked! o.O

    2021-01-12T10:51:15.711Z [4567/4765] - info: [api] Adding 2 route(s) to `api/v3/plugins` 2021-01-12T10:51:15.889Z [4567/4765] - info: Routes added 2021-01-12T10:51:15.933Z [4567/4765] - info: NodeBB Ready 2021-01-12T10:51:15.943Z [4567/4765] - info: Enabling 'trust proxy' 2021-01-12T10:51:15.972Z [4567/4765] - info: NodeBB is now listening on: 0.0.0.0:4567

    I think it was really because I ran npm link again. Funny.* I'm sorry. Most of the time, the problem is in front of the computer. 🙄

    But still a strange behavior in my opinion. Well ... Good to know for the future. @PitaJ as mentioned thank you for you effort. 🙏

    For any others having the same issue:

    Read the Stackoverflow Solution posted by @PitaJ right here If it still not work use npm link in ./nodebb again to refresh something in the plugin folder ...I dont know tbh ... 😄
  • 0 Votes
    2 Posts
    354 Views

    @pasib when you concatenated the object, it got stringified.

    Try console.log('test', postData); 🙂

  • 0 Votes
    6 Posts
    2k Views

    @Filozofer while the issue in discussion by @bentael and @baris is good, keep in mind it is still in development and can change at a moments notice!

  • 0 Votes
    2 Posts
    2k Views

    in the client, those values are stored in ajaxify.data

    For your jQuery, you don't append a closing tag, it does that automatically. When you want to insert the element into the div, you need to use appendTo(). Also, unless your label has additional data, I recommend using html() instead of text().

    Here's a fiddle. I also added an ID to the new label so it isn't added more than once.
    https://jsfiddle.net/bdLgsj7p/