protected function declareDbProfile($name, $sectionContent = null, $force = true)
{
$profiles = new \Jelix\IniFile\IniModifier(App::configPath('profiles.ini.php'));
if ($sectionContent == null) {
if (!$profiles->isSection('jdb:' . $name)) {
// no section
if ($profiles->getValue($name, 'jdb') && !$force) {
// already a name
return false;
}
} else {
if ($force) {
// existing section, and no content provided : we erase the section
// and add an alias
$profiles->removeValue('', 'jdb:' . $name);
} else {
return false;
}
}
$default = $profiles->getValue('default', 'jdb');
if ($default) {
$profiles->setValue($name, $default, 'jdb');
} else {
// default is a section
$profiles->setValue($name, 'default', 'jdb');
}
} else {
if ($profiles->getValue($name, 'jdb') !== null) {
if (!$force) {
return false;
}
$profiles->removeValue($name, 'jdb');
}
if (is_array($sectionContent)) {
foreach ($sectionContent as $k => $v) {
$profiles->setValue($k, $v, 'jdb:' . $name);
}
} else {
$profile = $profiles->getValue($sectionContent, 'jdb');
if ($profile !== null) {
$profiles->setValue($name, $profile, 'jdb');
} else {
$profiles->setValue($name, $sectionContent, 'jdb');
}
}
}
$profiles->save();
\Jelix\Core\Profiles::clear();
return true;
}