Commit a431fca4 authored by Evan Prodromou's avatar Evan Prodromou

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.
parent d2d75823
......@@ -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);
if (Event::handle('StartNoticeListPrefill', array(&$notices, $avatarSize))) {
// 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();
$p = Profile::current();
if (!empty($p)) {
if (!empty($p)) {
$ids = array();
$ids = array();
foreach ($notices as $notice) {
$ids[] = $notice->id;
}
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));
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment