summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-11-15 15:34:12 -0800
committerBrion Vibber <brion@pobox.com>2010-11-15 15:34:12 -0800
commit0e763b49024703efc3e2bbadad83b03d3dd62790 (patch)
tree6378983e5a0dd559982cb17ca5332b29e324cf9d
parent0d0e51292d97e0b3a07cf1d12031df0b8f69823f (diff)
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.
-rw-r--r--plugins/ModPlus/ModPlusPlugin.php55
-rw-r--r--plugins/ModPlus/remoteprofileaction.php69
2 files changed, 124 insertions, 0 deletions
diff --git a/plugins/ModPlus/ModPlusPlugin.php b/plugins/ModPlus/ModPlusPlugin.php
index 485b82181..89bbdf857 100644
--- a/plugins/ModPlus/ModPlusPlugin.php
+++ b/plugins/ModPlus/ModPlusPlugin.php
@@ -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;
+ }
}
diff --git a/plugins/ModPlus/remoteprofileaction.php b/plugins/ModPlus/remoteprofileaction.php
new file mode 100644
index 000000000..ca8204511
--- /dev/null
+++ b/plugins/ModPlus/remoteprofileaction.php
@@ -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
+ }
+
+} \ No newline at end of file