From: Evan Prodromou Date: Tue, 20 Mar 2012 20:38:56 +0000 (-0400) Subject: New events for overriding scope checks X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=3619f9faaa7e7cd801fd654883630b7136774c05;p=quix0rs-gnu-social.git New events for overriding scope checks --- diff --git a/EVENTS.txt b/EVENTS.txt index 5fb775c765..eb3edb9b13 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -1430,3 +1430,15 @@ StartShowNoticeOptionItems: Before showing first controls in a notice list item; EndShowNoticeOptionItems: After showing last controls in a notice list item; inside the div - $nli: NoticeListItem being shown + +StartNoticeInScope: Before checking if a notice should be visible to a user +- $notice: The notice to check +- $profile: The profile to check for scope +- &$bResult: The boolean result; fill this in if you want to skip + +EndNoticeInScope: After checking if a notice should be visible to a user +- $notice: The notice to check +- $profile: The profile to check for scope +- &$bResult: The boolean result; overwrite this if you so desire + + diff --git a/classes/Notice.php b/classes/Notice.php index 9ee5696e3f..9e4dbec9e3 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -2365,7 +2365,11 @@ class Notice extends Managed_DataObject $result = self::cacheGet($keypart); if ($result === false) { - $bResult = $this->_inScope($profile); + $bResult = false; + if (Event::handle('StartNoticeInScope', array($notice, $profile, &$bResult))) { + $bResult = $this->_inScope($profile); + Event::handle('EndNoticeInScope', array($notice, $profile, &$bResult)); + } $result = ($bResult) ? 1 : 0; self::cacheSet($keypart, $result, 0, 300); }