
07-02-2006, 04:03 PM
|
 |
|
|
Join Date: Jul 2004
Posts: 2,528
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
|
Do you want vbJournal working in PHP 5?
Okay, from what I've seen, there are two major bugs with vbJournal and PHP 5. - Parse error: parse error, unexpected T_PRIVATE, expecting ']' in (place) in (the file) evaluated code in (many templates).
This is actually very easy to fix! This is yet another reason to QUOTE ARRAY KEYS IN CONDITIONS! Though template conditions are written in double quotes, they aren't parsed that way. They are parsed using the ternary operator ( ? : )
The template
Code:
<strong><if condition="$bbuserinfo['posts'] > 50">Hey Man!<else />Hey Noob!</if></strong>
is executed in the template like so:
PHP Code:
$var = "<strong>" . (($bbuserinfo['posts'] > 50) ? "Hey Man!" : "Hey Noob!") . "</strong>";
Writing it without the quotes around 'posts' is usually okay (well bad!) but no errors show up, though an E_NOTICE Is issued. If the quotes aren't there, PHP will use the constant 'posts' first, but if it doesn't exist, then the notice is issued, and it uses the string instead. vBulletin was made to hide these notices. However, in PHP 5, with the new OOP functionality, there was a new keyword: "private".
So now, instead of just sending out a notice (which is hidden), it is actually a fatal error, becuase that private keyword shouldn't be in that template condition.
So the fix? Whenever you see this error, just find the line in question (by journal.php) and see which template is evalulated. Then, go to that template, and find the line which is causing the error. You should see the condition like in this post, just fix it by surrounding 'private' in quotes.
I've had no spare time to look at this. Hopefully somebody else can figure it out! Just thinking about it now... do the users who get blank screens have error reporting disabled? It could just be the same problem!!
There really is no excuse for something as popular as vbJournal to not support PHP 5; these are bugs... not "incompatibilities"...
|