| | |
| | | |
| | | if (!empty($_REQUEST['_extwin'])) |
| | | $this->set_env('extwin', 1); |
| | | if ($this->framed || !empty($_REQUEST['_framed'])) |
| | | $this->set_env('framed', 1); |
| | | |
| | | // add common javascripts |
| | | $this->add_script('var '.self::JS_OBJECT_NAME.' = new rcube_webmail();', 'head_top'); |
| | |
| | | |
| | | /** |
| | | * Delete all stored env variables and commands |
| | | * |
| | | * @param bool $all Reset all env variables (including internal) |
| | | */ |
| | | public function reset() |
| | | public function reset($all = false) |
| | | { |
| | | $env = $all ? null : array_intersect_key($this->env, array('extwin'=>1, 'framed'=>1)); |
| | | |
| | | parent::reset(); |
| | | $this->js_env = array(); |
| | | $this->js_labels = array(); |
| | | $this->js_commands = array(); |
| | | |
| | | // let some env variables survive |
| | | $this->env = $this->js_env = $env; |
| | | $this->js_labels = array(); |
| | | $this->js_commands = array(); |
| | | $this->script_files = array(); |
| | | $this->scripts = array(); |
| | | $this->header = ''; |
| | |
| | | $this->parse($templ, false); |
| | | } |
| | | else { |
| | | $this->framed = $templ == 'iframe' ? true : $this->framed; |
| | | $this->framed = true; |
| | | $this->write(); |
| | | } |
| | | |
| | |
| | | // unlock interface after iframe load |
| | | $unlock = preg_replace('/[^a-z0-9]/i', '', $_REQUEST['_unlock']); |
| | | if ($this->framed) { |
| | | array_unshift($this->js_commands, array('set_busy', false, null, $unlock)); |
| | | array_unshift($this->js_commands, array('iframe_loaded', $unlock)); |
| | | } |
| | | else if ($unlock) { |
| | | array_unshift($this->js_commands, array('hide_message', $unlock)); |
| | |
| | | $this->set_env('request_token', $this->app->get_request_token()); |
| | | |
| | | // write all env variables to client |
| | | $js = $this->framed ? "if(window.parent) {\n" : ''; |
| | | $js .= $this->get_js_commands() . ($this->framed ? ' }' : ''); |
| | | $this->add_script($js, 'head_top'); |
| | | if ($commands = $this->get_js_commands()) { |
| | | $js = $this->framed ? "if (window.parent) {\n" : ''; |
| | | $js .= $commands . ($this->framed ? ' }' : ''); |
| | | $this->add_script($js, 'head_top'); |
| | | } |
| | | |
| | | // send clickjacking protection headers |
| | | $iframe = $this->framed || !empty($_REQUEST['_framed']); |
| | |
| | | * |
| | | * @param string $input |
| | | * @return string |
| | | * @uses rcube_output_html::parse_xml() |
| | | * @uses rcmail_output_html::parse_xml() |
| | | * @since 0.1-rc1 |
| | | */ |
| | | public function just_parse($input) |