IMO all the add-ons should be in the same product. They can easily be turned on/off by going to the Plugin Manager. Also the main portal.php file has some issues:
- define('NO_REGISTER_GLOBALS', 1); // this is no longer used
- there is no portal_articlelist template
- if (forumid1) { // this is missing the $ on the variable
- if (forumid2) { // this is missing the $ on the variable
- $news['pagetext'] = $parser->do_parse($news['pagetext'], 1, 1, 1, 1); // this is set to parse HTML
- these should be initialized: $currentsection, $portal_articlebit, $portal_left_column, $portal_right_column
- $getnews1 and $getnews2 are basically the same query so try WHERE t.forumid IN ($forumid1,$forumid2)
- vB doesn't store slashes so stripslashes is not needed
- look into strip_tags, htmlspecialchars_uni, or use title_clean if available instead of the preg_replace regexp
- is there a need to GLOBAL $parser; for something
- what setting is this: $vbulletin->options['vbcms_totalrows']
- $rownum serves no point as the query already has a limit
- use $navbits[''] = 'Portal'; not with $parent and phrase the word Portal
- eval('$portal_articlelist .= "' . fetch_template('PORTAL') . '";'); // this serves no purpose
The attached is an untested revision of the portal.php file, though it may need tweaks or fixes as well because it's untested, so it's up to you to test. Hope it helps.