X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FModPlus%2FModPlusPlugin.php;h=816034f83126a37fce7d82838f03d107c4981312;hb=9101a1db3d6b369bf09590e8de21d66996c3eda1;hp=d2b7c09346ba4a8758d820812b7dad1eab5b0c52;hpb=b09276635c6e20290f0955c4f86ff4a13c7774de;p=quix0rs-gnu-social.git diff --git a/plugins/ModPlus/ModPlusPlugin.php b/plugins/ModPlus/ModPlusPlugin.php index d2b7c09346..816034f831 100644 --- a/plugins/ModPlus/ModPlusPlugin.php +++ b/plugins/ModPlus/ModPlusPlugin.php @@ -17,9 +17,7 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET')) { - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } /** * Some UI extras for now... @@ -29,88 +27,75 @@ if (!defined('STATUSNET')) { */ class ModPlusPlugin extends Plugin { - function onPluginVersion(&$versions) + function onPluginVersion(array &$versions) { $versions[] = array('name' => 'ModPlus', - 'version' => STATUSNET_VERSION, + 'version' => GNUSOCIAL_VERSION, 'author' => 'Brion Vibber', 'homepage' => 'http://status.net/wiki/Plugin:ModPlus', 'rawdescription' => - _m('UI extensions for profile moderation actions.')); + // TRANS: Plugin description. + _m('UI extension for profile moderation actions.')); return true; } /** - * Load JS at runtime if we're logged in. + * Load JS at runtime. * * @param Action $action * @return boolean hook result */ - function onEndShowScripts($action) + function onEndShowScripts(Action $action) { - $user = common_current_user(); - if ($user) { - $action->script($this->path('modplus.js')); - } + $action->script($this->path('js/modplus.js')); return true; } - function onEndShowStatusNetStyles($action) { - $action->cssLink($this->path('modplus.css')); + public function onEndShowStylesheets(Action $action) { + $action->cssLink($this->path('css/modplus.css')); return true; } /** - * Autoloader - * - * Loads our classes if they're requested. + * Add per-profile info popup menu for author on notice lists. * - * @param string $cls Class requested - * - * @return boolean hook return + * @param NoticeListItem $item + * @return boolean hook value */ - function onAutoload($cls) + function onEndShowNoticeItemAuthor(Profile $profile, HTMLOutputter $out) { - switch ($cls) - { - case 'RemoteprofileAction': - case 'RemoteProfileAction': - require_once dirname(__FILE__) . '/remoteprofileaction.php'; - return false; - default: - return true; - } + $this->showProfileOptions($out, $profile); + return true; } /** - * Add OpenID-related paths to the router table + * Add per-profile info popup menu on profile lists. * - * Hook for RouterInitialized event. - * - * @param Net_URL_Mapper $m URL mapper - * - * @return boolean hook return + * @param ProfileListItem $item */ - function onStartInitializeRouter($m) + function onStartProfileListItemProfile($item) { - $m->connect('user/remote/:id', - array('action' => 'remoteprofile'), - array('id' => '[\d]+')); - + $this->showProfileOptions($item->out, $item->profile->getProfile()); return true; } - function onStartShowNoticeItem($item) + /** + * Build common remote-profile options structure. + * Currently only adds output for remote profiles, nothing for local users. + * + * @param HTMLOutputter $out + * @param Profile $profile + */ + protected function showProfileOptions(HTMLOutputter $out, Profile $profile) { - $profile = $item->profile; - $isRemote = !(User::staticGet('id', $profile->id)); - if ($isRemote) { - $target = common_local_url('remoteprofile', array('id' => $profile->id)); + if (!$profile->isGroup() && !$profile->isLocal()) { + $target = common_local_url('userbyid', array('id' => $profile->getID())); + // TRANS: Label for access to remote profile options. $label = _m('Remote profile options...'); - $item->out->elementStart('div', 'remote-profile-options'); - $item->out->element('a', array('href' => $target), $label); - $item->out->elementEnd('div'); + $out->elementStart('div', 'remote-profile-options'); + $out->element('a', array('href' => $target), $label); + $out->elementEnd('div'); } } }