/** * @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'); } }
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()); }
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('Обновление модулей'))); }
protected static function getUpgradeForm(Context $ctx) { if (count($modules = modman::getUpdatedModules())) { return self::getXML($ctx, $modules, array('title' => t('Обновление модулей'))); } }