True, 'nonavbar' => True, 'currentapp' => $appname, 'enable_nextmatchs_class' => True ); include('../header.inc.php'); // Make things a little easier to follow function is_admin() { if (HAS_ADMIN_RIGHTS == 1) { return True; } else { return False; } } // Some places we will need to change this if there in common function check_app($appname) { if ($appname == 'preferences') { return 'common'; } else { return $appname; } } function parse_row(&$tpl) { if (is_admin()) { $tpl->fp('rows','row_a',True); } else { $tpl->fp('rows','row_u',True); } } function is_forced_value($appname,$preference_name) { global $gp; if ($gp->data[$appname][$preference_name]) { return True; } else { return False; } } function create_input_box($label_name,$preference_name,$size = '',$max_size = '') { global $phpgw, $phpgw_info, $appname, $t, $dp, $gp; $_appname = check_app($appname); $phpgw->nextmatchs->template_alternate_row_color(&$t); $t->set_var('row_name',lang($label_name)); if (! is_forced_value($_appname,$preference_name)) { $t->set_var('row_user',''); } else { $t->set_var('row_user',' '); } if (is_admin()) { $t->set_var('row_global',''); $t->set_var('row_default',''); } parse_row(&$t); } function create_option_string($selected,$values) { while (is_array($values) && list($var,$value) = each($values)) { $s .= '' . create_option_string($phpgw_info['user']['preferences'][$_appname][$preference_name],$values); $t->set_var('row_user',''); } else { $t->set_var('row_user',' '); } if (is_admin()) { $s = '' . create_option_string($gp->data[$_appname][$preference_name],$values); $t->set_var('row_global',''); $s = '' . create_option_string($dp->data[$_appname][$preference_name],$values); $t->set_var('row_default',''); } parse_row(&$t); } function process_array(&$_p, $array) { global $appname; $_appname = check_app($appname); while (is_array($array) && list($var,$value) = each($array)) { if ($value && $value != '**NULL**') { $_p->add($_appname,$var,$value); } else { unset($_p->data[$_appname][$var]); } } $_p->save_repository(True); } $p = createobject('phpgwapi.preferences'); $p->read_repository(); // So we can check if the admin is allowing users to make there own choices // in life. $gp = createobject('phpgwapi.preferences',-1); $gp->read_repository(); // Only check this once if ($phpgw->acl->check('run',1,'admin')) { // Don't use a global variable for this ... define('HAS_ADMIN_RIGHTS',1); $dp = createobject('phpgwapi.preferences',-2); $dp->read_repository(); } $t = CreateObject('phpgwapi.Template',$phpgw->common->get_tpl_dir('preferences')); $t->set_file(array( '_preferences' => 'preferences.tpl' )); $t->set_block('_preferences','list_a'); $t->set_block('_preferences','row_a'); $t->set_block('_preferences','list_u'); $t->set_block('_preferences','row_u'); $t->set_block('_preferences','header'); $t->set_block('_preferences','footer'); $t->set_block('_preferences','row_error'); if ($submit) { process_array(&$p, $user); if (is_admin()) { process_array(&$gp, $global); process_array(&$dp, $default); } Header('Location: ' . $phpgw->link('/preferences/index.php#' . $appname)); $phpgw->common->phpgw_exit(); } $phpgw->common->phpgw_header(); echo parse_navbar(); if ($appname == 'preferences') { $t->set_var('lang_title',lang('Preferences')); } else { $t->set_var('lang_title',lang('%1 - Preferences',$phpgw_info['navbar'][$appname]['title'])); } $t->set_var('action_url',$phpgw->link('/preferences/preferences.php','appname=' . $appname)); $t->set_var('th_bg',$phpgw_info['theme']['th_bg']); $t->set_var('th_text',$phpgw_info['theme']['th_text']); $t->set_var('row_on',$phpgw_info['theme']['row_on']); $t->set_var('row_off',$phpgw_info['theme']['row_off']); if (is_admin()) { $t->set_var('lang_user',lang('Yours')); $t->set_var('lang_global',lang('Forced')); $t->set_var('lang_default',lang('Default')); } else { $t->set_var('lang_user',' '); } if (! $phpgw->common->hook_single('settings',$appname,True)) { $t->set_var('messages',lang('Error: There was a problem finding the preference file for %1 in %2', $phpgw_info['navbar'][$appname]['title'],PHPGW_SERVER_ROOT . SEP . $appname . SEP . 'inc' . SEP . 'hook_settings.inc.php')); $error = True; } $t->pfp('out','header'); $t->set_var('lang_submit', lang('submit')); $t->set_var('lang_cancel', lang('cancel')); if (! $error) { if (is_admin()) { $t->pfp('out','list_a'); } else { $t->pfp('out','list_u'); } } if (! $error) { $t->pfp('out','footer'); } $phpgw->common->phpgw_footer(); ?>