forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /* 
 | |
|  * To change this template, choose Tools | Templates
 | |
|  * and open the template in the editor.
 | |
|  */
 | |
| 
 | |
| class RemoteProfileAction extends ShowstreamAction
 | |
| {
 | |
|     function prepare($args)
 | |
|     {
 | |
|         OwnerDesignAction::prepare($args); // skip the ProfileAction code and replace it...
 | |
| 
 | |
|         $id = $this->arg('id');
 | |
|         $this->user = false;
 | |
|         $this->profile = Profile::staticGet('id', $id);
 | |
| 
 | |
|         if (!$this->profile) {
 | |
|             $this->serverError(_('User has no profile.'));
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         $user = User::staticGet('id', $this->profile->id);
 | |
|         if ($user) {
 | |
|             // This is a local user -- send to their regular profile.
 | |
|             $url = common_local_url('showstream', array('nickname' => $user->nickname));
 | |
|             common_redirect($url);
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|         $this->tag = $this->trimmed('tag');
 | |
|         $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
 | |
|         common_set_returnto($this->selfUrl());
 | |
|         return true;
 | |
|     }
 | |
| 
 | |
|     function handle($args)
 | |
|     {
 | |
|         // skip yadis thingy
 | |
|         $this->showPage();
 | |
|     }
 | |
| 
 | |
|     function title()
 | |
|     {
 | |
|         // maybe fixed in 0.9.x
 | |
|         if (!empty($this->profile->fullname)) {
 | |
|             $base = $this->profile->fullname . ' (' . $this->profile->nickname . ') ';
 | |
|         } else {
 | |
|             $base = $this->profile->nickname;
 | |
|         }
 | |
|         $host = parse_url($this->profile->profileurl, PHP_URL_HOST);
 | |
|         return sprintf(_m('%s on %s'), $base, $host);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Instead of showing notices, link to the original offsite profile.
 | |
|      */
 | |
|     function showNotices()
 | |
|     {
 | |
|         $url = $this->profile->profileurl;
 | |
|         $host = parse_url($url, PHP_URL_HOST);
 | |
|         $markdown = sprintf(
 | |
|                 _m('This remote profile is registered on another site; see [%s\'s original profile page on %s](%s).'),
 | |
|                 $this->profile->nickname,
 | |
|                 $host,
 | |
|                 $url);
 | |
|         $html = common_markup_to_html($markdown);
 | |
|         $this->raw($html);
 | |
| 
 | |
|         if ($this->profile->hasRole(Profile_role::SILENCED)) {
 | |
|             $markdown = _m('Site moderators have silenced this profile, which prevents delivery of new messages to any users on this site.');
 | |
|             $this->raw(common_markup_to_html($markdown));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function getFeeds()
 | |
|     {
 | |
|         // none
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Don't do various extra stuff, and also trim some things to avoid crawlers.
 | |
|      */
 | |
|     function extraHead()
 | |
|     {
 | |
|         $this->element('meta', array('name' => 'robots',
 | |
|                                      'content' => 'noindex,nofollow'));
 | |
|     }
 | |
| 
 | |
|     function showLocalNav()
 | |
|     {
 | |
|         $nav = new PublicGroupNav($this);
 | |
|         $nav->show();
 | |
|     }
 | |
| 
 | |
|     function showSections()
 | |
|     {
 | |
|         ProfileAction::showSections();
 | |
|         // skip tag cloud
 | |
|     }
 | |
| 
 | |
|     function showStatistics()
 | |
|     {
 | |
|         // skip
 | |
|     }
 | |
| 
 | |
| } |