Stub RemoteprofileAction to show the standard profile header stuff for offsite users -- provides a way to get at the mod & block controls for remote users.

This commit is contained in:
Brion Vibber 2010-11-15 15:34:12 -08:00
parent 0d0e51292d
commit 0e763b4902
2 changed files with 124 additions and 0 deletions

View File

@ -40,4 +40,59 @@ class ModPlusPlugin extends Plugin
return true;
}
/**
* Load JS at runtime if we're logged in.
*
* @param Action $action
* @return boolean hook result
*/
function onEndShowScripts($action)
{
$user = common_current_user();
if ($user) {
$action->script('plugins/ModPlus/modplus.js');
}
return true;
}
/**
* Autoloader
*
* Loads our classes if they're requested.
*
* @param string $cls Class requested
*
* @return boolean hook return
*/
function onAutoload($cls)
{
switch ($cls)
{
case 'RemoteprofileAction':
case 'RemoteProfileAction':
require_once dirname(__FILE__) . '/remoteprofileaction.php';
return false;
default:
return true;
}
}
/**
* Add OpenID-related paths to the router table
*
* Hook for RouterInitialized event.
*
* @param Net_URL_Mapper $m URL mapper
*
* @return boolean hook return
*/
function onStartInitializeRouter($m)
{
$m->connect('user/remote/:id',
array('action' => 'remoteprofile'),
array('id' => '[\d]+'));
return true;
}
}

View File

@ -0,0 +1,69 @@
<?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;
}
$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;
}
}
function showContent()
{
$this->showProfile();
// don't show notices
}
function getFeeds()
{
// none
}
function extraHead()
{
// none
}
function showLocalNav()
{
// none...?
}
function showSections()
{
ProfileAction::showSections();
// skip tag cloud
}
}