New wrappers Minz_Request::good() and bad()

1. Set a notification message in session variable
2. Redirect to a specific url

First use in importExportController.php

See https://github.com/marienfressinaud/FreshRSS/conversations/576
This commit is contained in:
Marien Fressinaud
2014-08-12 20:59:27 +02:00
parent 8ffd59f34a
commit 1b20f6bd02
2 changed files with 35 additions and 47 deletions

View File

@@ -43,17 +43,9 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
$zip = zip_open($file['tmp_name']);
if (!is_resource($zip)) {
Minz_Log::error(
'Zip file cannot be imported. Error code: ' . $zip
);
// zip_open cannot open file: something is wrong
Minz_Session::_param('notification', array(
'type' => 'bad',
'content' => _t('zip_error')
));
Minz_Request::forward(array('c' => 'importExport'), true);
Minz_Log::error('Zip file cannot be imported. Error code: ' . $zip);
Minz_Request::bad(_t('zip_error'), array('c' => 'importExport'));
}
while (($zipfile = zip_read($zip)) !== false) {
@@ -72,12 +64,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
zip_close($zip);
} elseif ($type_file === 'zip') {
// Zip extension is not loaded
Minz_Session::_param('notification', array(
'type' => 'bad',
'content' => _t('no_zip_extension')
));
Minz_Request::forward(array('c' => 'importExport'), true);
Minz_Request::bad(_t('no_zip_extension'), array('c' => 'importExport'));
} elseif ($type_file !== 'unknown') {
$list_files[$type_file][] = file_get_contents(
$file['tmp_name']
@@ -100,35 +87,16 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
}
// And finally, we get import status and redirect to the home page
$notif = null;
if ($error === true) {
$content_notif = Minz_Translate::t(
'feeds_imported_with_errors'
);
} else {
$content_notif = Minz_Translate::t(
'feeds_imported'
);
}
Minz_Session::_param('notification', array(
'type' => 'good',
'content' => $content_notif
));
Minz_Session::_param('actualize_feeds', true);
Minz_Request::forward(array(
'c' => 'index',
'a' => 'index'
), true);
$content_notif = $error === true ? _t('feeds_imported_with_errors') :
_t('feeds_imported');
Minz_Request::good($content_notif);
}
// What are you doing? you have to call this controller
// with a POST request!
Minz_Request::forward(array(
'c' => 'importExport',
'a' => 'index'
));
Minz_Request::forward(array('c' => 'importExport'));
}
private function guessFileType($filename) {
@@ -362,17 +330,12 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
$nb_files = count($export_files);
if ($nb_files > 1) {
// If there are more than 1 file to export, we need an .zip
// If there are more than 1 file to export, we need a zip archive.
try {
$this->exportZip($export_files);
} catch (Exception $e) {
# Oops, there is no Zip extension!
$notif = array(
'type' => 'bad',
'content' => _t('export_no_zip_extension')
);
Minz_Session::_param('notification', $notif);
Minz_Request::forward(array('c' => 'importExport'), true);
Minz_Request::bad(_t('export_no_zip_extension'), array('c' => 'importExport'));
}
} elseif ($nb_files === 1) {
// Only one file? Guess its type and export it.
@@ -386,7 +349,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
$this->exportFile($filename, $export_files[$filename], $type);
} else {
Minz_Request::forward(array('c' => 'importExport'), true);
Minz_Request::forward(array('c' => 'importExport'));
}
}
}