Hey @stigzler, I just wanted to comment that you're not alone. I haven't looked specifically at a phpBB interface but I've had it in my mind to do others like it. While I'm competent to work on existing PHP code, I don't have same confidence as I do when working with C#, Java, or other languages.
Working with Mantis, or any FOSS like this, just takes time and patience. I think the best way to approach projects like this is to break everything down into very small functions, and control it all from higher-level functions. Then you can pull in sample code and ask for help on very small pieces rather than feeling stuck on huge concepts. For example, rather than this
Code: Select all
success = doSomethingReallyBig(p1,p2,p3,p4,p5,p6);
try this
Code: Select all
p1 = p1get();
if (!p1IsOK(p1)) return;
p2 = p2get(p1);
if (!p2IsOK(p2)) return;
p3 = "foo";
...
workingResult = new WorkingResult() ; // class instance with project-level scope that gets built in pieces
if(!finalCheck(p1,p2,p3,p4,p5,p6)) return;
success = doSomethingSimple1(p1,p2);
if(!success) return;
success = doSomethingSimple2(p2,p3);
if(!success) return;
success = putSomePiecesTogether1(p3,p4,p5);
if(!success) return;
success = finalTouches(workingResult);
if(!success) return;
// Hey, we have a workingResult! Success!
return;
...
Keep everything small and modular. Then questions don't need to be "how do I change the world" but more like "how do I get this one data element".
The above code is really sloppy. Minimize global variables. Use OOP as normal. PHP is very similar to other languages in terms of OOP these days. Use try/catch. Create small focused classes to manage state rather than dealing with a lot of little vars like p1, p2, etc.
Give yourself a lot of space in your code to do things verbosely - don't try to be concise. As you know, that comes later. Comment the hell out of your code, including adding the sources of your various insights. Then FOSS what you're doing in GitHub so that others can benefit and contribute. You'll get a lot more feedback on specific code challenges if you have code that you can point to - abstract requests like we frequently see in forums like this often receive equally abstract responses that don't help much - the quality of responses is usually commensurate with the quality of the questions. Track your problems and detailed resolutions in Issues. You and others will look back at the tickets later to understand why things are done the way they are.
I wish I could participate in projects like this. I have a LOT of things that I want to do with Mantis plugins but I lack the time. I've only thought about how I would approach it and I'm sharing that here. HTH