| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2011-04-25 19:12:26 +02:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |  * To change this template, choose Tools | Templates | 
					
						
							|  |  |  |  * and open the template in the editor. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class RemoteProfileAction extends ShowstreamAction | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     function prepare($args) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-06-09 16:20:19 -04:00
										 |  |  |         Action::prepare($args); // skip the ProfileAction code and replace it...
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $id = $this->arg('id'); | 
					
						
							|  |  |  |         $this->user = false; | 
					
						
							| 
									
										
										
										
											2013-08-18 13:04:58 +02:00
										 |  |  |         $this->profile = Profile::getKV('id', $id); | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if (!$this->profile) { | 
					
						
							| 
									
										
										
										
											2011-04-25 14:48:19 +02:00
										 |  |  |             // TRANS: Error message displayed when referring to a user without a profile.
 | 
					
						
							| 
									
										
										
										
											2011-03-30 22:30:23 +02:00
										 |  |  |             $this->serverError(_m('User has no profile.')); | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |             return false; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-18 13:04:58 +02:00
										 |  |  |         $user = User::getKV('id', $this->profile->id); | 
					
						
							| 
									
										
										
										
											2010-11-15 15:40:07 -08:00
										 |  |  |         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; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |         $this->tag = $this->trimmed('tag'); | 
					
						
							|  |  |  |         $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; | 
					
						
							|  |  |  |         common_set_returnto($this->selfUrl()); | 
					
						
							| 
									
										
										
										
											2012-08-27 21:02:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $p = Profile::current(); | 
					
						
							|  |  |  |         if (empty($this->tag)) { | 
					
						
							|  |  |  |             $stream = new ProfileNoticeStream($this->profile, $p); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $stream = new TaggedProfileNoticeStream($this->profile, $this->tag, $p); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $this->notice = $stream->getNotices(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |         return true; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function handle($args) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // skip yadis thingy
 | 
					
						
							|  |  |  |         $this->showPage(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function title() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-04-25 19:12:26 +02:00
										 |  |  |         $base = $this->profile->getBestName(); | 
					
						
							| 
									
										
										
										
											2010-11-15 15:57:57 -08:00
										 |  |  |         $host = parse_url($this->profile->profileurl, PHP_URL_HOST); | 
					
						
							| 
									
										
										
										
											2011-04-25 19:12:26 +02:00
										 |  |  |         // TRANS: Remote profile action page title.
 | 
					
						
							|  |  |  |         // TRANS: %1$s is a username, %2$s is a hostname.
 | 
					
						
							|  |  |  |         return sprintf(_m('%1$s on %2$s'), $base, $host); | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:57:57 -08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Instead of showing notices, link to the original offsite profile. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     function showNotices() | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2010-11-15 15:57:57 -08:00
										 |  |  |         $url = $this->profile->profileurl; | 
					
						
							|  |  |  |         $host = parse_url($url, PHP_URL_HOST); | 
					
						
							|  |  |  |         $markdown = sprintf( | 
					
						
							| 
									
										
										
										
											2011-04-25 19:12:26 +02:00
										 |  |  |                 // TRANS: Message on remote profile page.
 | 
					
						
							|  |  |  |                 // TRANS: This message contains Markdown links in the form [description](link).
 | 
					
						
							|  |  |  |                 // TRANS: %1$s is a profile nickname, %2$s is a hostname, %3$s is a URL.
 | 
					
						
							|  |  |  |                 _m('This remote profile is registered on another site; see [%1$s\'s original profile page on %2$s](%3$s).'), | 
					
						
							| 
									
										
										
										
											2010-11-15 16:38:18 -08:00
										 |  |  |                 $this->profile->nickname, | 
					
						
							| 
									
										
										
										
											2010-11-15 15:57:57 -08:00
										 |  |  |                 $host, | 
					
						
							|  |  |  |                 $url); | 
					
						
							|  |  |  |         $html = common_markup_to_html($markdown); | 
					
						
							|  |  |  |         $this->raw($html); | 
					
						
							| 
									
										
										
										
											2010-11-15 16:12:16 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if ($this->profile->hasRole(Profile_role::SILENCED)) { | 
					
						
							| 
									
										
										
										
											2011-04-25 19:12:26 +02:00
										 |  |  |             // TRANS: Message on blocked remote profile page.
 | 
					
						
							| 
									
										
										
										
											2010-11-15 16:12:16 -08:00
										 |  |  |             $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)); | 
					
						
							| 
									
										
										
										
											2012-08-27 21:02:53 +02:00
										 |  |  |         }else{ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $pnl = null; | 
					
						
							|  |  |  |             if (Event::handle('ShowStreamNoticeList', array($this->notice, $this, &$pnl))) { | 
					
						
							|  |  |  |                 $pnl = new ProfileNoticeList($this->notice, $this); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             $cnt = $pnl->show(); | 
					
						
							|  |  |  |             if (0 == $cnt) { | 
					
						
							|  |  |  |                 $this->showEmptyListMessage(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $args = array('id' => $this->profile->id); | 
					
						
							|  |  |  |             if (!empty($this->tag)) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 $args['tag'] = $this->tag; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             $this->pagination($this->page>1, $cnt>NOTICES_PER_PAGE, $this->page, | 
					
						
							|  |  |  |                               'remoteprofile', $args); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 16:12:16 -08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function getFeeds() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // none
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 16:12:16 -08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Don't do various extra stuff, and also trim some things to avoid crawlers. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     function extraHead() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2010-11-15 16:12:16 -08:00
										 |  |  |         $this->element('meta', array('name' => 'robots', | 
					
						
							|  |  |  |                                      'content' => 'noindex,nofollow')); | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-11-15 15:57:57 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     function showLocalNav() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2012-08-28 00:25:53 +02:00
										 |  |  |         // skip
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-11-15 15:57:57 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     function showSections() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2012-08-27 19:41:28 +02:00
										 |  |  |         // skip
 | 
					
						
							| 
									
										
										
										
											2010-11-15 15:34:12 -08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 16:38:18 -08:00
										 |  |  |     function showStatistics() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // skip
 | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-04-25 19:12:26 +02:00
										 |  |  | } |