diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php
index 446df3e1c..ed20ecfb3 100644
--- a/program/include/rcmail_output_html.php
+++ b/program/include/rcmail_output_html.php
@@ -2035,7 +2035,7 @@ EOF;
*
* @return string HTML code for the gui object
*/
- protected function search_form($attrib)
+ public function search_form($attrib)
{
// add some labels to client
$this->add_label('searching');
@@ -2056,14 +2056,16 @@ EOF;
$input_q = new html_inputfield($attrib);
$out = $label . $input_q->show();
- // @TODO: At some point we'll need support for multiple searchforms on the same page
- $this->add_gui_object('qsearchbox', $attrib['id']);
+ // Support for multiple searchforms on the same page
+ if ($attrib['gui-object'] !== false && $attrib['gui-object'] !== 'false') {
+ $this->add_gui_object($attrib['gui-object'] ?: 'qsearchbox', $attrib['id']);
+ }
// add form tag around text field
if (empty($attrib['form']) && empty($attrib['no-form'])) {
$out = $this->form_tag(array(
- 'name' => "rcmqsearchform",
- 'onsubmit' => self::JS_OBJECT_NAME . ".command('search'); return false",
+ 'name' => $attrib['form-name'] ?: 'rcmqsearchform',
+ 'onsubmit' => sprintf("%s.command('%s'); return false", self::JS_OBJECT_NAME, $attrib['command'] ?: 'search'),
// 'style' => "display:inline"
), $out);
}
@@ -2099,7 +2101,7 @@ EOF;
$reset_button = $this->button(array(
'type' => 'link',
- 'command' => 'reset-search',
+ 'command' => $attrib['reset-command'] ?: 'reset-search',
'class' => 'button reset',
'label' => 'resetsearch',
'title' => 'resetsearch',