예제 #1
0
 /**
  * @mcms_message ru.molinos.cms.admin.status.enum
  */
 public static function on_enum_notifications(Context $ctx, array &$messages)
 {
     $updated = modman::getUpdatedModules();
     if (count($updated)) {
         $messages[] = array('message' => t('Есть обновления для некоторых модулей.'), 'link' => '?q=admin.rpc&action=form&module=modman&mode=upgrade&cgroup=system&destination=CURRENT');
     }
 }
예제 #2
0
 public static function rpc_post_upgrade(Context $ctx)
 {
     $selected = $ctx->post('all') ? array_keys(modman::getUpdatedModules()) : $ctx->post('modules', array());
     $errors = array();
     foreach (modman::getUpdatedModules() as $moduleName => $moduleInfo) {
         if (in_array($moduleName, $selected)) {
             if (!modman::updateModule($moduleName)) {
                 $errors[] = $moduleName;
             }
         }
     }
     modman::updateDB();
     self::rpc_rebuild($ctx);
     $url = new url($ctx->get('destination'));
     $url->setarg('errors', join('+', $errors));
     return new Redirect($url->string());
 }
예제 #3
0
 public static function on_get_upgrade(Context $ctx)
 {
     $ctx->theme = os::path('lib', 'modules', 'modman', 'template.xsl');
     $modules = modman::getUpdatedModules();
     if (empty($modules)) {
         // FIXME: когда перестанут сбрасывать кэш при каждом вздохе, всем станет лучше.
         modman::updateDB();
         $modules = modman::getUpdatedModules();
     }
     // Удаляем из списка обязательные модули: их нельзя отключать.
     // Это, за одно, позволит дробить модули без захламления интерфейса
     // и смущения пользователя.
     foreach ($modules as $k => $v) {
         if (empty($v['installed'])) {
             unset($modules[$k]);
         }
     }
     return self::getXML2($ctx, $modules, array('mode' => 'upgrade', 'title' => t('Обновление модулей')));
 }
예제 #4
0
 protected static function getUpgradeForm(Context $ctx)
 {
     if (count($modules = modman::getUpdatedModules())) {
         return self::getXML($ctx, $modules, array('title' => t('Обновление модулей')));
     }
 }