thomascube
2009-07-16 7477973d931ffb816b2cbbad9c5bc06e3ef2ecd8
program/include/rcube_template.php
@@ -287,6 +287,11 @@
    public function send($templ = null, $exit = true)
    {
        if ($templ != 'iframe') {
            // prevent from endless loops
            if ($this->app->plugins->is_processing('render_page')) {
                raise_error(array('code' => 505, 'type' => 'php', 'message' => 'Recursion alert: ignoring output->send()'), true, false);
                return;
            }
            $this->parse($templ, false);
        }
        else {
@@ -294,11 +299,11 @@
            $this->write();
        }
   // set output asap
   ob_flush();
   flush();
        // set output asap
        ob_flush();
        flush();
        
   if ($exit) {
        if ($exit) {
            exit;
        }
    }
@@ -920,7 +925,7 @@
     */
    public function form_tag($attrib, $content = null)
    {
      if ($this->framed) {
      if ($this->framed || !empty($_REQUEST['_framed'])) {
        $hiddenfield = new html_hiddenfield(array('name' => '_framed', 'value' => '1'));
        $hidden = $hiddenfield->show();
      }
@@ -930,7 +935,40 @@
      
      return html::tag('form',
        $attrib + array('action' => "./", 'method' => "get"),
        $hidden . $content);
        $hidden . $content,
        array('id','class','style','name','method','action','enctype','onsubmit'));
    }
    /**
     * Build a form tag with a unique request token
     *
     * @param array Named tag parameters including 'action' and 'task' values which will be put into hidden fields
     * @param string Form content
     * @return string HTML code for the form
     */
    public function request_form($attrib, $content = '')
    {
        $hidden = new html_hiddenfield();
        if ($attrib['task']) {
            $hidden->add(array('name' => '_task', 'value' => $attrib['task']));
        }
        if ($attrib['action']) {
            $hidden->add(array('name' => '_action', 'value' => $attrib['action']));
        }
        // generate request token
        $request_key = $attrib['request'] ? $attrib['request'] : $attrib['action'];
        $hidden->add(array('name' => '_token', 'value' => $this->app->get_request_token($request_key)));
        unset($attrib['task'], $attrib['request']);
        $attrib['action'] = './';
        // we already have a <form> tag
        if ($attrib['form'])
            return $hidden->show() . $content;
        else
            return $this->form_tag($attrib, $hidden->show() . $content);
    }