From 1730cf8d7b59c04e3db0b5425c5cd9401bfc1c43 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 24 Jan 2013 15:32:24 +0100 Subject: Load a default stylesheet (embed.css) from skin in plain html pages (e.g. attachment warnings and html messages) --- program/include/rcmail_html_page.php | 16 ++++++++++++++-- program/include/rcmail_output_html.php | 1 + program/steps/mail/get.inc | 12 ++++-------- skins/larry/embed.css | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 skins/larry/embed.css diff --git a/program/include/rcmail_html_page.php b/program/include/rcmail_html_page.php index 2624d590a..1d8391580 100644 --- a/program/include/rcmail_html_page.php +++ b/program/include/rcmail_html_page.php @@ -5,7 +5,7 @@ | program/include/rcmail_html_page.php | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2006-2012, The Roundcube Dev Team | + | Copyright (C) 2006-2013, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | @@ -21,7 +21,7 @@ /** - * Class to create HTML page output using a skin template + * Class to create an empty HTML page with some default styles * * @package Core * @subpackage View @@ -31,6 +31,18 @@ class rcmail_html_page extends rcmail_output_html public function write($contents = '') { self::reset(); + + // load embed.css from skin folder (if exists) + if ($embed_css = $this->get_skin_file('/embed.css')) { + $this->include_css($embed_css); + } + else { // set default styles for warning blocks inside the attachment part frame + $this->add_header(html::tag('style', array('type' => 'text/css'), + ".rcmail-inline-message { font-family: sans-serif; border:2px solid #ffdf0e; background:#fef893; padding:0.6em 1em; margin-bottom:0.6em }\n" . + ".rcmail-inline-buttons { margin-bottom:0 }" + )); + } + parent::write($contents); } } \ No newline at end of file diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php index cd5f4dddc6..f753bf8e1 100644 --- a/program/include/rcmail_output_html.php +++ b/program/include/rcmail_output_html.php @@ -164,6 +164,7 @@ class rcmail_output_html extends rcmail_output } $this->config->set('skin_path', $skin_path); + $this->base_path = $skin_path; // register skin path(s) $this->skin_paths = array(); diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc index 6cda4e81d..fddb40ae8 100644 --- a/program/steps/mail/get.inc +++ b/program/steps/mail/get.inc @@ -36,10 +36,6 @@ if (!empty($_GET['_preload'])) { ob_end_clean(); -// define global style for warning blocks inside the attachment part frame -// TODO: get styles for this from skin (but we don't have a skin template here...) -$warning_css_style = 'border:2px solid #ffdf0e; background:#fef893; padding:0.6em 1em'; - // similar code as in program/steps/mail/show.inc if (!empty($_GET['_uid'])) { $RCMAIL->config->set('prefer_html', true); @@ -158,13 +154,13 @@ else if (strlen($pid = get_input_value('_part', RCUBE_INPUT_GET))) { // show warning if validity checks failed if (!$valid) { $OUTPUT = new rcmail_html_page(); - $OUTPUT->write(html::tag('html', null, html::tag('body', array('style' => 'font-family:sans-serif; margin:1em'), - html::div(array('class' => 'warning', 'style' => $warning_css_style), + $OUTPUT->write(html::tag('html', null, html::tag('body', 'embed', + html::div(array('class' => 'rcmail-inline-message rcmail-inline-warning'), rcube_label(array( 'name' => 'attachmentvalidationerror', 'vars' => array('expected' => "$mimetype (.$file_extension)", 'detected' => "$real_mimetype (.$extensions[0])") )) . - html::p(array('class' => 'buttons', 'style' => 'margin-bottom:0'), + html::p(array('class' => 'rcmail-inline-buttons'), html::tag('button', array('onclick' => "location.href='" . $RCMAIL->url(array_merge($_GET, array('_nocheck' => 1))) . "'"), rcube_label('showanyway'))) @@ -232,7 +228,7 @@ else if (strlen($pid = get_input_value('_part', RCUBE_INPUT_GET))) { $body_start = strpos($out, '>', $body_pos) + 1; } $out = substr($out, 0, $body_start) . - html::div(array('class' => 'warning', 'style' => $warning_css_style), + html::div(array('class' => 'rcmail-inline-message rcmail-inline-warning'), Q(rcube_label('blockedimages')) . ' ' . html::tag('button', array('onclick' => "location.href='" . $RCMAIL->url(array_merge($_GET, array('_safe' => 1))) . "'"), diff --git a/skins/larry/embed.css b/skins/larry/embed.css new file mode 100644 index 000000000..8c4e95d42 --- /dev/null +++ b/skins/larry/embed.css @@ -0,0 +1,34 @@ +/** + * Roundcube webmail "embedded" stylesheets + * + * Copyright (c) 2012, The Roundcube Dev Team + * + * The contents are subject to the Creative Commons Attribution-ShareAlike + * License. It is allowed to copy, distribute, transmit and to adapt the work + * by keeping credits to the original autors in the README file. + * See http://creativecommons.org/licenses/by-sa/3.0/ for details. + */ + +.rcmail-inline-message { + font-family: sans-serif; + font-size: 14px; + color: #333; + border: 1px solid #ffdf0e; + background-color: #fef893; + padding: 0.6em 1em; + margin-bottom: 0.8em; +} + +.rcmail-inline-message > button { + margin-left: 1em; + vertical-align: baseline; +} + +.rcmail-inline-message em { + font-size: 90%; + color: #666; +} + +.rcmail-inline-buttons { + margin-bottom: 0; +} -- cgit v1.2.3