static function findOneModule($classname) { global $domain, $site_domains; $inc = getIncludePaths(); $dir = getcwd(); // узнаем имя модуля if (substr(strtolower($classname), 0, 1) == "t") { $filename = substr(strtolower($classname), 1); } $modulename = $filename; $filename = $filename . ".class.php"; foreach ($inc as $v) { $path = path($v) . "/"; if (isset($site_domains) && in_array($domain, array_keys($site_domains))) { // Сначала ищем в директории с названием $site_domains[$domain]['modules'] $search_pattern = $path == './' ? $dir . '/modules/' . $site_domains[$domain]['modules'] : $path . PATH . '/modules/' . $site_domains[$domain]['modules']; $search_pattern = realpath($search_pattern) . '/' . $modulename . '/'; if (is_file($search_pattern . $filename)) { break; } } // Теперь ищем в общей папке с модулями $search_pattern = $path == './' ? $dir . '/modules/' : $path . ENGINE_VERSION . '/' . ENGINE_TYPE . '/modules/'; $search_pattern = $search_pattern . $modulename . '/'; if (is_file($search_pattern . $filename)) { break; } } if (is_file($search_pattern . $filename)) { return $search_pattern . $filename; } else { return false; } }
function find_file($name, $dr = ".") { // 1. узнаем это новая версия // 1.1 если да - ищем ее в папке уровнем выше чем вызвающий файл; после перенесения в папку scripts // 1.2 если нет - ищем ее в папке вызвавшего файла // 2 ищем в папках алиасов if (is_file($dr . $name)) { return $dr . $name; } $inc = getIncludePaths(); foreach ($inc as $pref) { if ($pref == "./") { continue; } if (is_file($pref . 'sms3.6/project' . $name)) { return $pref . 'sms3.6/project' . $name; } } return false; }
function getProjectDir($core = false) { $core = $core === false ? constant('PATH') . '../' : $core; $inc = getIncludePaths(); foreach ($inc as $pref) { if (substr($pref, -1) != '/') { $pref .= '/'; } if (substr($pref, 0, 1) != '.') { $pref .= $core; } $pathname = $pref . 'project/admin/'; if (!is_dir($pathname)) { continue; } return $pathname; } return './'; }