forked from GNUsocial/gnu-social
		
	threadednoticelist takes a profile param
This commit is contained in:
		@@ -157,7 +157,16 @@ class AllAction extends ProfileAction
 | 
			
		||||
    function showContent()
 | 
			
		||||
    {
 | 
			
		||||
        if (Event::handle('StartShowAllContent', array($this))) {
 | 
			
		||||
            $nl = new ThreadedNoticeList($this->notice, $this);
 | 
			
		||||
 | 
			
		||||
            $profile = null;
 | 
			
		||||
 | 
			
		||||
            $current_user = common_current_user();
 | 
			
		||||
 | 
			
		||||
            if (!empty($current_user)) {
 | 
			
		||||
                $profile = $current_user->getProfile();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $nl = new ThreadedNoticeList($this->notice, $this, $profile);
 | 
			
		||||
 | 
			
		||||
            $cnt = $nl->show();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -47,9 +47,10 @@ require_once INSTALLDIR.'/lib/noticelist.php';
 | 
			
		||||
 */
 | 
			
		||||
class ConversationAction extends Action
 | 
			
		||||
{
 | 
			
		||||
    var $id      = null;
 | 
			
		||||
    var $page    = null;
 | 
			
		||||
    var $notices = null;
 | 
			
		||||
    var $id          = null;
 | 
			
		||||
    var $page        = null;
 | 
			
		||||
    var $notices     = null;
 | 
			
		||||
    var $userProfile = null;
 | 
			
		||||
 | 
			
		||||
    const MAX_NOTICES = 500;
 | 
			
		||||
 | 
			
		||||
@@ -76,14 +77,14 @@ class ConversationAction extends Action
 | 
			
		||||
        $cur = common_current_user();
 | 
			
		||||
 | 
			
		||||
        if (empty($cur)) {
 | 
			
		||||
            $profile = null;
 | 
			
		||||
            $this->userProfile = null;
 | 
			
		||||
        } else {
 | 
			
		||||
            $profile = $cur->getProfile();
 | 
			
		||||
            $this->userProfile = $cur->getProfile();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $stream = new ConversationNoticeStream($this->id, $profile);
 | 
			
		||||
        $stream = new ConversationNoticeStream($this->id, $this->userProfile);
 | 
			
		||||
 | 
			
		||||
        $this->notices = $stream->getNotices(0, self::MAX_NOTICES, null, null);
 | 
			
		||||
        $this->notices = $stream->getNotices(0, self::MAX_NOTICES);
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
@@ -122,7 +123,7 @@ class ConversationAction extends Action
 | 
			
		||||
     */
 | 
			
		||||
    function showContent()
 | 
			
		||||
    {
 | 
			
		||||
        $tnl = new ThreadedNoticeList($this->notices, $this);
 | 
			
		||||
        $tnl = new ThreadedNoticeList($this->notices, $this, $this->userProfile);
 | 
			
		||||
 | 
			
		||||
        $cnt = $tnl->show();
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -66,7 +66,7 @@ class ConversationRepliesAction extends ConversationAction
 | 
			
		||||
     */
 | 
			
		||||
    function showContent()
 | 
			
		||||
    {
 | 
			
		||||
        $ct = new FullThreadedNoticeList($this->notices, $this);
 | 
			
		||||
        $ct = new FullThreadedNoticeList($this->notices, $this, $this->userProfile);
 | 
			
		||||
 | 
			
		||||
        $cnt = $ct->show();
 | 
			
		||||
    }
 | 
			
		||||
@@ -91,7 +91,7 @@ class FullThreadedNoticeList extends ThreadedNoticeList
 | 
			
		||||
{
 | 
			
		||||
    function newListItem($notice)
 | 
			
		||||
    {
 | 
			
		||||
        return new FullThreadedNoticeListItem($notice, $this->out);
 | 
			
		||||
        return new FullThreadedNoticeListItem($notice, $this->out, $this->userProfile);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -85,8 +85,18 @@ class PublicAction extends Action
 | 
			
		||||
 | 
			
		||||
        common_set_returnto($this->selfUrl());
 | 
			
		||||
 | 
			
		||||
        $this->notice = Notice::publicStream(($this->page-1)*NOTICES_PER_PAGE,
 | 
			
		||||
                                       NOTICES_PER_PAGE + 1);
 | 
			
		||||
        $profile = null;
 | 
			
		||||
        
 | 
			
		||||
        $user = common_current_user();
 | 
			
		||||
 | 
			
		||||
        if (!empty($user)) {
 | 
			
		||||
            $profile = $user->getProfile();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $stream = new PublicNoticeStream($profile);
 | 
			
		||||
 | 
			
		||||
        $this->notice = $stream->getNotices(($this->page-1)*NOTICES_PER_PAGE,
 | 
			
		||||
                                            NOTICES_PER_PAGE + 1);
 | 
			
		||||
 | 
			
		||||
        if (!$this->notice) {
 | 
			
		||||
            // TRANS: Server error displayed when a public timeline cannot be retrieved.
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,8 @@ class ShowgroupAction extends GroupDesignAction
 | 
			
		||||
{
 | 
			
		||||
    /** page we're viewing. */
 | 
			
		||||
    var $page = null;
 | 
			
		||||
    var $userProfile = null;
 | 
			
		||||
    var $notice = null;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Is this page read-only?
 | 
			
		||||
@@ -144,6 +146,15 @@ class ShowgroupAction extends GroupDesignAction
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $cur = common_current_user();
 | 
			
		||||
 | 
			
		||||
        $this->userProfile = (empty($cur)) ? null : $cur->getProfile();
 | 
			
		||||
 | 
			
		||||
        $stream = new GroupNoticeStream($this->group, $this->userProfile);
 | 
			
		||||
 | 
			
		||||
        $this->notice = $stream->getNotices(($this->page-1)*NOTICES_PER_PAGE,
 | 
			
		||||
                                            NOTICES_PER_PAGE + 1);
 | 
			
		||||
 | 
			
		||||
        common_set_returnto($this->selfUrl());
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
@@ -190,10 +201,7 @@ class ShowgroupAction extends GroupDesignAction
 | 
			
		||||
     */
 | 
			
		||||
    function showGroupNotices()
 | 
			
		||||
    {
 | 
			
		||||
        $notice = $this->group->getNotices(($this->page-1)*NOTICES_PER_PAGE,
 | 
			
		||||
                                           NOTICES_PER_PAGE + 1);
 | 
			
		||||
 | 
			
		||||
        $nl = new ThreadedNoticeList($notice, $this);
 | 
			
		||||
        $nl = new ThreadedNoticeList($notice, $this, $this->userProfile);
 | 
			
		||||
        $cnt = $nl->show();
 | 
			
		||||
 | 
			
		||||
        $this->pagination($this->page > 1,
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,14 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
 | 
			
		||||
 */
 | 
			
		||||
class ThreadedNoticeList extends NoticeList
 | 
			
		||||
{
 | 
			
		||||
    protected $userProfile;
 | 
			
		||||
 | 
			
		||||
    function __construct($notice, $out=null, $profile=null)
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct($notice, $out);
 | 
			
		||||
        $this->userProfile = $profile;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * show the list of notices
 | 
			
		||||
     *
 | 
			
		||||
@@ -123,7 +131,7 @@ class ThreadedNoticeList extends NoticeList
 | 
			
		||||
     */
 | 
			
		||||
    function newListItem($notice)
 | 
			
		||||
    {
 | 
			
		||||
        return new ThreadedNoticeListItem($notice, $this->out);
 | 
			
		||||
        return new ThreadedNoticeListItem($notice, $this->out, $this->userProfile);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -146,6 +154,14 @@ class ThreadedNoticeList extends NoticeList
 | 
			
		||||
 */
 | 
			
		||||
class ThreadedNoticeListItem extends NoticeListItem
 | 
			
		||||
{
 | 
			
		||||
    protected $userProfile = null;
 | 
			
		||||
 | 
			
		||||
    function __construct($notice, $out=null, $profile=null)
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct($notice, $out);
 | 
			
		||||
        $this->userProfile = $profile;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function initialItems()
 | 
			
		||||
    {
 | 
			
		||||
        return 3;
 | 
			
		||||
@@ -167,7 +183,8 @@ class ThreadedNoticeListItem extends NoticeListItem
 | 
			
		||||
    {
 | 
			
		||||
        $max = $this->initialItems();
 | 
			
		||||
        if (!$this->repeat) {
 | 
			
		||||
            $notice = Notice::conversationStream($this->notice->conversation, 0, $max + 2);
 | 
			
		||||
            $stream = new ConversationNoticeStream($this->notice->conversation, $this->userProfile);
 | 
			
		||||
            $notice = $stream->getNotices(0, $max + 2);
 | 
			
		||||
            $notices = array();
 | 
			
		||||
            $cnt = 0;
 | 
			
		||||
            $moreCutoff = null;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user