Take remote profiles into account when looking up canonical profile URIs
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
				
			|||||||
\InitializePlugin: a chance to initialize a plugin in a complete environment
 | 
					InitializePlugin: a chance to initialize a plugin in a complete environment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CleanupPlugin: a chance to cleanup a plugin at the end of a program
 | 
					CleanupPlugin: a chance to cleanup a plugin at the end of a program
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -722,3 +722,6 @@ StartRobotsTxt: Before outputting the robots.txt page
 | 
				
			|||||||
EndRobotsTxt: After the default robots.txt page (good place for customization)
 | 
					EndRobotsTxt: After the default robots.txt page (good place for customization)
 | 
				
			||||||
- &$action: RobotstxtAction being shown
 | 
					- &$action: RobotstxtAction being shown
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GetProfileUri: When determining the canonical URI for a given profile
 | 
				
			||||||
 | 
					- &$profile: the current profile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1036,7 +1036,7 @@ class Notice extends Memcached_DataObject
 | 
				
			|||||||
                $xs->element(
 | 
					                $xs->element(
 | 
				
			||||||
                    'link', array(
 | 
					                    'link', array(
 | 
				
			||||||
                        'rel' => 'ostatus:attention',
 | 
					                        'rel' => 'ostatus:attention',
 | 
				
			||||||
                        'href' => $profile->getAcctUri()
 | 
					                        'href' => $profile->getUri()
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -810,10 +810,7 @@ class Profile extends Memcached_DataObject
 | 
				
			|||||||
        $xs->element(
 | 
					        $xs->element(
 | 
				
			||||||
            'id',
 | 
					            'id',
 | 
				
			||||||
            null,
 | 
					            null,
 | 
				
			||||||
            common_local_url(
 | 
					            $this->getUri()
 | 
				
			||||||
                'userbyid',
 | 
					 | 
				
			||||||
                array('id' => $this->id)
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
        $xs->element('title', null, $this->getBestName());
 | 
					        $xs->element('title', null, $this->getBestName());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -835,9 +832,21 @@ class Profile extends Memcached_DataObject
 | 
				
			|||||||
        return $xs->getString();
 | 
					        return $xs->getString();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function getAcctUri()
 | 
					    function getUri()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return $this->nickname . '@' . common_config('site', 'server');
 | 
					        if (Event::handle('GetProfileUri', array($this))) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $remote = Remote_profile::staticGet('id', $this->id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (!empty($remote)) {
 | 
				
			||||||
 | 
					                return $remote->uri;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                return common_local_url(
 | 
				
			||||||
 | 
					                    'userbyid',
 | 
				
			||||||
 | 
					                    array('id' => $this->id)
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user