protected function loadConfigFile($area, $type, $module, $options) { if (!($_file = $this->getFileByType($area, $type, $module))) { return false; } Kurogo::log(LOG_DEBUG, "Loading config file {$area} of type {$type} with options {$options}", 'config'); if ($type == 'file') { $options = $options | Config::OPTION_IGNORE_DEFAULT; } $config = new ConfigFile($area, $type); if ($module) { //$config->setModuleID($module->getID()); } if (!($options & Config::OPTION_IGNORE_DEFAULT)) { $config->setFile('default', $this->getFileByType($area, $type . '-default', $module)); } if (!($options & Config::OPTION_IGNORE_SHARED)) { $config->setFile('shared', $this->getFileByType($area, $type . '-shared', $module)); } if ($config->setFile('base', $_file)) { if (!($options & Config::OPTION_IGNORE_MODE)) { $modes = Kurogo::getConfigModes(); foreach ($modes as $mode) { $config->setFile($mode, self::fileVariant($_file, $mode)); } } if (!($options & Config::OPTION_IGNORE_LOCAL)) { $config->setFile('local', self::fileVariant($_file, 'local')); } return $config; } elseif (count($config->getFiles()) > 0) { return $config; } if ($options & Config::OPTION_CREATE_EMPTY) { if (!is_dir(dirname($_file))) { throw new KurogoConfigurationException("Directory " . dirname($_file) . " does not exist"); } Kurogo::log(LOG_DEBUG, "Creating empty config file {$_file}", 'config'); @touch($_file); if ($config->setFile('base', $_file)) { return $config; } } return false; }