Skip to content

Commit

Permalink
Fix "rcmail is undefined" error in HTML attachment preview - regression
Browse files Browse the repository at this point in the history
from commit d30460a, small improvements
  • Loading branch information
alecpl committed Mar 17, 2013
1 parent 4c0c248 commit c60f58f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
2 changes: 1 addition & 1 deletion program/include/rcmail_html_page.php
Expand Up @@ -30,7 +30,7 @@ class rcmail_html_page extends rcmail_output_html
{
public function write($contents = '')
{
self::reset();
self::reset(true);

// load embed.css from skin folder (if exists)
if ($embed_css = $this->get_skin_file('/embed.css')) {
Expand Down
20 changes: 12 additions & 8 deletions program/include/rcmail_output_html.php
Expand Up @@ -307,17 +307,19 @@ public function show_message($message, $type='notice', $vars=null, $override=tru

/**
* 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 = '';
Expand Down Expand Up @@ -362,7 +364,7 @@ public function send($templ = null, $exit = true)
$this->parse($templ, false);
}
else {
$this->framed = $templ == 'iframe' ? true : $this->framed;
$this->framed = true;
$this->write();
}

Expand Down Expand Up @@ -396,9 +398,11 @@ public function write($template = '')
$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']);
Expand Down

0 comments on commit c60f58f

Please sign in to comment.