Esempio n. 1
0
 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;
 }
Esempio n. 2
0
                          /*$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;