forked from GNUsocial/gnu-social
		
	Some work to make the all action work
This commit is contained in:
		
							
								
								
									
										118
									
								
								actions/all.php
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								actions/all.php
									
									
									
									
									
								
							@@ -19,80 +19,86 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
if (!defined('LACONICA')) { exit(1); }
 | 
					if (!defined('LACONICA')) { exit(1); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require_once(INSTALLDIR.'/actions/showstream.php');
 | 
					require_once INSTALLDIR.'/lib/personalgroupnav.php';
 | 
				
			||||||
 | 
					require_once INSTALLDIR.'/lib/noticelist.php';
 | 
				
			||||||
 | 
					require_once INSTALLDIR.'/lib/feedlist.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AllAction extends StreamAction
 | 
					class AllAction extends Action
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    var $user = null;
 | 
				
			||||||
 | 
					    var $page = null;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    function isReadOnly()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    function prepare($args)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
						parent::prepare($args);
 | 
				
			||||||
 | 
					        $nickname = common_canonical_nickname($this->arg('nickname'));
 | 
				
			||||||
 | 
						$this->user = User::staticGet('nickname', $nickname);
 | 
				
			||||||
 | 
					        $this->page = $this->trimmed('page');
 | 
				
			||||||
 | 
					        if (!$this->page) {
 | 
				
			||||||
 | 
					            $this->page = 1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    function handle($args)
 | 
					    function handle($args)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					 | 
				
			||||||
        parent::handle($args);
 | 
					        parent::handle($args);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
        $nickname = common_canonical_nickname($this->arg('nickname'));
 | 
					        if (!$this->user) {
 | 
				
			||||||
        $user = User::staticGet('nickname', $nickname);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!$user) {
 | 
					 | 
				
			||||||
            $this->clientError(_('No such user.'));
 | 
					            $this->clientError(_('No such user.'));
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
        $profile = $user->getProfile();
 | 
						$this->showPage();
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!$profile) {
 | 
					 | 
				
			||||||
            $this->serverError(_('User has no profile.'));
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Looks like we're good; show the header
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        common_show_header(sprintf(_("%s and friends"), $profile->nickname),
 | 
					 | 
				
			||||||
                           array($this, 'show_header'), $user,
 | 
					 | 
				
			||||||
                           array($this, 'show_top'));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->show_notices($user);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        common_show_footer();
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    function show_header($user)
 | 
					    function title()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
						if ($this->page > 1) {
 | 
				
			||||||
 | 
						    return sprintf(_("%s and friends, page %d"), $this->user->nickname, $this->page);
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
						    return sprintf(_("%s and friends"), $this->user->nickname);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    function showFeeds()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->element('link', array('rel' => 'alternate',
 | 
					        $this->element('link', array('rel' => 'alternate',
 | 
				
			||||||
                                     'href' => common_local_url('allrss', array('nickname' =>
 | 
					                                     'href' => common_local_url('allrss', array('nickname' =>
 | 
				
			||||||
                                                                               $user->nickname)),
 | 
															$this->user->nickname)),
 | 
				
			||||||
                                     'type' => 'application/rss+xml',
 | 
					                                     'type' => 'application/rss+xml',
 | 
				
			||||||
                                     'title' => sprintf(_('Feed for friends of %s'), $user->nickname)));
 | 
					                                     'title' => sprintf(_('Feed for friends of %s'), $this->user->nickname)));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    function showLocalNav()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
						$nav = new PersonalGroupNav($this);
 | 
				
			||||||
 | 
						$nav->show();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function show_top($user)
 | 
					    function showExportData()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $cur = common_current_user();
 | 
					        $fl = new FeedList($this);
 | 
				
			||||||
 | 
					        $fl->show(array(0=>array('href'=>common_local_url('allrss', array('nickname' => $this->user->nickname)),
 | 
				
			||||||
        if ($cur && $cur->id == $user->id) {
 | 
									 'type' => 'rss',
 | 
				
			||||||
            common_notice_form('all');
 | 
									 'version' => 'RSS 1.0',
 | 
				
			||||||
        }
 | 
									 'item' => 'allrss')));
 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->views_menu();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->show_feeds_list(array(0=>array('href'=>common_local_url('allrss', array('nickname' => $user->nickname)),
 | 
					 | 
				
			||||||
                                              'type' => 'rss',
 | 
					 | 
				
			||||||
                                              'version' => 'RSS 1.0',
 | 
					 | 
				
			||||||
                                              'item' => 'allrss')));
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    function show_notices($user)
 | 
					    function showContent()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        $notice = $this->user->noticesWithFriends(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					        $nl = new NoticeList($notice, $this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $page = $this->trimmed('page');
 | 
					        $cnt = $nl->show();
 | 
				
			||||||
        if (!$page) {
 | 
						
 | 
				
			||||||
            $page = 1;
 | 
					        $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE,
 | 
				
			||||||
        }
 | 
					                          $this->page, 'all', array('nickname' => $this->user->nickname));
 | 
				
			||||||
 | 
					 | 
				
			||||||
        $notice = $user->noticesWithFriends(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $cnt = $this->show_notice_list($notice);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
 | 
					 | 
				
			||||||
                          $page, 'all', array('nickname' => $user->nickname));
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user