MyBB Community Forums
Simple plugin or major code mod? - Printable Version

+- MyBB Community Forums (https://community.mybb.com)
+-- Forum: Extensions (https://community.mybb.com/forum-201.html)
+--- Forum: Plugins (https://community.mybb.com/forum-73.html)
+---- Forum: Plugin Development (https://community.mybb.com/forum-68.html)
+---- Thread: Simple plugin or major code mod? (/thread-138239.html)



Simple plugin or major code mod? - zeeb - 2013-04-25

I am starting on a project to add forums functionality to my existing website. I've selected MyBB as the most likely platform that I will proceed with, however before I install it on our servers I would like to get some feedback from the community on how I should proceed with the required development tasks - developing plugins, modifying the core code, or a combination of both.

We provide services to an online gaming community where every user has a unique username (format: first.lastname), a unique UUID, and a non-unique "display name" (Unicode format). We need to be able to associate a forums user with the gaming avatar. The only way to do this is to initiate the registration process from within the gaming platform.

Within the gaming platform, the user will click a registration panel. The registration panel will read the avatar's username, UUID and display name, hash those with a secret key and hand the user a registration URL that will include these four fields. The user will connect to the registration script using their browser.

Changes that I will have to implement:

1) The registration script will need to calculate its own hash from the provided username, UUID and display name, and compare it to the hash included in the URL to ensure its integrity. If all is good, the user will be presented with a registration form on which username, UUID and display name will be pre-populated and cannot be changed. The user will enter their email address, select a password, etc. On submit, the registration script will need to record all the normal MyBB user fields as well as the UUID and the display name, either in the users table or a separate table with 1:1 relationship to the users table. Once this step is completed, the registration script will need to connect to a different database (our service database) and add the username to a user table there. All links to the registration process from within MyBB will need to be disabled so that the only way that the registration process can be triggered is from a directly entered URL with the 4 variables supplied. Email address verification would be performed as normal.

2) Posting permissions. While a user with a valid account will be able to log into the system, view posts and edit their profile, they must have an active service account with us to be able to post to the forums (create new topics or post comments). MyBB will need to connect to our service database and execute a query there to see if the user matching the username has currently active service subscriptions. The implementation of this restriction could remove the relevant post, quote, etc links although most importantly it should return an error when someone who does not have an active subscription attempts to create a new post.

3) Some other minor changes... I figure if I get over these first two, the rest will be a breeze.

I know I can make this work if I just pop open the hood and start hacking at the code but before I start modifying database tables and the core application code I thought I'd check with you guys to see if there's an easier way Smile

Many thanks!


RE: Simple plugin or major code mod? - fizz - 2013-04-26

1 is definitely doable with a plugin and 2 should be easy with a plugin.