X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FSearchSub%2FSearchSubPlugin.php;h=de131c2b04f161f59e13eee161910f36e3c02384;hb=37cf7c0e8ccaffb11b743da45eaea4a2897bad94;hp=f7da8c44d9acf1ccffd0bf3e3ee80d326731dba0;hpb=390881e8176c920427b19d4299b7629ed2f3900a;p=quix0rs-gnu-social.git diff --git a/plugins/SearchSub/SearchSubPlugin.php b/plugins/SearchSub/SearchSubPlugin.php index f7da8c44d9..de131c2b04 100644 --- a/plugins/SearchSub/SearchSubPlugin.php +++ b/plugins/SearchSub/SearchSubPlugin.php @@ -80,7 +80,12 @@ class SearchSubPlugin extends Plugin case 'SearchunsubAction': case 'SearchsubsAction': case 'SearchSubForm': + case 'SearchSubMenu': case 'SearchUnsubForm': + case 'SearchSubTrackCommand': + case 'SearchSubTrackOffCommand': + case 'SearchSubTrackingCommand': + case 'SearchSubUntrackCommand': include_once $dir.'/'.strtolower($cls).'.php'; return false; default: @@ -238,35 +243,64 @@ class SearchSubPlugin extends Plugin } /** - * Add a count of mirrored feeds into a user's profile sidebar stats. + * Replace the built-in stub track commands with ones that control + * search subscriptions. * - * @param Profile $profile - * @param array $stats - * @return boolean hook return value + * @param CommandInterpreter $cmd + * @param string $arg + * @param User $user + * @param Command $result + * @return boolean hook result */ - function onProfileStats($profile, &$stats) + function onEndInterpretCommand($cmd, $arg, $user, &$result) { - $cur = common_current_user(); - if (!empty($cur) && $cur->id == $profile->id) { - $searchsub = new SearchSub(); - $searchsub ->profile_id = $profile->id; - $entry = array( - 'id' => 'searchsubs', - 'label' => _m('Search subscriptions'), - 'link' => common_local_url('searchsubs', array('nickname' => $profile->nickname)), - 'value' => $searchsub->count(), - ); + if ($result instanceof TrackCommand) { + $result = new SearchSubTrackCommand($user, $arg); + return false; + } else if ($result instanceof TrackOffCommand) { + $result = new SearchSubTrackOffCommand($user); + return false; + } else if ($result instanceof TrackingCommand) { + $result = new SearchSubTrackingCommand($user); + return false; + } else if ($result instanceof UntrackCommand) { + $result = new SearchSubUntrackCommand($user, $arg); + return false; + } else { + return true; + } + } - $insertAt = count($stats); - foreach ($stats as $i => $row) { - if ($row['id'] == 'groups') { - // Slip us in after them. - $insertAt = $i + 1; - break; - } + function onHelpCommandMessages($cmd, &$commands) + { + // TRANS: Help message for IM/SMS command "track " + $commands["track "] = _m('COMMANDHELP', "Start following notices matching the given search query."); + // TRANS: Help message for IM/SMS command "untrack " + $commands["untrack "] = _m('COMMANDHELP', "Stop following notices matching the given search query."); + // TRANS: Help message for IM/SMS command "track off" + $commands["track off"] = _m('COMMANDHELP', "Disable all tracked search subscriptions."); + // TRANS: Help message for IM/SMS command "untrack all" + $commands["untrack all"] = _m('COMMANDHELP', "Disable all tracked search subscriptions."); + // TRANS: Help message for IM/SMS command "tracks" + $commands["tracks"] = _m('COMMANDHELP', "List all your search subscriptions."); + // TRANS: Help message for IM/SMS command "tracking" + $commands["tracking"] = _m('COMMANDHELP', "List all your search subscriptions."); + } + + function onEndDefaultLocalNav($menu, $user) + { + $user = common_current_user(); + + if (!empty($user)) { + $searches = SearchSub::forProfile($user->getProfile()); + + if (!empty($searches) && count($searches) > 0) { + $searchSubMenu = new SearchSubMenu($menu->out, $user, $searches); + $menu->submenu(_m('Searches'), $searchSubMenu); } - array_splice($stats, $insertAt, 0, array($entry)); } + return true; } + }