Ejemplo n.º 1
0
 /**
  * get module
  *
  * @param string $moduleName
  * @param array $params 라우트 정보를 가지고 있다.
  * @param boolean $install 인스톨용으로 사용되는 모듈인지에 대한 여부
  * @return object
  */
 public static function load($moduleName, $params = null, $install = false)
 {
     global $goose;
     $existModule = self::existModule($moduleName);
     if ($existModule['state'] == 'error') {
         return $existModule;
     } else {
         $pwd = $existModule['pwd'];
         $path = $existModule['path'];
     }
     // set setting data
     $tmp_settingOriginal = Util::jsonToArray(Util::openFile($pwd . 'setting.json'));
     $tmp_settingUser = Util::jsonToArray(Util::openFile($pwd . 'setting.user.json'));
     if ($tmp_settingOriginal && $tmp_settingUser) {
         $settings = $tmp_settingUser ? Util::extendArray($tmp_settingOriginal, $tmp_settingUser) : $tmp_settingOriginal;
     } else {
         $settings = $tmp_settingUser ? $tmp_settingUser : null;
         $settings = $tmp_settingOriginal ? $tmp_settingOriginal : $settings;
     }
     if (!$settings || !is_array($settings)) {
         return new Object(array('state' => 'error', 'message' => '[' . $moduleName . '] setting.json파일이 없습니다.'));
     }
     // set module class path
     $pwd_class = Util::checkUserFile($pwd . $moduleName . '.class.php');
     if ($pwd_class) {
         require_once $pwd_class;
         // check install
         if ($settings['install'] && !in_array($moduleName, $goose->modules) && !$install) {
             return new Object(array('state' => 'error', 'message' => '[' . $moduleName . '] 인스톨이 필요한 모듈입니다.'));
         }
         // check permission
         if ($settings['permission'] && $settings['permission'] > $_SESSION['goose_level'] && !$goose->isAdmin) {
             return new Object(array('state' => 'error', 'message' => '[' . $moduleName . '] 접근 권한이 없습니다.'));
         }
         // set module class
         $settings['skin'] = $settings['skin'] ? $settings['skin'] : 'default';
         $tmpModule = new $moduleName(array('name' => $settings['name'], 'path' => $path, 'set' => $settings, 'goose' => $goose, 'isAdmin' => $settings['adminPermission'] <= $_SESSION['goose_level'] || $goose->isAdmin ? true : false, 'param' => $params ? $params : array()));
         // return module
         return $tmpModule;
     } else {
         return new Object(array('state' => 'error', 'message' => '[' . $moduleName . '] 정상적인 모듈이 아닙니다.'));
     }
 }
Ejemplo n.º 2
0
 /**
  * get data item
  *
  * @param array $getParam
  * @return array|null
  */
 public function getItem($getParam = array())
 {
     if ($this->name != 'category') {
         return array('state' => 'error', 'message' => '잘못된 객체로 접근했습니다.');
     }
     // set original parameter
     $originalParam = array('table' => Spawn::getTableName($this->name));
     // get data
     $data = Spawn::item(Util::extendArray($originalParam, $getParam));
     // check data
     if (!$data) {
         return array('state' => 'error', 'message' => '데이터가 없습니다.');
     }
     // return data
     return array('state' => 'success', 'data' => $data);
 }
Ejemplo n.º 3
0
 /**
  * get data item
  *
  * @param array $getParam
  * @return array|null
  */
 public function getItem($getParam = array())
 {
     if ($this->name != 'nest') {
         return array('state' => 'error', 'message' => '잘못된 객체로 접근했습니다.');
     }
     // set original parameter
     $originalParam = array('table' => Spawn::getTableName($this->name));
     // get data
     $data = Spawn::item(Util::extendArray($originalParam, $getParam));
     // check data
     if (!$data) {
         return array('state' => 'error', 'message' => '데이터가 없습니다.');
     }
     // convert json data
     if (is_array($data) && $data['json']) {
         $data['json'] = Util::jsonToArray($data['json'], null, true);
     }
     // return data
     return array('state' => 'success', 'data' => $data);
 }
Ejemplo n.º 4
0
 /**
  * gets an array of all config values
  *
  * @return array
  */
 public function getAll()
 {
     if ($this->_combined) {
         return $this->_combined;
     }
     $path = $this->_path;
     $env = $this->_env;
     $type = $this->_type;
     if (!file_exists($path)) {
         throw new Exception('configuration file does not exist at ' . $path);
     }
     // parse the file
     switch ($type) {
         case self::PHP:
             include $path;
             $parsed_file = $config;
             break;
         default:
             $parsed_file = parse_ini_file($path, true);
             break;
     }
     // find all the environments
     $sections = array_keys($parsed_file);
     // make sure environment exists
     $map = $this->_getEnvironmentMap($sections);
     if (!isset($map[$env])) {
         throw new Exception('environment: ' . $env . ' not found in config at : ' . $path);
     }
     $parents = $this->_getParents($sections, $env);
     $to_merge = array_reverse($parents);
     $to_merge[] = $env;
     $start = array_shift($to_merge);
     $this->_combined = $parsed_file[$start];
     foreach ($to_merge as $env) {
         $full_section = $map[$env];
         $this->_combined = Util::extendArray($this->_combined, $parsed_file[$full_section], $this->_exceptions[$env]);
     }
     return $this->_combined;
 }