diff options
Diffstat (limited to 'webmail/program/steps/settings/edit_prefs.inc')
| -rw-r--r-- | webmail/program/steps/settings/edit_prefs.inc | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/webmail/program/steps/settings/edit_prefs.inc b/webmail/program/steps/settings/edit_prefs.inc new file mode 100644 index 0000000..971ed60 --- /dev/null +++ b/webmail/program/steps/settings/edit_prefs.inc @@ -0,0 +1,86 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | program/steps/settings/edit_prefs.inc | + | | + | This file is part of the Roundcube Webmail client | + | Copyright (C) 2005-2007, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + | PURPOSE: | + | Provide functionality for user's settings & preferences | + | | + +-----------------------------------------------------------------------+ + | Author: Thomas Bruederli <roundcube@gmail.com> | + +-----------------------------------------------------------------------+ +*/ + +if (!$OUTPUT->ajax_call) + $OUTPUT->set_pagetitle(rcube_label('preferences')); + + +$CURR_SECTION = get_input_value('_section', RCUBE_INPUT_GPC); +list($SECTIONS,) = rcmail_user_prefs($CURR_SECTION); + +function rcmail_user_prefs_form($attrib) +{ + global $RCMAIL, $CURR_SECTION, $SECTIONS; + + // add some labels to client + $RCMAIL->output->add_label('nopagesizewarning'); + + unset($attrib['form']); + + list($form_start, $form_end) = get_form_tags($attrib, 'save-prefs', null, + array('name' => '_section', 'value' => $CURR_SECTION)); + + $out = $form_start; + + foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $idx => $block) { + if (!empty($block['options'])) { + $table = new html_table(array('cols' => 2)); + + foreach ($block['options'] as $option) { + if ($option['advanced']) + $table->set_row_attribs('advanced'); + + if (isset($option['title'])) { + $table->add('title', $option['title']); + $table->add(null, $option['content']); + } + else { + $table->add(array('colspan' => 2), $option['content']); + } + } + + $out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $table->show($attrib)); + } + else if (!empty($block['content'])) { + $out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $block['content']); + } + } + + return $out . $form_end; +} + +function rcmail_prefs_section_name() +{ + global $SECTIONS, $CURR_SECTION; + + return $SECTIONS[$CURR_SECTION]['section']; +} + + +// register UI objects +$OUTPUT->add_handlers(array( + 'userprefs' => 'rcmail_user_prefs_form', + 'sectionname' => 'rcmail_prefs_section_name', +)); + +$OUTPUT->send('settingsedit'); + + |
