fix Расчет путей до шаблонов и компонентов

This commit is contained in:
origami11@yandex.ru 2023-02-01 12:55:02 +03:00
parent 0c3fba0d7e
commit fff5b7b5c4
2 changed files with 20 additions and 19 deletions

View file

@ -128,10 +128,10 @@ class Component
$tpl->set('common', Path::join($this->config->get('system', 'web'), '../', 'common')); $tpl->set('common', Path::join($this->config->get('system', 'web'), '../', 'common'));
$tpl->set('script', Path::join($this->config->get('system', 'web'), 'js')); $tpl->set('script', Path::join($this->config->get('system', 'web'), 'js'));
$tpl->set('media', Path::join($this->config->get('system', 'web'), 'templates', $template)); $tpl->set('media', Path::join($this->config->get('system', 'templates.web'), $template));
if ($default) { if ($default) {
$tpl->set('site_template', $this->config->get('site', 'web') . '/templates/' . $default); $tpl->set('site_template', $this->config->get('site', 'templates.web') . $default);
} }
$tpl->set('base', $this->config->get('site', 'web')); $tpl->set('base', $this->config->get('site', 'web'));
@ -246,9 +246,11 @@ class Component
parse_str($query, $arguments); parse_str($query, $arguments);
} }
$name = $path; $name = $path;
$config = $site->config;
$path = Path::join ($site->config->get('site', 'components'), $name, $name . '.php'); $filename = ucfirst($name);
$className = implode("\\", ['Components', ucfirst($name), ucfirst($name)]); $path = Path::join ($config->get('site', 'components'), $name, $filename . '.php');
$className = implode("\\", ['Components', ucfirst($name), $filename]);
$component/*: Component*/ = null; $component/*: Component*/ = null;
@ -256,35 +258,34 @@ class Component
// require_once ($path); // require_once ($path);
$component = new $className(); $component = new $className();
$component->viewPath = array($site->config->get('site', 'path') . '/components/' . $name . '/'); $component->viewPath = array($config->get('site', 'components') . '/' . $name . '/');
$component->webPath = array($site->config->get('site', 'web') . '/components/' . $name); $component->webPath = array($config->get('site', 'components.web') . '/' . $name);
$component->COMPONENTS_WEB = $site->config->get('site', 'web') . '/components/'; $component->COMPONENTS_WEB = $config->get('site', 'web') . '/components/';
} else { } else {
$component = new $className(); $component = new $className();
$template = $component->getTemplateName($site->config); $template = $component->getTemplateName($site->config);
$component->viewPath = array( $component->viewPath = array(
// Сначало ищем локально // Сначало ищем локально
$site->config->get('site', 'path') . '/templates/' . $template . '/_components/' . $name . '/', $config->get('site', 'templates') . '/'. $template . '/_components/' . $name . '/',
$site->config->get('site', 'path') . '/components/' . $name . '/', $config->get('site', 'components') . '/' . $name . '/',
// Потом в общем хранилище // Потом в общем хранилище
CMS_PATH . '/../templates/' . $template . '/_components/' . $name . '/', $config->get('system', 'templates'). '/' . $template . '/_components/' . $name . '/',
$site->config->get('system', 'components') . '/' . $name . '/', $config->get('system', 'components') . '/' . $name . '/',
); );
if (defined('COMPONENTS_WEB')) { if (defined('COMPONENTS_WEB')) {
$component->webPath = array( $component->webPath = array(
// Сначало локально // Сначало локально
$site->config->get('site', 'web') . '/templates/' . $template . '/_components/' . $name, $config->get('site', 'templates.web') . '/' . $template . '/_components/' . $name,
$site->config->get('site', 'web') . '/components/' . $name, $config->get('site', 'components.web') . '/' . $name,
// Потом в общем хранилище // Потом в общем хранилище
TEMPLATE_WEB . '/' . $template . '/_components/' . $name, $config->get('system', 'templates.web') . '/' . $template . '/_components/' . $name,
COMPONENTS_WEB . '/' . $name, $config->get('system', 'components.web') . '/' . $name,
); );
$component->COMPONENTS_WEB = COMPONENTS_WEB; $component->COMPONENTS_WEB = $config->get('system', 'components.web');
} else { } else {
$component->webPath = array('', $site->config->get('site', 'web') . '/components/' . $name, ''); $component->webPath = array('', $config->get('site', 'components.web') . '/' . $name, '');
} }
} }

View file

@ -364,7 +364,7 @@ class Functions {
* @param string $key Имя ключа по значению которого будет идти сравнение * @param string $key Имя ключа по значению которого будет идти сравнение
* @return Array Отсортированный массив * @return Array Отсортированный массив
*/ */
static function sortOn($array, $key, $fn = 'Functions::__cmp') { static function sortOn($array, $key, $fn = '\\ctiso\\Functions::__cmp') {
usort ($array, Functions::rcurry($fn, $key)); usort ($array, Functions::rcurry($fn, $key));
//usort ($array, create_function ('$x,$y', 'return __cmp ($x, $y, "'.$key.'");')); //usort ($array, create_function ('$x,$y', 'return __cmp ($x, $y, "'.$key.'");'));
return $array; return $array;