From bd12546984296047c125742670d0c6f7c24651dd Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 16 Mar 2011 16:52:37 -0700 Subject: [PATCH] Allow plugins to modify or append command help text; broke the command help down into pieces which also will aid translators in future, as the entire message blob won't change every time something gets fiddled with. --- lib/command.php | 123 +++++++++++++++++++++++++------------ lib/commandinterpreter.php | 2 +- 2 files changed, 84 insertions(+), 41 deletions(-) diff --git a/lib/command.php b/lib/command.php index 39fb283dd8..03baa8212d 100644 --- a/lib/command.php +++ b/lib/command.php @@ -911,45 +911,88 @@ class HelpCommand extends Command { function handle($channel) { - $channel->output($this->user, - // TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. - _("Commands:\n". - "on - turn on notifications\n". - "off - turn off notifications\n". - "help - show this help\n". - "follow - subscribe to user\n". - "groups - lists the groups you have joined\n". - "subscriptions - list the people you follow\n". - "subscribers - list the people that follow you\n". - "leave - unsubscribe from user\n". - "d - direct message to user\n". - "get - get last notice from user\n". - "whois - get profile info on user\n". - "lose - force user to stop following you\n". - "fav - add user's last notice as a 'fave'\n". - "fav # - add notice with the given id as a 'fave'\n". - "repeat # - repeat a notice with a given id\n". - "repeat - repeat the last notice from user\n". - "reply # - reply to notice with a given id\n". - "reply - reply to the last notice from user\n". - "join - join group\n". - "login - Get a link to login to the web interface\n". - "drop - leave group\n". - "stats - get your stats\n". - "stop - same as 'off'\n". - "quit - same as 'off'\n". - "sub - same as 'follow'\n". - "unsub - same as 'leave'\n". - "last - same as 'get'\n". - "on - not yet implemented.\n". - "off - not yet implemented.\n". - "nudge - remind a user to update.\n". - "invite - not yet implemented.\n". - "track - not yet implemented.\n". - "untrack - not yet implemented.\n". - "track off - not yet implemented.\n". - "untrack all - not yet implemented.\n". - "tracks - not yet implemented.\n". - "tracking - not yet implemented.\n")); + // TRANS: Header line of help text for commands. + $out = array(_m('COMMANDHELP', "Commands:")); + $commands = array(// TRANS: Help message for IM/SMS command "on" + "on" => _m('COMMANDHELP', "turn on notifications"), + // TRANS: Help message for IM/SMS command "off" + "off" => _m('COMMANDHELP', "turn off notifications"), + // TRANS: Help message for IM/SMS command "help" + "help" => _m('COMMANDHELP', "show this help"), + // TRANS: Help message for IM/SMS command "follow " + "follow " => _m('COMMANDHELP', "subscribe to user"), + // TRANS: Help message for IM/SMS command "groups" + "groups" => _m('COMMANDHELP', "lists the groups you have joined"), + // TRANS: Help message for IM/SMS command "subscriptions" + "subscriptions" => _m('COMMANDHELP', "list the people you follow"), + // TRANS: Help message for IM/SMS command "subscribers" + "subscribers" => _m('COMMANDHELP', "list the people that follow you"), + // TRANS: Help message for IM/SMS command "leave " + "leave " => _m('COMMANDHELP', "unsubscribe from user"), + // TRANS: Help message for IM/SMS command "d " + "d " => _m('COMMANDHELP', "direct message to user"), + // TRANS: Help message for IM/SMS command "get " + "get " => _m('COMMANDHELP', "get last notice from user"), + // TRANS: Help message for IM/SMS command "whois " + "whois " => _m('COMMANDHELP', "get profile info on user"), + // TRANS: Help message for IM/SMS command "lose " + "lose " => _m('COMMANDHELP', "force user to stop following you"), + // TRANS: Help message for IM/SMS command "fav " + "fav " => _m('COMMANDHELP', "add user's last notice as a 'fave'"), + // TRANS: Help message for IM/SMS command "fav #" + "fav #" => _m('COMMANDHELP', "add notice with the given id as a 'fave'"), + // TRANS: Help message for IM/SMS command "repeat #" + "repeat #" => _m('COMMANDHELP', "repeat a notice with a given id"), + // TRANS: Help message for IM/SMS command "repeat " + "repeat " => _m('COMMANDHELP', "repeat the last notice from user"), + // TRANS: Help message for IM/SMS command "reply #" + "reply #" => _m('COMMANDHELP', "reply to notice with a given id"), + // TRANS: Help message for IM/SMS command "reply " + "reply " => _m('COMMANDHELP', "reply to the last notice from user"), + // TRANS: Help message for IM/SMS command "join " + "join " => _m('COMMANDHELP', "join group"), + // TRANS: Help message for IM/SMS command "login" + "login" => _m('COMMANDHELP', "Get a link to login to the web interface"), + // TRANS: Help message for IM/SMS command "drop " + "drop " => _m('COMMANDHELP', "leave group"), + // TRANS: Help message for IM/SMS command "stats" + "stats" => _m('COMMANDHELP', "get your stats"), + // TRANS: Help message for IM/SMS command "stop" + "stop" => _m('COMMANDHELP', "same as 'off'"), + // TRANS: Help message for IM/SMS command "quit" + "quit" => _m('COMMANDHELP', "same as 'off'"), + // TRANS: Help message for IM/SMS command "sub " + "sub " => _m('COMMANDHELP', "same as 'follow'"), + // TRANS: Help message for IM/SMS command "unsub " + "unsub " => _m('COMMANDHELP', "same as 'leave'"), + // TRANS: Help message for IM/SMS command "last " + "last " => _m('COMMANDHELP', "same as 'get'"), + // TRANS: Help message for IM/SMS command "on " + "on " => _m('COMMANDHELP', "not yet implemented."), + // TRANS: Help message for IM/SMS command "off " + "off " => _m('COMMANDHELP', "not yet implemented."), + // TRANS: Help message for IM/SMS command "nudge " + "nudge " => _m('COMMANDHELP', "remind a user to update."), + // TRANS: Help message for IM/SMS command "invite " + "invite " => _m('COMMANDHELP', "not yet implemented."), + // TRANS: Help message for IM/SMS command "track " + "track " => _m('COMMANDHELP', "not yet implemented."), + // TRANS: Help message for IM/SMS command "untrack " + "untrack " => _m('COMMANDHELP', "not yet implemented."), + // TRANS: Help message for IM/SMS command "track off" + "track off" => _m('COMMANDHELP', "not yet implemented."), + // TRANS: Help message for IM/SMS command "untrack all" + "untrack all" => _m('COMMANDHELP', "not yet implemented."), + // TRANS: Help message for IM/SMS command "tracks" + "tracks" => _m('COMMANDHELP', "not yet implemented."), + // TRANS: Help message for IM/SMS command "tracking" + "tracking" => _m('COMMANDHELP', "not yet implemented.")); + + // Give plugins a chance to add or override... + Event::handle('HelpCommandMessages', array($this, &$commands)); + foreach ($commands as $command => $help) { + $out[] = "$command - $help"; + } + $channel->output($this->user, implode("\n", $out)); } } diff --git a/lib/commandinterpreter.php b/lib/commandinterpreter.php index fe426f1fcd..6b1b70055e 100644 --- a/lib/commandinterpreter.php +++ b/lib/commandinterpreter.php @@ -314,7 +314,7 @@ class CommandInterpreter $result = false; } - Event::handle('EndInterpretCommand', array($cmd, $arg, $user, $result)); + Event::handle('EndInterpretCommand', array($cmd, $arg, $user, &$result)); } return $result; -- 2.39.5