X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FTagSub%2FTagSubPlugin.php;h=ed65665ecc6c3f7dc0d6b4fbc6fd660c9dc763e4;hb=d6b28c64830f632bb2f4b6f3c9369b9e56ad217a;hp=ff6c038bc34f81590c58f38801d79bd9ee83939b;hpb=7785407c65274fac632b52acc84c3a045f7dfeeb;p=quix0rs-gnu-social.git diff --git a/plugins/TagSub/TagSubPlugin.php b/plugins/TagSub/TagSubPlugin.php index ff6c038bc3..ed65665ecc 100644 --- a/plugins/TagSub/TagSubPlugin.php +++ b/plugins/TagSub/TagSubPlugin.php @@ -60,41 +60,14 @@ class TagSubPlugin extends Plugin return true; } - /** - * Load related modules when needed - * - * @param string $cls Name of the class to be loaded - * - * @return boolean hook value; true means continue processing, false means stop. - */ - function onAutoload($cls) - { - $dir = dirname(__FILE__); - - switch ($cls) - { - case 'TagSub': - include_once $dir.'/'.$cls.'.php'; - return false; - case 'TagsubAction': - case 'TagunsubAction': - case 'TagSubForm': - case 'TagUnsubForm': - include_once $dir.'/'.strtolower($cls).'.php'; - return false; - default: - return true; - } - } - /** * Map URLs to actions * - * @param Net_URL_Mapper $m path-to-action mapper + * @param URLMapper $m path-to-action mapper * * @return boolean hook value; true means continue processing, false means stop. */ - function onRouterInitialized($m) + public function onRouterInitialized(URLMapper $m) { $m->connect('tag/:tag/subscribe', array('action' => 'tagsub'), @@ -116,7 +89,7 @@ class TagSubPlugin extends Plugin * * @return value */ - function onPluginVersion(&$versions) + function onPluginVersion(array &$versions) { $versions[] = array('name' => 'TagSub', 'version' => self::VERSION, @@ -163,7 +136,8 @@ class TagSubPlugin extends Plugin function onStartTagShowContent(TagAction $action) { $user = common_current_user(); - if ($user) { + + if ($user instanceof User) { $tag = $action->trimmed('tag'); $tagsub = TagSub::pkeyGet(array('tag' => $tag, 'profile_id' => $user->id)); @@ -180,6 +154,7 @@ class TagSubPlugin extends Plugin $action->elementEnd('ul'); $action->elementEnd('div'); } + return true; } @@ -190,52 +165,36 @@ class TagSubPlugin extends Plugin * * @return boolean hook return */ - function onEndSubGroupNav($widget) { $action = $widget->out; $action_name = $action->trimmed('action'); - $widget->item('tagsubs', - array(), - // TRANS: SubMirror plugin menu item on user settings page. - _m('MENU', 'Tags'), - // TRANS: SubMirror plugin tooltip for user settings menu item. - _m('Configure tag subscriptions')); + $action->menuItem(common_local_url('tagsubs', array('nickname' => $action->user->nickname)), + // TRANS: SubMirror plugin menu item on user settings page. + _m('MENU', 'Tags'), + // TRANS: SubMirror plugin tooltip for user settings menu item. + _m('Configure tag subscriptions'), + $action_name == 'tagsubs' && $action->arg('nickname') == $action->user->nickname); return true; } - /** - * Add a count of mirrored feeds into a user's profile sidebar stats. - * - * @param Profile $profile - * @param array $stats - * @return boolean hook return value - */ - function onProfileStats($profile, &$stats) + function onEndDefaultLocalNav($menu, $user) { - $cur = common_current_user(); - if (!empty($cur) && $cur->id == $profile->id) { - $tagsub = new TagSub(); - $tagsub->profile_id = $profile->id; - $entry = array( - 'id' => 'tagsubs', - 'label' => _m('Tag subscriptions'), - 'link' => common_local_url('tagsubs'), - 'value' => $tagsub->count(), - ); - - $insertAt = count($stats); - foreach ($stats as $i => $row) { - if ($row['id'] == 'groups') { - // Slip us in after them. - $insertAt = $i + 1; - break; - } + $user = common_current_user(); + + if (!empty($user)) { + + $tags = TagSub::forProfile($user->getProfile()); + + if (!empty($tags) && count($tags) > 0) { + $tagSubMenu = new TagSubMenu($menu->out, $user, $tags); + // TRANS: Menu item text for tags submenu. + $menu->submenu(_m('Tags'), $tagSubMenu); } - array_splice($stats, $insertAt, 0, array($entry)); } + return true; } }