| | |
| | | private $env = array(); |
| | | private $texts = array(); |
| | | private $commands = array(); |
| | | private $callbacks = array(); |
| | | private $message = null; |
| | | |
| | | public $type = 'js'; |
| | | public $ajax_call = true; |
| | |
| | | */ |
| | | public function command() |
| | | { |
| | | $this->commands[] = func_get_args(); |
| | | $cmd = func_get_args(); |
| | | |
| | | if (strpos($cmd[0], 'plugin.') === 0) |
| | | $this->callbacks[] = $cmd; |
| | | else |
| | | $this->commands[] = $cmd; |
| | | } |
| | | |
| | | |
| | |
| | | */ |
| | | public function add_label() |
| | | { |
| | | $arg_list = func_get_args(); |
| | | foreach ($arg_list as $i => $name) { |
| | | $args = func_get_args(); |
| | | if (count($args) == 1 && is_array($args[0])) |
| | | $args = $args[0]; |
| | | |
| | | foreach ($args as $name) { |
| | | $this->texts[$name] = rcube_label($name); |
| | | } |
| | | } |
| | |
| | | * @param string Message to display |
| | | * @param string Message type [notice|confirm|error] |
| | | * @param array Key-value pairs to be replaced in localized text |
| | | * @param boolean Override last set message |
| | | * @uses self::command() |
| | | */ |
| | | public function show_message($message, $type='notice', $vars=null) |
| | | public function show_message($message, $type='notice', $vars=null, $override=true) |
| | | { |
| | | $this->command( |
| | | 'display_message', |
| | | rcube_label(array('name' => $message, 'vars' => $vars)), |
| | | $type |
| | | ); |
| | | if ($override || !$this->message) { |
| | | $this->message = $message; |
| | | $this->command( |
| | | 'display_message', |
| | | rcube_label(array('name' => $message, 'vars' => $vars)), |
| | | $type |
| | | ); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | if (!empty($this->texts)) |
| | | $response['texts'] = $this->texts; |
| | | |
| | | // send response code |
| | | // send function calls |
| | | $response['exec'] = $this->get_js_commands() . $add; |
| | | |
| | | if (!empty($this->callbacks)) |
| | | $response['callbacks'] = $this->callbacks; |
| | | |
| | | echo json_serialize($response); |
| | | } |