diff options
| author | 2015-01-14 21:38:35 +0100 | |
|---|---|---|
| committer | 2015-01-14 21:38:35 +0100 | |
| commit | 806b4de54ffd1dd682ec7b42a5be8343a464e5f0 (patch) | |
| tree | 05e74724c0c80d32c2073d51d06c3bc9cd4b2f33 | |
| parent | f1ffdd8b9d1f3d8742f1328dfa805664a66e34aa (diff) | |
Add mechanism at (un)install of an extension
Test if the install or uninstall has been successfully performed.
If these methods return true, all is ok but if a string is returned,
the string must explain the problem. This problem is stored in log file.
A feedback is given to explain to check log file.
This commit fix a problem in the english translation of
feedback.sub.feed.internal_problem.
| -rw-r--r-- | app/Controllers/extensionController.php | 40 | ||||
| -rw-r--r-- | app/i18n/en/feedback.php | 12 | ||||
| -rw-r--r-- | app/i18n/fr/feedback.php | 10 | ||||
| -rw-r--r-- | lib/Minz/Extension.php | 14 |
4 files changed, 55 insertions, 21 deletions
diff --git a/app/Controllers/extensionController.php b/app/Controllers/extensionController.php index e013bb369..692595a4c 100644 --- a/app/Controllers/extensionController.php +++ b/app/Controllers/extensionController.php @@ -88,15 +88,21 @@ class FreshRSS_extension_Controller extends Minz_ActionController { $url_redirect); } - $ext->install(); + $res = $ext->install(); - $ext_list = $conf->extensions_enabled; - array_push_unique($ext_list, $ext_name); - $conf->extensions_enabled = $ext_list; - $conf->save(); + if ($res === true) { + $ext_list = $conf->extensions_enabled; + array_push_unique($ext_list, $ext_name); + $conf->extensions_enabled = $ext_list; + $conf->save(); - Minz_Request::good(_t('feedback.extensions.enabled', $ext_name), - $url_redirect); + Minz_Request::good(_t('feedback.extensions.enable.ok', $ext_name), + $url_redirect); + } else { + Minz_Log::warning('Can not enable extension ' . $ext_name . ': ' . $res); + Minz_Request::bad(_t('feedback.extensions.enable.ko', $ext_name, _url('index', 'logs')), + $url_redirect); + } } Minz_Request::forward($url_redirect, true); @@ -138,15 +144,21 @@ class FreshRSS_extension_Controller extends Minz_ActionController { $url_redirect); } - $ext->uninstall(); + $res = $ext->uninstall(); - $ext_list = $conf->extensions_enabled; - array_remove($ext_list, $ext_name); - $conf->extensions_enabled = $ext_list; - $conf->save(); + if ($res === true) { + $ext_list = $conf->extensions_enabled; + array_remove($ext_list, $ext_name); + $conf->extensions_enabled = $ext_list; + $conf->save(); - Minz_Request::good(_t('feedback.extensions.disabled', $ext_name), - $url_redirect); + Minz_Request::good(_t('feedback.extensions.disable.ok', $ext_name), + $url_redirect); + } else { + Minz_Log::warning('Can not unable extension ' . $ext_name . ': ' . $res); + Minz_Request::bad(_t('feedback.extensions.disable.ko', $ext_name, _url('index', 'logs')), + $url_redirect); + } } Minz_Request::forward($url_redirect, true); diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php index e9499ed46..19af81e5b 100644 --- a/app/i18n/en/feedback.php +++ b/app/i18n/en/feedback.php @@ -31,8 +31,14 @@ return array( ), 'extensions' => array( 'already_enabled' => '%s is already enabled', - 'disabled' => '%s is now disabled', - 'enabled' => '%s is now enabled', + 'disable' => array( + 'ko' => '%s cannot be disabled. <a href="%s">Check FressRSS logs</a> for details.', + 'ok' => '%s is now disabled', + ), + 'enable' => array( + 'ko' => '%s cannot be enabled. <a href="%s">Check FressRSS logs</a> for details.', + 'ok' => '%s is now enabled', + ), 'no_access' => 'You have no access on %s', 'not_enabled' => '%s is not enabled yet', 'not_found' => '%s does not exist', @@ -67,7 +73,7 @@ return array( 'already_subscribed' => 'You have already subscribed to <em>%s</em>', 'deleted' => 'Feed has been deleted', 'error' => 'Feed cannot be updated', - 'internal_problem_feed' => 'The RSS feed could not be added. <a href="%s">Check FressRSS logs</a> for details.', + 'internal_problem' => 'The RSS feed could not be added. <a href="%s">Check FressRSS logs</a> for details.', 'invalid_url' => 'URL <em>%s</em> is invalid', 'marked_read' => 'Feeds have been marked as read', 'n_actualized' => '%d feeds have been updated', diff --git a/app/i18n/fr/feedback.php b/app/i18n/fr/feedback.php index c99314411..e2364a251 100644 --- a/app/i18n/fr/feedback.php +++ b/app/i18n/fr/feedback.php @@ -31,8 +31,14 @@ return array( ), 'extensions' => array( 'already_enabled' => '%s est déjà activée', - 'disabled' => '%s est désormais désactivée', - 'enabled' => '%s est désormais activée', + 'disable' => array( + 'ko' => '%s ne peut pas être désactivée. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.', + 'ok' => '%s est désormais désactivée', + ), + 'enable' => array( + 'ko' => '%s ne peut pas être activée. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.', + 'ok' => '%s est désormais activée', + ), 'no_access' => 'Vous n’avez aucun accès sur %s', 'not_enabled' => '%s n’est pas encore activée', 'not_found' => '%s n’existe pas', diff --git a/lib/Minz/Extension.php b/lib/Minz/Extension.php index b3991c129..ac7231e9c 100644 --- a/lib/Minz/Extension.php +++ b/lib/Minz/Extension.php @@ -51,16 +51,26 @@ class Minz_Extension { * Used when installing an extension (e.g. update the database scheme). * * It must be redefined by child classes. + * + * @return true if the extension has been installed or a string explaining + * the problem. */ - public function install() {} + public function install() { + return true; + } /** * Used when uninstalling an extension (e.g. revert the database scheme to * cancel changes from install). * * It must be redefined by child classes. + * + * @return true if the extension has been uninstalled or a string explaining + * the problem. */ - public function uninstall() {} + public function uninstall() { + return true; + } /** * Call at the initialization of the extension (i.e. when the extension is |
