I have a tentative fix for issue #2. I believe this fix also resolves another aspect of issue #4. If you have experienced either issue #2 or #4, can you please try making the following changes plus toivo's change for #4 and report back as to whether the issues are fixed?
I believe the cause of #2 and #4 is that a variable is redefined and then unset within a block inside a loop. This causes the remaining code in the loop to now reference the unset variable. The workaround is to use a different name for the variable in the block so that it doesn't conflict with the other usage. The name collision appears to be a case where code was copied and pasted carelessly.
I have made the changes to my installation and have seen no problems with this fix so far.
Here's the fix to 2.6.1beta:
PHP Code:
In emailintegration.php, change the variable $plaintext_parser to $plaintext_parser2 in the following four places (lines 1185, 1255, 1256, and 1266). Below are the changes as reported by Unix diff:
1185c1185
< $plaintext_parser =& new vB_BbCodeParser_PlainText($vbulletin, fetch_tag_list());
---
> $plaintext_parser2 =& new vB_BbCodeParser_PlainText($vbulletin, fetch_tag_list());
1255,1256c1255,1256
< $plaintext_parser->set_parsing_language($touser['languageid']);
< $pagetext_cache["$touser[languageid]"] = $plaintext_parser->parse($pagetext_orig, $foruminfo['forumid']);
---
> $plaintext_parser2->set_parsing_language($touser['languageid']);
> $pagetext_cache["$touser[languageid]"] = $plaintext_parser2->parse($pagetext_orig, $foruminfo['forumid']);
1266c1266
< unset($plaintext_parser, $pagetext_cache);
---
> unset($plaintext_parser2, $pagetext_cache);