I've been handling this project for quite sometime now. It was a construction related forum, where homeowners seek advice from professionals. Our client wanted to add more services/features to the site. When the site was handed down to me there were already some additions. It had a classifieds section and a company directory, that were quite buggy and problematic. I had to take it down and rewrite it, salvaging any parts that I can. I also spiced it up a bit and turned it into a mash-up using Yahoo! Maps . I added a wiki on the site, hoping that users would help contribute and build a useful knowledge base. But I guess th folks there aren't really ready for that. I was also assigned to create Jobs section, that would pull out related job feeds from another site and display some graphs/stats regarding the jobs. I did it, but got a little attention from the users (though some users got jobs from it). I also added a weather section, since weather was an important factor in their trade and a forecast would be quite helpful. They are also planning to have a product review/rating part, and an encyclopedia/dictionary to replace the wiki. They also want to add a gallery where the works of the contractors can be displayed/featured. They also asked me to install a newsletter application ( PHPlist ) to inform users/partners with lates news and site updates.
Almost all of the requested features are done and are ready to be integrated with the site. The problem is that things are quite unorganized/scattered. I have two versions each for the Classifieds and Directory section, running using CakePHP and another using an OOP approach. The weather section and the Jobs section where done using normal procedural programming. As for the gallery, there's already a user gallery mod (by the way, we're using PhpBB or the forums) for the forum, so we I don't think we need to install Coppermine Gallery. The Review/Ratings and encyclopedia things are yet to be decided, since the folks are still busy with the new site design/layout. I really hate the frequent switch between programming environments ( procedural, OOP, CakePHP framework and PhpBB), and I tend to accidentally mix things up. It's tiresome and maintenance nightmare. This urge me to look for options on how I can choose an approach and apply it consistently through out the project. I rounded them down to three: PhpBB super mod, CakePHP and by using a CMS like XOOPS or Joomla .
PhpBB super mod involves hacking and tweaking phpBB, inserting codes here and there, modifying some default behavior to suite the site's need.
* Guaranteed to work with the server's current version of PHP
* No additional software required.
* User and forum info already available using the native functions provided by phpBB (in case we need to integrate these info with our applications).
* Upgrading the forums would be complicated, since you have to manually edit the changed files, one by one
* Time consuming to code and adjust with the nature of phpBB.
Using CakePhP , I could divide the site into smaller applications. There would a separate CakePHP application for classified ads, product reviews etc. Minimal tweaks with phpBB.
* The forum, being a separate application, can be easily upgraded.
* Easier to debug, since each application would be independent from each other (except for the templates).
* CakePHP being a RAD Framework, it would be faster to code and develop.
* Needs CakePHP framework installed on the server (easy to do) but cannot supported by the live site. CakePHP needs PHP version 4.3.x while the live site runs on PHP 4.2.x. I advise upgrading to a recent version on PHP4 (or better yet PHP5).
* I need to somehow adapt a session handling mechanism using CakePHP which is similar to phpBB, to be able access logged user's info. I might also need to model phpBB's user and forum data.
Since the site is developing from a simple forum site into more of a user community site, a content (or "community", a much better term ) management system can do the job more effectively.
* Better, more organized user and content management. User info is always kept throughout the site (and other applications running under it). Site administration is a breeze using its administration panel.
* Some of the functionalities that the site currently needs is supported through the use of extensions. There are already usable extensions for classified ads, banner management, image gallery, richer user profiles, product ratings/review, newsletters and even its own forum.
* A decent port is needed to tranfer data from phpBB to Joomla. I haven't found any extensions that might accomplish this well.
* You need to code (using Joomla's API) your own plugin if you don't find the extensions that suit the functionality you are looking for. It will take some time to learn coding your own extensions.
* You need some tweaking to make the extensions do what you exactly want it to do and make it appear how you like it to appear.
Among these three, I favor using CakePHP. Since it deals the least with modifying phpBB data (which is currently the most important asset of the site), it's the safest way to go. And probably the fastest :P.