[EventCalendar] PHP issues

Chris Janton face at CentosPrime.COM
Fri Jul 31 20:19:55 UTC 2009

On 2009-07-31 , at 11:13 , Steve Wamsley wrote:

> The way I got it to work was to comment out the lines in  
> eventcalendar3.php that call add_filter(...) - lines 584 through 599  
> in version 3.1.4 of the plugin, the site starts working again -  
> including the plugin itself.
> I don't know if this is the correct way to fix the problem, but it  
> *looks* to be working correctly.

That doesn't "fix" the problem, it just avoids it.

The actual errors are coming from wp-plugin.php when it calls the  
filters the EC installs (they're what is used to make it work).

I have the option of running older PHP for a little bit, but that  
won't last.

Unfortunately I am not familiar enough with how Wordpress calls  
filters and why the EC filters look like this

  function ec3_filter_post_limits(&$limits)

what I know is that PHP thinks that wp-plugin.php should be calling  
the filters with the first parameter being a reference.

This is what WP is doing to invoke the filters

   $value = call_user_func_array($the_['function'], array_slice($args,  
1, (int) $the_['accepted_args']));

Looking around at other plugins I don't see filters expecting  
arguments by reference (which is what EC is doing).

Just to try, I changed all the filter definitions from

  function ec3_filter_post_limits(&$limits)


  function ec3_filter_post_limits($limits)

took out the ampersand. Now it works. No PHP errors from plugin.php,  
no failure to get posts.
I don't know why they expected things by reference.

The same type of change fixed the advanced-category-excluder plugin  
that I use.

Chris Janton  - face at CentosPrime dot COM
Netminder for Opus1.COM

More information about the EventCalendar mailing list