public function getSettings() { // Copied from settings/view $rootDir = 'settings'; $iniFiles = eZDir::recursiveFindRelative($rootDir, '', '.ini'); // find all .ini files in active extensions // Note: is this the same algorithm used by ezini? mmm... foreach (eZINI::globalOverrideDirs() as $iniDataSet) { $iniPath = $iniDataSet[1] ? $iniDataSet[0] : 'settings/' . $iniDataSet[0]; $iniFiles = array_merge($iniFiles, eZDir::recursiveFindRelative($iniPath, '', '.ini')); $iniFiles = array_merge($iniFiles, eZDir::recursiveFindRelative($iniPath, '', '.ini.append.php')); } // extract all .ini files without path $iniFiles = preg_replace('%.*/%', '', $iniFiles); // remove *.ini[.append.php] from file name $iniFiles = preg_replace('%\\.ini.*%', '.ini', $iniFiles); $iniFiles = array_unique($iniFiles); sort($iniFiles); $siteIni = null; foreach ($iniFiles as $key => $ini) { if ($this->currentSiteAccess != '' && $GLOBALS['eZCurrentAccess']['name'] !== $this->currentSiteAccess) { // create a site ini instance using $useLocalOverrides if ($siteIni === null) { $siteIni = eZSiteAccess::getIni($this->currentSiteAccess, 'site.ini'); } // load settings file with $useLocalOverrides = true $iniFile = new eZINI($ini, 'settings', null, false, true, false, false, false); $iniFile->setOverrideDirs($siteIni->overrideDirs(false)); $iniFile->load(); } else { $iniFile = new eZINI($ini); } $iniFiles[$ini] = $iniFile->groups(); unset($iniFiles[$key]); } return $iniFiles; }
/*$useTextCodec =*/ null, /*$useCache =*/ false, /*$useLocalOverrides =*/ true, /*$directAccess =*/ false, /*$addArrayDefinition =*/ true, /*$load =*/ false ); $ini->setOverrideDirs( $siteIni->overrideDirs( false ) ); $ini->load(); } else { // load settings file more or less normally but with $addArrayDefinition = true $ini = new eZINI( $settingFile,'settings', null, false, null, false, true ); } $blocks = $ini->groups(); $placements = $ini->groupPlacements(); $settings = array(); $blockCount = 0; $totalSettingCount = 0; foreach( $blocks as $block=>$key ) { $settingsCount = 0; $blockRemoveable = false; $blockEditable = true; foreach( $key as $setting=>$settingKey ) { $hasSetPlacement = false; $type = $ini->settingType( $settingKey ); $removeable = false;