1

As I write, our iCal feed page loads "None found" instead of the numerous current and future public events that are in active status on our Civi 5.13 (WordPress 5.1.1, PHP 7.2.13) site.

I don't see any WordPress Permissions settings that could hide our public events, especially not while I'm logged in as Admin.

I've disabled all WP plugins (except CiviCRM) and there was no change.

For what it may be worth, the Calendar (com.agiliway.civicalendar) extension works fine. But none of the feed buttons on the Events Dashboard deliver any current or future public events.

Also (thanks Aidan!), these buttons probably never worked on our site. If you're curious, the history of (and reason for now ditching) the workaround is detailed below in the Comments.

ALSO ... this from the Civi Log Viewer, and it coincides with loading the Events Dashboard in the Civi Admin. There are no log entries corresponding with loading the HTML listing of current and future public events.

[warning] Deprecated function CRM_Event_BAO_Event::checkPermission, use CRM_Event_BAO_Event::getAllPermissions. Array ( [civi.tag] => deprecated )

Nothing from the WordPress PHP error log. Where should I look next?

  • Was this working previously on this site? – Aidan May 3 at 8:21
  • No, several Civi iterations ago, I discovered it wasn't working. Initially, I worked around using the Event Organiser and CiviCRM Event Organiser plugins for WP. The latter recently stopped working though. And even when that plugin was working, our site admins found it too cumbersome with manually importing events from Civi to the front-facing EO calendar. We really need the Civi iCal feed to work so we can embed a Google calendar on the front end of our site and eliminate manual synchronizing. – Prónay May 3 at 12:49
  • 1
3

First I'd confirm that the functionality works on another site. You can use a demo site for this, or you can check Google for inurl:civicrm/event/ical

search results for civicrm/event/ical

OK, so it works for some people! Next check might be to find out if the WordPress path works (inurl:civicrm/?page=CiviCRM&q=civicrm%2Fevent%2Fical perhaps? IDK if Google / other search engines support checking for pages with specific query params though, as CiviCRM uses here.)

The next place I'd look would be what generates the iCal feed. Is it coming from an extension or core CiviCRM? Your question didn't say this for sure, so a search for "civicrm/event/ical" on the Git repo will reveal a menu XML entry if it's a core thing. (If not we'd go looking for the relevant extension.)

By searching the civicrm/civicrm-core repo I found that this is core functionality, because the path you're trying to understand has a menu.xml entry which shows up in the results.

Looking at that we can see:

  • the permission checked for will be "view event info"
  • the page callback class is CRM_Event_Page_ICalendar

So you could perhaps add some debug code to that class (start at the run() method), and see if this method gets called when a visitor hits your iCal feed.

There's also an open issue on CiviCRM's Gitlab, dev/wordpress#25. That's worth subscribing to, even though the description is different to yours ... the fact that both affected sites are WordPress may be significant.

Where you'd go from there depends on what you find so far, but your question was "where do I look next", so here you go! Good luck :)

  • 1
    I'm not sure how this answer comports with the standard protocols of StackExchange, but the GitLab link above is where we isolated the problem -- namely a dysfunctional permissions check in CRM/Event/BAO/Event.php. Now to get that fixed so the permissions check does what it was intended. (Leaving that to the developers!) – Prónay May 9 at 0:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.