event calendar v2.0.0 error

I have activated event calendar plugin and added the fix line 'entity' => $event, as iionly said to in a previous question and it seems to be ok  when viewing as a logged in user but when I click the "event calendar" menu item when not logged in (public) it shows the following error page and dev terminal shows "GET https://mydomain.com/event_calendar/list/  event_calendar/list/:1 500 ()" (mydomain is substitute for my domain name)

Fatal Error.

An unrecoverable error has occurred and has been logged. Contact the site administrator with the following information: 

Exception at time 1499283651.

  • What error message is logged in the error log?

    I think I already fixed this issue for the next (not yet finished) release of Event Calendar. Unfortunately, I've rewritten the pagehandler function considerably and therefore I can't tell at the moment what needs to be changed to fix this problem alone in version 2.0.0.

    It might be enough to change a little bit in the pagehandler function in start.php adding the lines shown in bold below:

    case 'view':
        elgg_entity_gatekeeper($page[1], 'object', 'event_calendar');
        elgg_group_gatekeeper();
        echo event_calendar_get_page_content_view($page[1]);
        break;
    case 'display_users':
        elgg_entity_gatekeeper($page[1], 'object', 'event_calendar');
        elgg_group_gatekeeper();
        echo event_calendar_get_page_content_display_users($page[1]);
        break;
    case 'manage_users':
        elgg_entity_gatekeeper($page[1], 'object', 'event_calendar');
        elgg_group_gatekeeper();
        echo event_calendar_get_page_content_manage_users($page[1]);
        break;
    case 'schedule':

    If that's not enough I would need to investigate more detailed what I've changed. Unfortunately, I can't tell when the next release will be ready. I've not had time to finish it for months...

  • This is the error code after inputing the above code changes. I have changed my domain name and ip of server. Note: there are no events in the calendar:

    2017/07/06 10:16:08 [error] 11553#11553: *126312 connect() failed (111: Connection refused) while connecting to upstream, client: 1.2.3.40, server: mydomain.com, request: "GET /event_calendar/list/ HTTP/1.1", upstream: "fastcgi://[::1]:9001", host: "mydomain.com", referrer: "https://mydomain.com/"
    2017/07/06 10:16:08 [error] 11553#11553: *126312 FastCGI sent in stderr: "PHP message: Exception at time 1499350568: exception 'DatabaseException' with message 'An exception occurred while executing 'SELECT count(distinct e.guid) as total FROM elgg_entities e JOIN elgg_metadata m on e.guid = m.entity_guid JOIN elgg_metadata m2 on e.guid = m2.entity_guid JOIN elgg_metastrings v on v.id = m.value_id JOIN elgg_metastrings v2 on v2.id = m2.value_id where e.type='object' AND  m.name_id='1249' AND  m2.name_id='1250' AND  ((v.string >= 1498881600 AND v.string <= 1501559999) OR ( v2.string >= 1498881600 AND v2.string <= 1501559999) OR (v.string <= 1498881600 AND v2.string >= 1498881600) OR ( v2.string <= 1501559999 AND v2.string >= 1501559999)) AND  e.site_guid = 1 AND ((e.access_id IN (2)) AND (e.enabled = 'yes' AND 
    NOT EXISTS (
    SELECT 1 FROM elgg_private_settings
    WHERE
    entity_guid IN (e.guid, e.owner_guid)
    AND name = 'plugin:user_setting:private_profiles:user_activity_setting'
    AND value = 'members'
    )
    AND (e.owner_guid = 0 OR (
    NOT EXISTS (
    " while reading response header from upstream, client: 1.2.3.40, server: mydomain.com, request: "GET /event_calendar/list/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "mydomain.com", referrer: "https://mydomain.com/&quot;
  • And this is without changing the code (leaving it as is in v2.0.0)

    2017/07/06 10:48:40 [error] 11554#11554: *127350 FastCGI sent in stderr: "PHP message: Exception at time 1499352520: exception 'DatabaseException' with message 'An exception occurred while executing 'SELECT count(distinct e.guid) as total FROM elgg_entities e JOIN elgg_metadata m on e.guid = m.entity_guid JOIN elgg_metadata m2 on e.guid = m2.entity_guid JOIN elgg_metastrings v on v.id = m.value_id JOIN elgg_metastrings v2 on v2.id = m2.value_id where e.type='object' AND  m.name_id='1249' AND  m2.name_id='1250' AND  ((v.string >= 1498881600 AND v.string <= 1501559999) OR ( v2.string >= 1498881600 AND v2.string <= 1501559999) OR (v.string <= 1498881600 AND v2.string >= 1498881600) OR ( v2.string <= 1501559999 AND v2.string >= 1501559999)) AND  e.site_guid = 1 AND ((e.access_id IN (2)) AND (e.enabled = 'yes' AND 
    NOT EXISTS (
    SELECT 1 FROM elgg_private_settings
    WHERE
    entity_guid IN (e.guid, e.owner_guid)
    AND name = 'plugin:user_setting:private_profiles:user_activity_setting'
    AND value = 'members'
    )
    AND (e.owner_guid = 0 OR (
    NOT EXISTS (
    " while reading response header from upstream, client: 1.2.3.40, server: mydomain.com, request: "GET /event_calendar/list/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "mydomain.com", referrer: "https://mydomain.com/activity&quot;
  • Ah...

    My guess is that you are using the Private Profiles plugin (version 2.3.0). Right?

    Version 2.3.0 of Private Profiles introduced a user option to restrict visibility of activity and membership listing. This is done by expanding the relevant database queries. Unfortunately, Event Calendar (up to version 2.0.0) is using some custom DB queries resulting in the expansion of the queries done by Private Profiles to fail.

    As I mentioned, I'm already working on a new release of the Event Calendar plugin since quite some time and among other things I've fixed the issue in connection with the Private Profiles plugin already in my dev version. Problem is: it's much too much code that has changed that I could post the necessary modifications here.

    I'll try to finish up at least an alpha/beta release asap - possibly on github only - and post a download link here when it's avaiable. I hope I can do that on the weekend. In the meantime the only workaround would be temporarily disabling Private Profiles, if that's possible for you, to avoid the error.

  • I deactivated private profiles and now event calendar is working properly for public. Waiting til you release the new version.

  • New release of Event Calendar (https://elgg.org/plugins/2215357/releases/2.3.1) is available that should also work fine with latest version of Private Profiles. In case you are also using the Event Poll plugin there's also a new release of this plugin (https://elgg.org/plugins/2215337/releases/2.3.1).