/** * Add a preference into the preference config. * * @param jPrefItem $preference the preference to add */ public function addPreference($pref) { self::_loadIniModifier(); $section = 'pref:' . $pref->id; self::$_ini->setValue('type', $pref->type, $section); self::$_ini->setValue('locale', $pref->locale, $section); self::$_ini->setValue('group', $pref->group, $section); self::$_ini->setValue('read_acl_subject', $pref->read_acl_subject, $section); self::$_ini->setValue('write_acl_subject', $pref->write_acl_subject, $section); self::$_ini->setValue('default_value', $pref->default_value, $section); self::$_ini->save(jApp::config()->chmodFile); if ($pref->value !== null) { jPref::set($pref->id, $pref->value); } elseif ($pref->default_value !== null) { jPref::set($pref->id, $pref->default_value); } }
/** * */ public function reset() { $rep = $this->getResponse('redirect'); $rep->action = 'jpref_admin~prefs:index'; $id = $this->param('id', 0); $pref = jPrefManager::getPref($id); if (!$id || !$pref || empty($pref->default_value) && $pref->type != 'boolean') { return $rep; } if (!$pref->isWritable()) { jMessage::add(jLocale::get('jacl2~errors.action.right.needed'), 'error'); return $rep; } $dvalue = $pref->default_value; if ($pref->type == 'integer') { $dvalue = (int) $dvalue; } elseif ($pref->type == 'decimal') { $dvalue = (double) $dvalue; } elseif ($pref->type == 'boolean') { if ($dvalue == 'false') { $dvalue = false; } else { if ($dvalue == 'true') { $dvalue = true; } } } jPref::set($pref->id, $dvalue); jMessage::add(jLocale::get('jpref_admin~admin.message.pref.reseted'), 'notice'); return $rep; }