New events for pre-filling a NoticeList
The NoticeList has some code to pre-fill some auxiliary data for notices. These new events let plugins hook that event and do their own pre-filling.
This commit is contained in:
parent
e7a38f799b
commit
4c4cd9ec77
@ -1441,4 +1441,12 @@ EndNoticeInScope: After checking if a notice should be visible to a user
|
||||
- $profile: The profile to check for scope
|
||||
- &$bResult: The boolean result; overwrite this if you so desire
|
||||
|
||||
StartNoticeListPrefill: Before pre-filling a list of notices with extra data
|
||||
- &$notices: Notices to be pre-filled
|
||||
- $avatarSize: The avatar size for the list
|
||||
|
||||
EndNoticeListPrefill: After pre-filling a list of notices with extra data
|
||||
- &$notices: Notices that were pre-filled
|
||||
- &$profiles: Profiles that were pre-filled
|
||||
- $avatarSize: The avatar size for the list
|
||||
|
||||
|
@ -124,29 +124,34 @@ class NoticeList extends Widget
|
||||
|
||||
static function prefill(&$notices, $avatarSize=AVATAR_STREAM_SIZE)
|
||||
{
|
||||
// Prefill attachments
|
||||
Notice::fillAttachments($notices);
|
||||
// Prefill attachments
|
||||
Notice::fillFaves($notices);
|
||||
// Prefill repeat data
|
||||
Notice::fillRepeats($notices);
|
||||
// Prefill the profiles
|
||||
$profiles = Notice::fillProfiles($notices);
|
||||
// Prefill the avatars
|
||||
Profile::fillAvatars($profiles, $avatarSize);
|
||||
|
||||
$p = Profile::current();
|
||||
|
||||
if (!empty($p)) {
|
||||
if (Event::handle('StartNoticeListPrefill', array(&$notices, $avatarSize))) {
|
||||
|
||||
$ids = array();
|
||||
// Prefill attachments
|
||||
Notice::fillAttachments($notices);
|
||||
// Prefill attachments
|
||||
Notice::fillFaves($notices);
|
||||
// Prefill repeat data
|
||||
Notice::fillRepeats($notices);
|
||||
// Prefill the profiles
|
||||
$profiles = Notice::fillProfiles($notices);
|
||||
// Prefill the avatars
|
||||
Profile::fillAvatars($profiles, $avatarSize);
|
||||
|
||||
foreach ($notices as $notice) {
|
||||
$ids[] = $notice->id;
|
||||
$p = Profile::current();
|
||||
|
||||
if (!empty($p)) {
|
||||
|
||||
$ids = array();
|
||||
|
||||
foreach ($notices as $notice) {
|
||||
$ids[] = $notice->id;
|
||||
}
|
||||
|
||||
Memcached_DataObject::pivotGet('Fave', 'notice_id', $ids, array('user_id' => $p->id));
|
||||
Memcached_DataObject::pivotGet('Notice', 'repeat_of', $ids, array('profile_id' => $p->id));
|
||||
}
|
||||
|
||||
Memcached_DataObject::pivotGet('Fave', 'notice_id', $ids, array('user_id' => $p->id));
|
||||
Memcached_DataObject::pivotGet('Notice', 'repeat_of', $ids, array('profile_id' => $p->id));
|
||||
}
|
||||
|
||||
Event::handle('EndNoticeListPrefill', array(&$notices, &$profiles, $avatarSize));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user