I agree that it's not a walk in the park, even for a wizard ;-)
Being a web programmer myself, I understand the difficulties of such upgrades, but this one wouldn't really be THAT much of an effort:
- First, I imagine there's already a database table for these system specs, perhaps using the User ID as primary. Instead, it would have to be changed to independent ID and place the User ID in a 2nd column:
[ SystemID *Primary ] [ UserID ] [ .... rest of the data... ]
- Once the change is implemented, the code that reads/writes this has to be adjusted as well:
SELECT FROM `usersystems` WHERE `UserID` = {user's id}
With the change, this might result in multiple rows instead of one.
So, the output template needs to "loop" through them instead of just displaying the single raw result (like it most likely does now)
- An extra database change would be in the primary users table, indicating which system is "Primary" (the one that is shown first), so adding another column: "PrimarySystemID". With it, the links are complete.
- Adding the buttons is following a simple condition:
- if (systems.length > 1) { ... add the "Multiple Systems" header and the buttons ... }
- The "visible" part is a simple hide and show in JavaScript/jQuery/DOM:
"the button". on('click', function() { ... hide current spec ... ; ... change index ... ; ... show next/previous spec ... });
- The biggest change would probably be on the editing side (user account), where the page itself would need to be altered with extra buttons:
[ Add new system ] [ Next ] [ Previous ] [ Delete current system ]
And the form itself should be dynamic (loaded/stored via AJAX instead of locked in place like it is now for the single version.
- Extra care on the Delete operation, as the "Primary" must not be delete-able, as it would break the output in other parts of the website.
I'm not a XenForo specialist... actually, I've never seen XenForo base code; But assuming I knew the details of the implementation and where to look, this would be for me
at most a 2 days operation of relaxed coding.
(So,
quite a bit more than 15 minutes, but not something out of this world)
The question is if
@W1zzard would find such an addition useful to spend 1-2 days on it ;-) We'll see...