diff --git a/src/Controller/Front.php b/src/Controller/Front.php index 2e1cc1d..d5e6d12 100644 --- a/src/Controller/Front.php +++ b/src/Controller/Front.php @@ -44,23 +44,31 @@ class Front extends Action * @param Request $request Имя модуля * @return string */ - public function loadModule($name, Collection $request, $controller = null) + public function loadModule($name, Collection $request) { if ($this->isLoaded($name)) { $module = $this->modules[$name]; return $module->access->execute($request); } + + $parts = explode('\\', $name); + $config = $this->config; $moulesPath = Path::join($config->get('system', 'path'), 'modules'); $logPath = Path::join($config->get('site', 'path'), $config->get('system', 'access.log')); - $ucname = ucfirst($name); - $moduleClass = "Modules\\$ucname\\$ucname"; + $first = $parts[0]; + $second = (count($parts) >= 2) ? $parts[1] : $parts[0]; + + $ucname = ucfirst($first); + $ucpart = ucfirst($second); + + $moduleClass = "Modules\\$ucname\\$ucpart"; $module = new $moduleClass(); if ($module) { // Инициализация модуля - $modPath = Path::join($moulesPath, $name); + $modPath = Path::join($moulesPath, $first); $module->modulePath = $modPath; $module->name = $name; // @@ -87,14 +95,9 @@ class Front extends Action public function execute(HttpRequest $request) { - $name = explode("\\", $request->get('module', $this->default)); - if (count($name) >= 2) { - $controller = $name[1]; - } else { - $controller = null; - } + $name = $request->get('module', $this->default); try { - return $this->loadModule($name[0], $request, $controller); + return $this->loadModule($name, $request); } catch (UserMessageException $ex) { //Исключение с понятным пользователю сообщением $mode = $request->get('mode'); if ($mode == 'ajax' || $mode == 'json') { diff --git a/src/Form/Form.php b/src/Form/Form.php index f14360c..d5e7582 100644 --- a/src/Form/Form.php +++ b/src/Form/Form.php @@ -167,7 +167,7 @@ class Form extends View { { foreach ($schema as $key => $conv) { list($value, $type) = $conv; - $this->field [$key]->setValue(call_user_func(array('Primitive', 'from_' . $type), $data->$value)); + $this->field [$key]->setValue(call_user_func(array('ctiso\\Primitive', 'from_' . $type), $data->$value)); } }