| | |
| | | |
| | | /** |
| | | * 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 = array_intersect_key($this->env, array('extwin'=>1, 'framed'=>1)); |
| | | $env = $all ? null : array_intersect_key($this->env, array('extwin'=>1, 'framed'=>1)); |
| | | |
| | | parent::reset(); |
| | | |
| | | // let some env variables survive |
| | | $this->env = $this->js_env = $env; |
| | | $this->js_labels = array(); |
| | | $this->js_commands = array(); |
| | | $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(); |
| | | } |
| | | |
| | |
| | | $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']); |