X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FSearchSub%2FSearchSubPlugin.php;h=de131c2b04f161f59e13eee161910f36e3c02384;hb=37cf7c0e8ccaffb11b743da45eaea4a2897bad94;hp=130600a41afd855cc1d666d759254596914be259;hpb=341bef5e017d655a6c098639f08f46bc6efc6d60;p=quix0rs-gnu-social.git diff --git a/plugins/SearchSub/SearchSubPlugin.php b/plugins/SearchSub/SearchSubPlugin.php index 130600a41a..de131c2b04 100644 --- a/plugins/SearchSub/SearchSubPlugin.php +++ b/plugins/SearchSub/SearchSubPlugin.php @@ -78,8 +78,14 @@ class SearchSubPlugin extends Plugin return false; case 'SearchsubAction': 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: @@ -103,6 +109,9 @@ class SearchSubPlugin extends Plugin array('action' => 'searchunsub'), array('search' => Router::REGEX_TAG)); + $m->connect(':nickname/search-subscriptions', + array('action' => 'searchsubs'), + array('nickname' => Nickname::DISPLAY_FMT)); return true; } @@ -209,4 +218,89 @@ class SearchSubPlugin extends Plugin } return true; } + + /** + * Menu item for personal subscriptions/groups area + * + * @param Widget $widget Widget being executed + * + * @return boolean hook return + */ + + function onEndSubGroupNav($widget) + { + $action = $widget->out; + $action_name = $action->trimmed('action'); + + $action->menuItem(common_local_url('searchsubs', array('nickname' => $action->user->nickname)), + // TRANS: SearchSub plugin menu item on user settings page. + _m('MENU', 'Searches'), + // TRANS: SearchSub plugin tooltip for user settings menu item. + _m('Configure search subscriptions'), + $action_name == 'searchsubs' && $action->arg('nickname') == $action->user->nickname); + + return true; + } + + /** + * Replace the built-in stub track commands with ones that control + * search subscriptions. + * + * @param CommandInterpreter $cmd + * @param string $arg + * @param User $user + * @param Command $result + * @return boolean hook result + */ + function onEndInterpretCommand($cmd, $arg, $user, &$result) + { + 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; + } + } + + 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); + } + } + + return true; + } + }