Hi Lotus,
Sorry, my typo -- OJS is our journal project, and OCS is our conference product. The same note applies equally to either. Zend Optimizer is Zend product used in some configurations to speed up PHP scripts; if you're on a shared host, that's likely out of your hands, so I'd suggest going with the work-around I'm about to describe.
You'll need to modify classes/db/DAO.inc.php and includes/functions.inc.php. The easiest way to do this is with the GNU patch tool, which is standard on most servers, by applying the patch at
http://pkp.sfu.ca/ojs/download/patch/contrib/optimizer.diff.
If you don't have access to the patch tool, or if you're not familiar with it, you can apply the patch manually. Open it up in a text editor, and you'll see sections like this:
- Code: Select all
@@ -129,7 +129,7 @@
* @param $dbResultRange object the DBResultRange object describing the desired range
*/
function &retrieveRange($sql, $params = false, $dbResultRange = null, $callHooks = true) {
- if ($callHooks === true && checkPhpVersion('4.3.0')) {
+ if (false && $callHooks === true && checkPhpVersion('4.3.0')) {
$trace = debug_backtrace();
// Call hooks based on the calling entity, assuming
// this method is only called by a subclass. Results
These describe the changes that need to be made. Lines beginning with "@@" indicate line numbers -- ignore all except for the first number, in this case 129, which tells you the line number at which to start looking for changes to make. Lines beginning with "-" indicate a line of code to remove, lines beginning with "+" indicate a line of code to add, and the rest provide context. Therefore, the above sample tells you to look around line 129 for a line of code reading:
- Code: Select all
if ($callHooks === true && checkPhpVersion('4.3.0')) {
...and replace it with...
- Code: Select all
if (false && $callHooks === true && checkPhpVersion('4.3.0')) {
This should work around the Zend Optimizer bug.
Regards,
Alec Smecher
Public Knowledge Project Team