From 95fcc33472a34f4892f223d39452668467cb3129 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sun, 21 Sep 2008 06:18:28 -0400
Subject: [PATCH] Separate method to create iframe tags (with a list of allowed attributes)

---
 program/steps/settings/identities.inc |    2 +-
 program/include/html.php              |   15 +++++++++++++++
 program/steps/addressbook/func.inc    |    2 +-
 program/steps/mail/func.inc           |    6 +++---
 4 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/program/include/html.php b/program/include/html.php
index 73b0b33..2d0d90b 100644
--- a/program/include/html.php
+++ b/program/include/html.php
@@ -181,6 +181,21 @@
     }
 
     /**
+     * Derrived method to create <iframe></iframe>
+     *
+     * @param mixed Hash array with tag attributes or string with frame source (src)
+     * @return string HTML code
+     * @see html::tag()
+     */
+    public static function iframe($attr = null, $cont = null)
+    {
+        if (is_string($attr)) {
+            $attr = array('src' => $attr);
+        }
+        return self::tag('iframe', $attr, $cont, array_merge(self::$common_attrib, array('src','name','width','height','border','frameborder')));
+    }
+
+    /**
      * Derrived method for line breaks
      *
      * @return string HTML code
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index 2172f97..4199502 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -156,7 +156,7 @@
   $OUTPUT->set_env('contentframe', $attrib['name']);
   $OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/blank.gif');
 
-  return html::tag('iframe', $attrib);
+  return html::iframe($attrib);
   }
 
 
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 4469840..b6de0b8 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -408,7 +408,7 @@
   $OUTPUT->set_env('contentframe', $attrib['id']);
   $OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/blank.gif');
 
-  return html::tag('iframe', $attrib);
+  return html::iframe($attrib);
   }
 
 
@@ -1125,9 +1125,9 @@
   $part = $MESSAGE->mime_parts[asciiwords(get_input_value('_part', RCUBE_INPUT_GPC))];
   $ctype_primary = strtolower($part->ctype_primary);
 
-  $attrib['src'] = Q('./?'.str_replace('_frame=', ($ctype_primary=='text' ? '_show=' : '_preload='), $_SERVER['QUERY_STRING']));
+  $attrib['src'] = './?' . str_replace('_frame=', ($ctype_primary=='text' ? '_show=' : '_preload='), $_SERVER['QUERY_STRING']);
 
-  return html::tag('iframe', $attrib);
+  return html::iframe($attrib);
   }
 
 
diff --git a/program/steps/settings/identities.inc b/program/steps/settings/identities.inc
index 9d5af7b..fded6c1 100644
--- a/program/steps/settings/identities.inc
+++ b/program/steps/settings/identities.inc
@@ -36,7 +36,7 @@
 
   $OUTPUT->set_env('contentframe', $attrib['name']);
 
-  return html::tag('iframe', $attrib);
+  return html::iframe($attrib);
   }
 
 $OUTPUT->add_handler('identityframe', 'rcmail_identity_frame');

--
Gitblit v1.9.1