use Friendica\Core\Renderer;
use Friendica\DI;
+use Friendica\Model\Storage\InvalidClassStorageException;
use Friendica\Model\Storage\IWritableStorage;
use Friendica\Module\BaseAdmin;
use Friendica\Util\Strings;
$storagebackend = Strings::escapeTags(trim($parameters['name'] ?? ''));
- /** @var IWritableStorage $newstorage */
- $newstorage = DI::storageManager()->getWritableStorageByName($storagebackend);
+ try {
+ /** @var IWritableStorage $newstorage */
+ $newstorage = DI::storageManager()->getWritableStorageByName($storagebackend);
+ } catch (InvalidClassStorageException $storageException) {
+ notice(DI::l10n()->t('Storage backend, %s is invalid.', $storagebackend));
+ DI::baseUrl()->redirect('admin/storage');
+ }
// save storage backend form
$storage_opts = $newstorage->getOptions();
$storage_form_errors = $newstorage->saveOptions($storage_opts_data);
if (count($storage_form_errors)) {
foreach ($storage_form_errors as $name => $err) {
- notice('Storage backend, ' . $storage_opts[$name][1] . ': ' . $err);
+ notice(DI::l10n()->t('Storage backend %s error: %s', $storage_opts[$name][1], $err));
}
DI::baseUrl()->redirect('admin/storage');
}
if (!empty($_POST['submit_save_set'])) {
- /** @var IWritableStorage $newstorage */
- $newstorage = DI::storageManager()->getWritableStorageByName($storagebackend);
+ try {
+ /** @var IWritableStorage $newstorage */
+ $newstorage = DI::storageManager()->getWritableStorageByName($storagebackend);
- if (!DI::storageManager()->setBackend($newstorage)) {
+ if (!DI::storageManager()->setBackend($newstorage)) {
+ notice(DI::l10n()->t('Invalid storage backend setting value.'));
+ }
+ } catch (InvalidClassStorageException $storageException) {
notice(DI::l10n()->t('Invalid storage backend setting value.'));
}
}
$current_storage_backend = DI::storage();
$available_storage_forms = [];
- foreach (DI::storageManager()->listBackends() as $name => $class) {
+ foreach (DI::storageManager()->listBackends() as $name) {
// build storage config form,
$storage_form_prefix = preg_replace('|[^a-zA-Z0-9]|', '', $name);
return Renderer::replaceMacros($t, [
'$title' => DI::l10n()->t('Administration'),
+ '$label_current' => DI::l10n()->t('Current Storage Backend'),
+ '$label_config' => DI::l10n()->t('Storage Configuration'),
'$page' => DI::l10n()->t('Storage'),
'$save' => DI::l10n()->t('Save'),
- '$save_activate' => DI::l10n()->t('Save & Activate'),
- '$activate' => DI::l10n()->t('Activate'),
+ '$save_use' => DI::l10n()->t('Save & Use storage backend'),
+ '$use' => DI::l10n()->t('Use storage backend'),
'$save_reload' => DI::l10n()->t('Save & Reload'),
'$noconfig' => DI::l10n()->t('This backend doesn\'t have custom settings'),
'$baseurl' => DI::baseUrl()->get(true),