/** * Возвращает true, если модуль может быть обновлён: * если он установлен и не является локальным (был * установлен извне). */ private static function canUpdateModule($name, array $info) { if (!modman::isInstalled($name)) { return false; } if (empty($info['url'])) { return false; } if (empty($info['version.local'])) { return false; } if (version_compare($info['version.local'], $info['version'], '>=')) { return false; } return true; }
public static function rpc_post_install(Context $ctx) { $status = array(); $enabled = (array) $ctx->post('modules'); // Загружаем отсутствующие модули. foreach (modman::getAllModules() as $name => $info) { if (in_array($name, $enabled) and !modman::isInstalled($name)) { if (!modman::install($name)) { $status[$name] = 'failed'; } else { $status[$name] = 'installed'; } } } $ctx->config->modules = $enabled; $ctx->config->save(); $next = new url($ctx->get('destination', '?q=admin')); $next->setarg('status', $status); self::rpc_rebuild($ctx); // Обновляем базу модулей, чтобы выбросить удалённые локальные. modman::updateDB(); return new Redirect($next->string()); }
private function haveModule($moduleName) { if (empty($modulename)) { return true; } if (!class_exists('modman')) { return true; } if (!modman::isInstalled($moduleName)) { return false; } return true; }