From 08afec3170857152d4d76fafa3611cb55b066eee Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 21 Apr 2018 22:49:06 -0400 Subject: [PATCH 1/3] Only show event reminders of events attendyes or attendmaybe --- src/Model/Profile.php | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/Model/Profile.php b/src/Model/Profile.php index ec53d064d6..2238b3aac5 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -643,27 +643,29 @@ class Profile $bd_format = L10n::t('g A l F d'); // 8 AM Friday January 18 $classtoday = ''; + $self = dba::selectFirst('contact', ['id'], ['uid' => local_user(), 'self' => true]); + $s = dba::p( "SELECT * FROM `event` - WHERE `event`.`uid` = ? - AND `event`.`type` != 'birthday' - AND `event`.`start` < ? - AND `event`.`start` >= ? - AND NOT EXISTS ( - SELECT `id` - FROM `item` - WHERE `item`.`uid` = `event`.`uid` + JOIN `item` + ON `item`.`uid` = `event`.`uid` AND `item`.`parent-uri` = `event`.`uri` - AND `item`.`verb` = ? - AND `item`.`visible` - AND NOT `item`.`deleted` - ) + WHERE `event`.`uid` = ? + AND `event`.`type` != 'birthday' + AND `event`.`start` < ? + AND `event`.`start` >= ? + AND `item`.`author-id` = ? + AND (`item`.`verb` = ? OR `item`.`verb` = ?) + AND `item`.`visible` + AND NOT `item`.`deleted` ORDER BY `event`.`start` ASC", local_user(), DateTimeFormat::utc('now + 7 days'), DateTimeFormat::utc('now - 1 days'), - ACTIVITY_ATTENDNO + $self['id'], + ACTIVITY_ATTEND, + ACTIVITY_ATTENDMAYBE ); $r = []; From e0b33b36a21d7803353692372d7ceb90683d8888 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 22 Apr 2018 04:41:53 -0400 Subject: [PATCH 2/3] Decrease scope of query in Profile::getEventsReminderHTML - Use specific SELECT fields - Use INNER JOIN --- src/Model/Profile.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 2238b3aac5..1088ea600e 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -646,9 +646,9 @@ class Profile $self = dba::selectFirst('contact', ['id'], ['uid' => local_user(), 'self' => true]); $s = dba::p( - "SELECT * + "SELECT `event`.* FROM `event` - JOIN `item` + INNER JOIN `item` ON `item`.`uid` = `event`.`uid` AND `item`.`parent-uri` = `event`.`uri` WHERE `event`.`uid` = ? From 82ed6fff9f72a01420428d2430b7db23f0c8dca8 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 22 Apr 2018 11:29:55 -0400 Subject: [PATCH 3/3] Use public_contact() instead of wrong query in Profile::getEventsReminderHTML --- src/Model/Profile.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 1088ea600e..cd8fa29e13 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -643,8 +643,6 @@ class Profile $bd_format = L10n::t('g A l F d'); // 8 AM Friday January 18 $classtoday = ''; - $self = dba::selectFirst('contact', ['id'], ['uid' => local_user(), 'self' => true]); - $s = dba::p( "SELECT `event`.* FROM `event` @@ -663,7 +661,7 @@ class Profile local_user(), DateTimeFormat::utc('now + 7 days'), DateTimeFormat::utc('now - 1 days'), - $self['id'], + public_contact(), ACTIVITY_ATTEND, ACTIVITY_ATTENDMAYBE );