* @link http://status.net/
*/
-if (!defined('STATUSNET') && !defined('LACONICA')) {
- exit(1);
-}
-
-require_once INSTALLDIR.'/lib/favorform.php';
-require_once INSTALLDIR.'/lib/disfavorform.php';
-require_once INSTALLDIR.'/lib/attachmentlist.php';
+if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); }
/**
* widget for displaying a list of notices
*
* @param Notice $notice stream of notices from DB_DataObject
*/
- function __construct($notice, $out=null)
+ function __construct(Notice $notice, $out=null)
{
parent::__construct($out);
$this->notice = $notice;
$total = count($notices);
$notices = array_slice($notices, 0, NOTICES_PER_PAGE);
- $this->prefill($notices);
+ self::prefill($notices);
foreach ($notices as $notice) {
*
* @return NoticeListItem a list item for displaying the notice
*/
- function newListItem($notice)
+ function newListItem(Notice $notice)
{
return new NoticeListItem($notice, $this->out);
}
- function prefill(&$notices)
+ static function prefill(array &$notices)
{
- // Prefill the profiles
- $profiles = Notice::fillProfiles($notices);
- Profile::fillAvatars($profiles, AVATAR_STREAM_SIZE);
+ $scoped = Profile::current();
+ $notice_ids = Notice::_idsOf($notices);
+
+ if (Event::handle('StartNoticeListPrefill', array(&$notices, $notice_ids, $scoped))) {
+
+ // Prefill attachments
+ Notice::fillAttachments($notices);
+ // Prefill repeat data
+ Notice::fillRepeats($notices);
+ // Prefill the profiles
+ $profiles = Notice::fillProfiles($notices);
+
+ if ($scoped instanceof Profile) {
+ Notice::pivotGet('repeat_of', $notice_ids, array('profile_id' => $scoped->id));
+ }
+
+ Event::handle('EndNoticeListPrefill', array(&$notices, &$profiles, $notice_ids, $scoped));
+ }
}
}