Changeset 2878

Show
Ignore:
Timestamp:
01/15/07 13:38:30 (4 months ago)
Author:
demian
Message:

improving ability to customise installs

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/0.6-bugfix/etc/customInstallDefaults.ini.dist

    r2850 r2878  
    88siteKeywords     = your, keywords, here 
    99siteDesc         = Your description here 
    10 siteCookie       = EG_SESSID 
    11 prefix           = eg
    12 name             = example_db ; this is database name 
     10siteCookie       = FOO_SESSID 
     11prefix           = foo
     12name             = foo_db ; this is database name 
    1313aModuleList      = block,default,user,navigation,publisher 
    1414insertSampleData = 1 
     15 
     16; any config key can be overridden, just supply key and group name 
     17; in same format as found in default.conf.dist.ini 
  • branches/0.6-bugfix/lib/SGL/Config.php

    r2714 r2878  
    7474    } 
    7575 
     76    function exists($key) 
     77    { 
     78        if (is_array($key)) { 
     79            $key1 = key($key); 
     80            $key2 = $key[$key1]; 
     81            return array_key_exists($key2, $this->aProps[$key1]); 
     82        } else { 
     83            return array_key_exists($key, $this->aProps); 
     84        } 
     85    } 
     86 
    7687    function get($key) 
    7788    { 
  • branches/0.6-bugfix/lib/SGL/Install/Common.php

    r2858 r2878  
    234234     * @return array 
    235235     */ 
    236     function overrideDefaultInstallSettings() 
    237     { 
     236    function overrideDefaultInstallSettings($aData = array()) 
     237    { 
     238        //  flatten module array if exists 
     239        if (array_key_exists('aModuleList', $aData)) { 
     240            $aData['aModuleList'] = implode(',', $aData['aModuleList']); 
     241        } 
     242        //  read in custom install defaults 
    238243        $customConfig = SGL_PATH . '/etc/customInstallDefaults.ini'; 
    239244        if (file_exists($customConfig)) { 
    240             $ret = parse_ini_file($customConfig, false); 
     245            $aOverrideData = parse_ini_file($customConfig, true); 
    241246        } else { 
    242             $ret = array(); 
    243         } 
    244         if (!empty($ret['aModuleList'])) { 
    245             $ret['aModuleList'] = explode(',', $ret['aModuleList']); 
    246         } 
    247         return $ret; 
     247            $aOverrideData = array(); 
     248        } 
     249        //  override data passed as arg with custom data 
     250        $aRet = array_merge($aData, $aOverrideData); 
     251 
     252        //  explode module data back to array 
     253        if (!empty($aRet['aModuleList'])) { 
     254            $aRet['aModuleList'] = explode(',', $aRet['aModuleList']); 
     255        } 
     256        return $aRet; 
    248257    } 
    249258} 
  • branches/0.6-bugfix/lib/SGL/Task/Install.php

    r2819 r2878  
    141141 
    142142        //  store translations in db 
    143         $storeTransInDbClause = (array_key_exists('storeTranslationsInDB', $data) 
     143        (array_key_exists('storeTranslationsInDB', $data) 
    144144                && $data['storeTranslationsInDB'] == 1) 
    145145            ? $c->set('translation', array('container' => 'db')) 
     
    147147 
    148148        //  add missing translations to db 
    149         $missingTransClause =  (array_key_exists('addMissingTranslationsToDB', $data) 
     149        (array_key_exists('addMissingTranslationsToDB', $data) 
    150150                && $data['addMissingTranslationsToDB'] == 1) 
    151151            ? $c->set('translation', array('addMissingTrans' => true)) 
     
    160160            $c->set('site', array('frontScriptName' => 'index.php?')); 
    161161        } 
    162  
     162        //  parse custom config overrides 
     163        foreach ($data as $k => $v) { 
     164            if (is_array($v)) { 
     165                foreach ($v as $kk => $vv) { 
     166                    if ($c->exists(array($k => $kk))) { 
     167                        $c->set($k, array($kk => $vv)); 
     168                    } 
     169                } 
     170            } 
     171        } 
    163172        //  save 
    164173        $configFile = SGL_VAR_DIR . '/' . SGL_SERVER_NAME . '.conf.php'; 
     
    13821391    function run($data = null) 
    13831392    { 
    1384         if (is_file(SGL_VAR_DIR . '/test.conf.ini.php')) {      
     1393        if (is_file(SGL_VAR_DIR . '/test.conf.ini.php')) { 
    13851394                $this->setup(); 
    13861395                $c = new SGL_Config(); 
  • branches/0.6-bugfix/www/setup.php

    r2858 r2878  
    207207                SGL_Error::pop(); // two errors produced 
    208208            } 
    209             $aDefaultData = SGL_Install_Common::overrideDefaultInstallSettings(); 
    210             $data['aModuleList'] = !empty($aDefaultData['aModuleList']) 
    211                 ? $aDefaultData['aModuleList'] 
    212                 : SGL_Install_Common::getMinimumModuleList(); 
     209            #$aDefaultData = SGL_Install_Common::overrideDefaultInstallSettings(); 
     210            $data['aModuleList'] = SGL_Install_Common::getMinimumModuleList(); 
     211            #    ? $aDefaultData['aModuleList'] 
     212            #    : SGL_Install_Common::getMinimumModuleList(); 
    213213        } 
     214 
     215        //  override with custom settings if they exist 
     216        $data = SGL_Install_Common::overrideDefaultInstallSettings($data); 
    214217 
    215218        $runner = new SGL_TaskRunner();