Exemple #1
0
 /**
  * Возвращает 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;
 }