diff --git a/modules/backend/ServiceProvider.php b/modules/backend/ServiceProvider.php index 29316b4b0..195ab1856 100644 --- a/modules/backend/ServiceProvider.php +++ b/modules/backend/ServiceProvider.php @@ -68,6 +68,8 @@ class ServiceProvider extends ModuleServiceProvider $combiner->registerBundle('~/modules/backend/assets/less/october.less'); $combiner->registerBundle('~/modules/backend/assets/js/october.js'); $combiner->registerBundle('~/modules/backend/widgets/table/assets/js/build.js'); + $combiner->registerBundle('~/modules/backend/widgets/mediamanager/assets/js/mediamanager-browser.js'); + $combiner->registerBundle('~/modules/backend/widgets/mediamanager/assets/less/mediamanager.less'); $combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/less/codeeditor.less'); $combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/js/build.js'); $combiner->registerBundle('~/modules/backend/formwidgets/fileupload/assets/less/fileupload.less'); @@ -96,6 +98,14 @@ class ServiceProvider extends ModuleServiceProvider 'url' => Backend::url('backend'), 'permissions' => ['backend.access_dashboard'], 'order' => 10 + ], + 'media' => [ + 'label' => 'backend::lang.media.menu_label', + 'icon' => 'icon-folder', + 'iconSvg' => 'modules/backend/assets/images/media-icon.svg', + 'url' => Backend::url('backend/media'), + 'permissions' => ['media.*'], + 'order' => 200 ] ]); }); @@ -140,6 +150,10 @@ class ServiceProvider extends ModuleServiceProvider 'backend.manage_branding' => [ 'label' => 'system::lang.permissions.manage_branding', 'tab' => 'system::lang.permissions.name' + ], + 'media.manage_media' => [ + 'label' => 'backend::lang.permissions.manage_media', + 'tab' => 'system::lang.permissions.name', ] ]); }); @@ -163,6 +177,7 @@ class ServiceProvider extends ModuleServiceProvider $manager->registerFormWidget('Backend\FormWidgets\RecordFinder', 'recordfinder'); $manager->registerFormWidget('Backend\FormWidgets\Repeater', 'repeater'); $manager->registerFormWidget('Backend\FormWidgets\TagList', 'taglist'); + $manager->registerFormWidget('Backend\FormWidgets\MediaFinder', 'mediafinder'); }); } diff --git a/modules/cms/assets/images/media-icon.svg b/modules/backend/assets/images/media-icon.svg similarity index 100% rename from modules/cms/assets/images/media-icon.svg rename to modules/backend/assets/images/media-icon.svg diff --git a/modules/backend/classes/Controller.php b/modules/backend/classes/Controller.php index 3410281e2..450d19d35 100644 --- a/modules/backend/classes/Controller.php +++ b/modules/backend/classes/Controller.php @@ -14,7 +14,7 @@ use Exception; use BackendAuth; use Backend\Models\UserPreference; use Backend\Models\Preference as BackendPreference; -use Cms\Widgets\MediaManager; +use Backend\Widgets\MediaManager; use October\Rain\Exception\AjaxException; use October\Rain\Exception\SystemException; use October\Rain\Exception\ValidationException; @@ -152,11 +152,7 @@ class Controller extends Extendable /* * Media Manager widget is available on all back-end pages */ - if ( - class_exists('Cms\Widgets\MediaManager') && - $this->user && - $this->user->hasAccess('media.*') - ) { + if ($this->user && $this->user->hasAccess('media.*')) { $manager = new MediaManager($this, 'ocmediamanager'); $manager->bindToController(); } diff --git a/modules/backend/controllers/Media.php b/modules/backend/controllers/Media.php new file mode 100644 index 000000000..e8c8941bb --- /dev/null +++ b/modules/backend/controllers/Media.php @@ -0,0 +1,38 @@ +pageTitle = 'backend::lang.media.menu_label'; + + $manager = new MediaManager($this, 'manager'); + $manager->bindToController(); + } + + public function index() + { + $this->bodyClass = 'compact-container'; + } +} diff --git a/modules/backend/controllers/media/index.htm b/modules/backend/controllers/media/index.htm new file mode 100644 index 000000000..d6f5048c2 --- /dev/null +++ b/modules/backend/controllers/media/index.htm @@ -0,0 +1,7 @@ + + + + 'layout', 'onsubmit'=>'return false']) ?> + widget->manager->render() ?> + + \ No newline at end of file diff --git a/modules/backend/formwidgets/MediaFinder.php b/modules/backend/formwidgets/MediaFinder.php new file mode 100644 index 000000000..817d0af78 --- /dev/null +++ b/modules/backend/formwidgets/MediaFinder.php @@ -0,0 +1,118 @@ +fillFromConfig([ + 'mode', + 'prompt', + 'imageWidth', + 'imageHeight' + ]); + + if ($this->formField->disabled) { + $this->previewMode = true; + } + } + + /** + * @inheritDoc + */ + public function render() + { + $this->prepareVars(); + + return $this->makePartial('mediafinder'); + } + + /** + * Prepares the list data + */ + public function prepareVars() + { + $value = $this->getLoadValue(); + $this->vars['value'] = $value; + $this->vars['imageUrl'] = $value ? MediaLibrary::url($value) : ''; + $this->vars['field'] = $this->formField; + $this->vars['prompt'] = str_replace('%s', '', trans($this->prompt)); + $this->vars['mode'] = $this->mode; + $this->vars['imageWidth'] = $this->imageWidth; + $this->vars['imageHeight'] = $this->imageHeight; + } + + /** + * @inheritDoc + */ + public function getSaveValue($value) + { + if ($this->formField->disabled || $this->formField->hidden) { + return FormField::NO_SAVE_DATA; + } + + return $value; + } + + /** + * @inheritDoc + */ + protected function loadAssets() + { + $this->addJs('js/mediafinder.js', 'core'); + $this->addCss('css/mediafinder.css', 'core'); + } +} diff --git a/modules/cms/formwidgets/mediafinder/assets/css/mediafinder.css b/modules/backend/formwidgets/mediafinder/assets/css/mediafinder.css similarity index 100% rename from modules/cms/formwidgets/mediafinder/assets/css/mediafinder.css rename to modules/backend/formwidgets/mediafinder/assets/css/mediafinder.css diff --git a/modules/cms/formwidgets/mediafinder/assets/js/mediafinder.js b/modules/backend/formwidgets/mediafinder/assets/js/mediafinder.js similarity index 100% rename from modules/cms/formwidgets/mediafinder/assets/js/mediafinder.js rename to modules/backend/formwidgets/mediafinder/assets/js/mediafinder.js diff --git a/modules/cms/formwidgets/mediafinder/assets/less/mediafinder.base.less b/modules/backend/formwidgets/mediafinder/assets/less/mediafinder.base.less similarity index 100% rename from modules/cms/formwidgets/mediafinder/assets/less/mediafinder.base.less rename to modules/backend/formwidgets/mediafinder/assets/less/mediafinder.base.less diff --git a/modules/cms/formwidgets/mediafinder/assets/less/mediafinder.filesingle.less b/modules/backend/formwidgets/mediafinder/assets/less/mediafinder.filesingle.less similarity index 100% rename from modules/cms/formwidgets/mediafinder/assets/less/mediafinder.filesingle.less rename to modules/backend/formwidgets/mediafinder/assets/less/mediafinder.filesingle.less diff --git a/modules/cms/formwidgets/mediafinder/assets/less/mediafinder.imagesingle.less b/modules/backend/formwidgets/mediafinder/assets/less/mediafinder.imagesingle.less similarity index 100% rename from modules/cms/formwidgets/mediafinder/assets/less/mediafinder.imagesingle.less rename to modules/backend/formwidgets/mediafinder/assets/less/mediafinder.imagesingle.less diff --git a/modules/cms/formwidgets/mediafinder/assets/less/mediafinder.less b/modules/backend/formwidgets/mediafinder/assets/less/mediafinder.less similarity index 100% rename from modules/cms/formwidgets/mediafinder/assets/less/mediafinder.less rename to modules/backend/formwidgets/mediafinder/assets/less/mediafinder.less diff --git a/modules/cms/formwidgets/mediafinder/partials/_file_single.htm b/modules/backend/formwidgets/mediafinder/partials/_file_single.htm similarity index 100% rename from modules/cms/formwidgets/mediafinder/partials/_file_single.htm rename to modules/backend/formwidgets/mediafinder/partials/_file_single.htm diff --git a/modules/cms/formwidgets/mediafinder/partials/_image_single.htm b/modules/backend/formwidgets/mediafinder/partials/_image_single.htm similarity index 100% rename from modules/cms/formwidgets/mediafinder/partials/_image_single.htm rename to modules/backend/formwidgets/mediafinder/partials/_image_single.htm diff --git a/modules/cms/formwidgets/mediafinder/partials/_mediafinder.htm b/modules/backend/formwidgets/mediafinder/partials/_mediafinder.htm similarity index 100% rename from modules/cms/formwidgets/mediafinder/partials/_mediafinder.htm rename to modules/backend/formwidgets/mediafinder/partials/_mediafinder.htm diff --git a/modules/backend/lang/be/lang.php b/modules/backend/lang/be/lang.php index 53e4d8a4c..8b76dc9ce 100644 --- a/modules/backend/lang/be/lang.php +++ b/modules/backend/lang/be/lang.php @@ -466,5 +466,72 @@ return [ 'unknown_column_error' => "Невядомы слупок", 'encoding_not_supported_error' => "Не атрымалася вызначыць кадзіроўку файла. Калі ласка, выберыце правільны фармат самастойна", 'encoding_format' => "Кадзіроўка файла" + ], + 'permissions' => [ + 'manage_media' => "Загрузка і кіраванне медыя зместам - выявы, відэа, гукі, дакументы" + ], + 'mediafinder' => [ + 'label' => "Медыя каталог", + 'default_prompt' => "Націсніце %s кнопку, каб адшукаць медыя файлы" + ], + 'media' => [ + 'menu_label' => "Медыя", + 'upload' => "Загрузіць", + 'move' => "Перамясціць", + 'delete' => "Выдаліць", + 'add_folder' => "Дадаць каталог", + 'search' => "Пошук", + 'display' => "Паказаць", + 'filter_everything' => "Усё", + 'filter_images' => "Выявы", + 'filter_video' => "Відэа", + 'filter_audio' => "Аўдыё", + 'filter_documents' => "Дакументы", + 'library' => "Бібліятэка", + 'size' => "Памер", + 'title' => "Назва", + 'last_modified' => "Час апошняй мадыфікацыі", + 'public_url' => "Публічны URL", + 'click_here' => "Націсніце сюды", + 'thumbnail_error' => "Памылка падчас генерацыі мініяцюры", + 'return_to_parent' => "Вярнуцца да бацькоўскага каталогу", + 'return_to_parent_label' => "Падняцца ..", + 'nothing_selected' => "Нічога не выбрана", + 'multiple_selected' => "Шматлікія аб'екты выбраны", + 'uploading_file_num' => "Загрузка :number файла(аў)...", + 'uploading_complete' => "Загрузка скончаная", + 'uploading_error' => "Не атымалася загрузіць", + 'type_blocked' => "Гэты тып файлу заблакіраваны з-за небяспекі", + 'order_by' => "Сартаваць па", + 'folder' => "Каталог", + 'no_files_found' => "Не знойдзена файлаў па Вашым запыце", + 'delete_empty' => "Калі ласка, вызначце файлы для выдалення", + 'delete_confirm' => "Выдаліць абраныя аб'екты?", + 'error_renaming_file' => "Памылка падчас пераіменавання аб'екту", + 'new_folder_title' => "Новы каталог", + 'folder_name' => "Імя каталогу", + 'error_creating_folder' => "Памылка падчас стварэння каталогу", + 'folder_or_file_exist' => "Каталог альбо файл з такім імем ужо існуе", + 'move_empty' => "Калі ласка, выберыце аб'екты для перамяшчэння", + 'move_popup_title' => "Перамясціць файлы альбо каталогі", + 'move_destination' => "Каталог прызначэння", + 'please_select_move_dest' => "Калі ласка, выберыце каталог прызначэння", + 'move_dest_src_match' => "Калі ласка, выберыце іншы каталог прызначэння", + 'empty_library' => "Медыя бібліятэка пустая. Загрузіце файлы альбо стварыце каталогі, каб пачаць", + 'insert' => "Уставіць", + 'crop_and_insert' => "Абрэзаць і ўставіць", + 'select_single_image' => "Калі ласка, выберыце адну выяву", + 'selection_not_image' => "Абраны аб'ект не з'яўляецца файлам", + 'restore' => "Адмяніць усе змяненні", + 'resize' => "Змяніць памер...", + 'selection_mode_normal' => "Нармальны", + 'selection_mode_fixed_ratio' => "Фіксіраваныя суадносіны старонак", + 'selection_mode_fixed_size' => "Фіксіраваны памер", + 'height' => "Вышыня", + 'width' => "Шырыня", + 'selection_mode' => "Рэжым выбару", + 'resize_image' => "Змяніць памер", + 'image_size' => "Памер выявы:", + 'selected_size' => "Выбрана:" ] ]; diff --git a/modules/backend/lang/bg/lang.php b/modules/backend/lang/bg/lang.php index c071b3ecf..4544f6548 100644 --- a/modules/backend/lang/bg/lang.php +++ b/modules/backend/lang/bg/lang.php @@ -373,4 +373,70 @@ return [ 'file_not_found_error' => 'Файлът не е намерен', 'empty_error' => 'Няма предоставени данни за изнасяне', ], + 'permissions' => [ + 'manage_media' => 'Управление на медия' + ], + 'mediafinder' => [ + 'label' => 'Медия', + 'default_prompt' => 'Кликнете върху %s бутон за да намерите медия' + ], + 'media' => [ + 'menu_label' => 'Медия', + 'upload' => 'Качи', + 'move' => 'Премести', + 'delete' => 'Изтрии', + 'add_folder' => 'Добави папка', + 'search' => 'Търсене', + 'display' => 'Показване', + 'filter_everything' => 'Всичко', + 'filter_images' => 'Изображения', + 'filter_video' => 'Видео', + 'filter_audio' => 'Аудио', + 'filter_documents' => 'Документи', + 'library' => 'Библиотека', + 'size' => 'Размер', + 'title' => 'Заглавие', + 'last_modified' => 'Последно модифициран', + 'public_url' => 'Обществен URL', + 'click_here' => 'Натисни тук', + 'thumbnail_error' => 'Грешка при генериране на умалено изображение.', + 'return_to_parent' => 'Върнете се към основната папка', + 'return_to_parent_label' => 'Нагоре ..', + 'nothing_selected' => 'Нищо не е избрано.', + 'multiple_selected' => 'Множество предмети избрани.', + 'uploading_file_num' => 'Качване: брой на файл(ове)...', + 'uploading_complete' => 'Качването завършено', + 'uploading_error' => 'Качването неуспешно', + 'order_by' => 'Подредени по', + 'folder' => 'Папка', + 'no_files_found' => 'Не са намерени файлове по заявката ви.', + 'delete_empty' => 'Моля изберете елементи, за които да бъдат изтрити.', + 'delete_confirm' => 'Наистина ли искате да изтриете избрания елемент(и)?', + 'error_renaming_file' => 'Грешка при преименуването на елемента.', + 'new_folder_title' => 'Нова папка', + 'folder_name' => 'Име на папка', + 'error_creating_folder' => 'Грешка при създаване на папка', + 'folder_or_file_exist' => 'Папка или файл с посоченото име вече съществува.', + 'move_empty' => 'Моля изберете елементи които да бъдат преместени.', + 'move_popup_title' => 'Преместване на файлове или папки', + 'move_destination' => 'Дестинационна папка', + 'please_select_move_dest' => 'Моля изберете папка за дестинация.', + 'move_dest_src_match' => 'Моля, изберете друга папка за дестинация.', + 'empty_library' => 'Медийната библиотека е празна. Качете файлове, или създайте папки, за да започнете.', + 'insert' => 'Вмъквам', + 'crop_and_insert' => 'Отрежи и вмъкни', + 'select_single_image' => 'Моля, изберете едно изображение.', + 'selection_not_image' => 'Избраният елемент не е изображение.', + 'restore' => 'Отмяна на всички промени', + 'resize' => 'Преоразмеряване...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Фиксиран съотношение', + 'selection_mode_fixed_size' => 'Фиксиран размер', + 'height' => 'Височина', + 'width' => 'Широчина', + 'selection_mode' => 'Режимът на избиране (селекция)', + 'resize_image' => 'Преоразмеряване изображение', + 'image_size' => 'Размер на изображение:', + 'selected_size' => 'Избран:' + ] ]; diff --git a/modules/backend/lang/cs/lang.php b/modules/backend/lang/cs/lang.php index 23ab5849d..a1b230f83 100644 --- a/modules/backend/lang/cs/lang.php +++ b/modules/backend/lang/cs/lang.php @@ -492,5 +492,72 @@ return [ 'unknown_column_error' => 'neznámý sloupec', 'encoding_not_supported_error' => 'Kódování zdrojového souboru není rozpoznáno. Zvolte volbu formátu souboru s vlastním kódováním pro import souboru.', 'encoding_format' => 'Kódování souboru', - ] + ], + 'permissions' => [ + 'manage_media' => 'Správa médií' + ], + 'mediafinder' => [ + 'label' => 'Vyhledávač médií', + 'default_prompt' => 'Klikněte na tlačítko %s pro hledání souboru' + ], + 'media' => [ + 'menu_label' => 'Média', + 'upload' => 'Nahrát', + 'move' => 'Přesunout', + 'delete' => 'Smazat', + 'add_folder' => 'Přidat složku', + 'search' => 'Vyhledat', + 'display' => 'Zobrazit', + 'filter_everything' => 'Vše', + 'filter_images' => 'Obrázky', + 'filter_video' => 'Video', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Dokumenty', + 'library' => 'Knihovna', + 'size' => 'Velikost', + 'title' => 'Název', + 'last_modified' => 'Naposledy upraveno', + 'public_url' => 'Veřejná URL', + 'click_here' => 'Klikněte zde', + 'thumbnail_error' => 'Chyba generování náhledu.', + 'return_to_parent' => 'Zpět do nadřazené složky', + 'return_to_parent_label' => 'Nahoru ..', + 'nothing_selected' => 'Nic nevybráno.', + 'multiple_selected' => 'Vybráno více položek.', + 'uploading_file_num' => 'Nahrávám :number soubor(y)...', + 'uploading_complete' => 'Nahrávání kompletní', + 'uploading_error' => 'Nahrávání se nezdařilo', + 'type_blocked' => 'Kvůli bezpečnosti je tento typ souborů zablokován.', + 'order_by' => 'Seřadit dle', + 'folder' => 'Složka', + 'no_files_found' => 'Pro tento požadavek nebyly nalezeny žádné soubory.', + 'delete_empty' => 'Vyberte položky ke smazání.', + 'delete_confirm' => 'Opravu chcete smazat vybrané položky?', + 'error_renaming_file' => 'Přejmenování se nezdařilo.', + 'new_folder_title' => 'Nová složka', + 'folder_name' => 'Název složky', + 'error_creating_folder' => 'Chyba vytváření složky', + 'folder_or_file_exist' => 'Adresář nebo soubor se zadaným názvem již existuje.', + 'move_empty' => 'Vyberte položky k přesunutí.', + 'move_popup_title' => 'Přesun souborů nebo složek', + 'move_destination' => 'Cílová složka', + 'please_select_move_dest' => 'Prosím vyberte cílovou složku.', + 'move_dest_src_match' => 'Prosím vyberte jinou cílovou složku.', + 'empty_library' => 'Knihovna médií je prázdná. Nahrajte prosím soubory, nebo vytvořte složky.', + 'insert' => 'Vložit', + 'crop_and_insert' => 'Oříznout & vložit', + 'select_single_image' => 'Prosím vyberte pouze jeden obrázek.', + 'selection_not_image' => 'Vybraná položka není obrázek.', + 'restore' => 'Zpět všechny změny', + 'resize' => 'Změnit velikost...', + 'selection_mode_normal' => 'Normální', + 'selection_mode_fixed_ratio' => 'Pevný poměr stran', + 'selection_mode_fixed_size' => 'Pevná velikost', + 'height' => 'Výška', + 'width' => 'Šířka', + 'selection_mode' => 'Způsob označování (selection mode)', + 'resize_image' => 'Změnit velikost obrázku', + 'image_size' => 'Velikost obrázku:', + 'selected_size' => 'Vybráno:' + ], ]; diff --git a/modules/backend/lang/da/lang.php b/modules/backend/lang/da/lang.php index 9de80a3a8..ca12b906c 100644 --- a/modules/backend/lang/da/lang.php +++ b/modules/backend/lang/da/lang.php @@ -477,5 +477,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => 'Upload og administrer media indhold - billeder, video, lyd, dokumenter' + ], + 'mediafinder' => [ + 'label' => 'Media Finder', + 'default_prompt' => 'Tryk på %s knappen for at finde et mediaobjekt' + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Upload', + 'move' => 'Flyt', + 'delete' => 'Slet', + 'add_folder' => 'Tilføj mappe', + 'search' => 'Søg', + 'display' => 'Vis', + 'filter_everything' => 'Alt', + 'filter_images' => 'Billeder', + 'filter_video' => 'Video', + 'filter_audio' => 'Lyd', + 'filter_documents' => 'Dokumenter', + 'library' => 'Bibliotek', + 'size' => 'Størrelse', + 'title' => 'Titel', + 'last_modified' => 'Sidst redigeret', + 'public_url' => 'Offentlig URL', + 'click_here' => 'Tryk her', + 'thumbnail_error' => 'Fejl ved generering af thumbnail.', + 'return_to_parent' => 'Gå en mappe tilbage', + 'return_to_parent_label' => 'Gå op ..', + 'nothing_selected' => 'Intet er valgt.', + 'multiple_selected' => 'Flere ting valgt.', + 'uploading_file_num' => 'Uploader :number fil(er)...', + 'uploading_complete' => 'Upload færdig', + 'uploading_error' => 'Upload fejlede', + 'type_blocked' => 'Filtypen er blokeret af sikkerhedshensyn.', + 'order_by' => 'Sorter efter', + 'folder' => 'Mappe', + 'no_files_found' => 'Ingen filer fundet fra din forespørgsel.', + 'delete_empty' => 'Vælg venligst filer at slette.', + 'delete_confirm' => 'Slet de valgte ting?', + 'error_renaming_file' => 'Fejl ved omdøbning.', + 'new_folder_title' => 'Ny mappe', + 'folder_name' => 'Mappenavn', + 'error_creating_folder' => 'Fejl ved opretning af mappe', + 'folder_or_file_exist' => 'En mappe eller fil med det angivede navn, findes allerede.', + 'move_empty' => 'Vælg venligst nogle ting du vil flytte.', + 'move_popup_title' => 'Flyt filer eller mapper', + 'move_destination' => 'Destinationmappe', + 'please_select_move_dest' => 'Vælg venligst en destinationsmappe.', + 'move_dest_src_match' => 'Vælg venligst en anden destinationsmappe.', + 'empty_library' => 'Media biblioteket er tomt. Upload filer eller mapper for at starte.', + 'insert' => 'Indsæt', + 'crop_and_insert' => 'Beskær & Indsæt', + 'select_single_image' => 'Vælg venligst et enkelt billede.', + 'selection_not_image' => 'Det valgte objekt er ikke et billede.', + 'restore' => 'Fortryd alle ændringer', + 'resize' => 'Skaler...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Fast størrelsesforhold', + 'selection_mode_fixed_size' => 'Fast størrelse', + 'height' => 'Højde', + 'width' => 'Bredde', + 'selection_mode' => 'Udvælgelsesmetode', + 'resize_image' => 'Skaler billede', + 'image_size' => 'Billedstørrelse:', + 'selected_size' => 'Valgt:' ] ]; diff --git a/modules/backend/lang/de/lang.php b/modules/backend/lang/de/lang.php index 0ef889b58..5dacf89f7 100644 --- a/modules/backend/lang/de/lang.php +++ b/modules/backend/lang/de/lang.php @@ -494,4 +494,69 @@ return [ 'windows_1252' => 'Windows-1252 (CP1252)' ] ], + 'permissions' => [ + 'manage_media' => 'Medien verwalten', + ], + 'mediafinder' => [ + 'label' => 'Media Finder', + 'default_prompt' => 'Klicke auf %s um eine Mediendatei auszuwählen' + ], + 'media' => [ + 'menu_label' => 'Medien', + 'upload' => 'Hochladen', + 'move' => 'Verschieben', + 'delete' => 'Löschen', + 'add_folder' => 'Ordner erstellen', + 'search' => 'Suchen', + 'display' => 'Anzeigen', + 'filter_everything' => 'Alles', + 'filter_images' => 'Bilder', + 'filter_video' => 'Video', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Dokumente', + 'library' => 'Sammlung', + 'size' => 'Größe', + 'title' => 'Titel', + 'last_modified' => 'Zuletzt bearbeitet', + 'public_url' => 'Öffentliche URL', + 'click_here' => 'Hier drücken', + 'thumbnail_error' => 'Fehler beim Erstellen des Thumbnails.', + 'return_to_parent' => 'Zu oberem Ordner zurückkehren', + 'return_to_parent_label' => 'Stufe hoch ..', + 'nothing_selected' => 'Nichts ausgewählt.', + 'multiple_selected' => 'Mehrere Dateien ausgewählt.', + 'uploading_file_num' => 'Lade :number Datei(en)...', + 'uploading_complete' => 'Upload vollständig', + 'order_by' => 'Sortieren nach', + 'folder' => 'Ordner', + 'no_files_found' => 'Keine entsprechenden Dateien gefunden.', + 'delete_empty' => 'Bitte Wählen Sie Dateien zum Löschen aus.', + 'delete_confirm' => 'Wollen Sie wirklich die gewählte(n) Datei(en) löschen?', + 'error_renaming_file' => 'Fehler beim Umbenennen.', + 'new_folder_title' => 'Neuer Ordner', + 'folder_name' => 'Ordnername', + 'error_creating_folder' => 'Fehler beim Erstellen des Ordners', + 'folder_or_file_exist' => 'Ein Ordner oder eine Datei mit dem gewählten Namen existiert bereits.', + 'move_empty' => 'Bitte wählen Sie Dateien zum Verschieben aus', + 'move_popup_title' => 'Verschiebe Dateien oder Ordner', + 'move_destination' => 'Zielordner', + 'please_select_move_dest' => 'Bitte wählen Sie einen Zielordner.', + 'move_dest_src_match' => 'Bitte wählen Sie einen anderen Zielordner.', + 'empty_library' => 'Diese Medienbibliothek ist leer. Laden Sie Dateien hoch oder erstellen Sie Ordner!', + 'insert' => 'Einfügen', + 'crop_and_insert' => 'Zuschneiden und Einfügen', + 'select_single_image' => 'Bitte wählen Sie ein einzelnes Bild.', + 'selection_not_image' => 'Die gewählte Datei ist kein Bild.', + 'restore' => 'Alle Änderungen rückgängig machen', + 'resize' => 'Größe anpassen...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Fixes Verhältnis', + 'selection_mode_fixed_size' => 'Fixe Größe', + 'height' => 'Höhe', + 'width' => 'Breite', + 'selection_mode' => 'Selection mode', + 'resize_image' => 'Bildgröße anpassen', + 'image_size' => 'Dimensionen:', + 'selected_size' => 'Ausgewählt:' + ] ]; diff --git a/modules/backend/lang/el/lang.php b/modules/backend/lang/el/lang.php index c02a0e09d..ac89c3af7 100644 --- a/modules/backend/lang/el/lang.php +++ b/modules/backend/lang/el/lang.php @@ -483,5 +483,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => 'Ανέβασμα και διαχείριση περιεχομένου μέσων - εικόνων, βίντεο, ήχων, εγγράφων,//Upload and manage media contents - images, videos, sounds, documents' + ], + 'mediafinder' => [ + 'label' => 'Media Finder', + 'default_prompt' => 'Click the %s button to find a media item' + ], + 'media' => [ + 'menu_label' => 'Μέσα', + 'upload' => 'Ανέβασμα', + 'move' => 'Μετακίνηση', + 'delete' => 'Διαγραφή', + 'add_folder' => 'Προσθήκη καταλόγου', + 'search' => 'Αναζήτηση', + 'display' => 'Εμφάνιση', + 'filter_everything' => 'Όλα', + 'filter_images' => 'Εικόνες', + 'filter_video' => 'Βίντεο', + 'filter_audio' => 'Ήχος', + 'filter_documents' => 'Έγγραφο', + 'library' => 'Βιβλιοθήκη', + 'size' => 'Μέγεθος', + 'title' => 'Τίτλος', + 'last_modified' => 'Τελευταία τροποποίηση', + 'public_url' => 'Δημόσιο URL', + 'click_here' => 'Κλικ εδώ', + 'thumbnail_error' => 'Σφάλμα κατά την δημιουργία μικρογραφίας.', + 'return_to_parent' => 'Επιστροφή στον γονικό κατάλογο', + 'return_to_parent_label' => 'Πήγαινε επάνω...', + 'nothing_selected' => 'Δεν επιλέχτηκε τίποτα.', + 'multiple_selected' => 'Επιλέχτηκαν πολλαπλά αντικείμενα.', + 'uploading_file_num' => 'Ανέβασμα :number αρχείων...', + 'uploading_complete' => 'Το ανέβασμα ολοκληρώθηκε', + 'uploading_error' => 'Το ανέβασμα απέτυχε', + 'type_blocked' => 'Ο τύπος του αρχείου που χρησιμοποιήθηκε μπλοκαρίστηκε για λόγους ασφαλείας.', + 'order_by' => 'Ταξινόμηση κατά', + 'folder' => 'Κατάλογος', + 'no_files_found' => 'Δεν βρέθηκαν αρχεία από το αίτημα σας.', + 'delete_empty' => 'παρακαλούμε επιλέξτε αντικείμενά για να τα σβήσετε.', + 'delete_confirm' => 'Διαγραφή των επιλεγμένων αντικείμενων;', + 'error_renaming_file' => 'Σφάλμα κατά την μετονομασία του αντικειμένου.', + 'new_folder_title' => 'Νέος κατάλογος', + 'folder_name' => 'Όνομα καταλόγου', + 'error_creating_folder' => 'Σφάλμα κατά την δημιουργία καταλόγου', + 'folder_or_file_exist' => 'Ένας κατάλογος ή αρχείο με το ίδιο όνομα υπάρχει ήδη.', + 'move_empty' => 'παρακαλούμε επιλέξτε αντικείμενα για να τα μετακινήσετε.', + 'move_popup_title' => 'Μετακίνηση αρχείων ή καταλογών.', + 'move_destination' => 'Κατάλογος προορισμού', + 'please_select_move_dest' => 'Παρακαλούμε επιλέξτε ένα κατάλογο προορισμού.', + 'move_dest_src_match' => 'Παρακαλούμε επιλέξτε έναν διαφορετικό κατάλογο προορισμού.', + 'empty_library' => 'Η βιβλιοθήκη Μέσων είναι άδεια. Ανεβάστε αρχεία ή δημιουργήστε καταλόγους για να ξεκινήσετε.', + 'insert' => 'Εισαγωγή', + 'crop_and_insert' => 'Περικοπή & Εισαγωγή', + 'select_single_image' => 'παρακαλούμε επιλέξτε μόνο μια εικόνα.', + 'selection_not_image' => 'Το επιλεγμένο αντικείμενο δεν είναι εικόνα.', + 'restore' => 'Αναίρεση όλων των αλλαγών', + 'resize' => 'Αλλαγή μεγέθους...', + 'selection_mode_normal' => 'Κανονικό', + 'selection_mode_fixed_ratio' => 'Κλειδωμένη αναλογία', + 'selection_mode_fixed_size' => 'Κλειδωμένο μέγεθος', + 'height' => 'Ύψος', + 'width' => 'Πλάτος', + 'selection_mode' => 'Λειτουργία επιλογής', + 'resize_image' => 'Αλλαγή μεγέθους εικόνας', + 'image_size' => 'Μέγεθος εικόνας:', + 'selected_size' => 'Επιλεγμένο:', ] ]; diff --git a/modules/backend/lang/en/lang.php b/modules/backend/lang/en/lang.php index 92567e3f3..6bc525d6f 100644 --- a/modules/backend/lang/en/lang.php +++ b/modules/backend/lang/en/lang.php @@ -514,5 +514,75 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => 'Upload and manage media contents - images, videos, sounds, documents' + ], + 'mediafinder' => [ + 'label' => 'Media Finder', + 'default_prompt' => 'Click the %s button to find a media item' + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Upload', + 'move' => 'Move', + 'delete' => 'Delete', + 'add_folder' => 'Add folder', + 'search' => 'Search', + 'display' => 'Display', + 'filter_everything' => 'Everything', + 'filter_images' => 'Images', + 'filter_video' => 'Video', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Documents', + 'library' => 'Library', + 'size' => 'Size', + 'title' => 'Title', + 'last_modified' => 'Last modified', + 'public_url' => 'URL', + 'click_here' => 'Click here', + 'thumbnail_error' => 'Error generating thumbnail.', + 'return_to_parent' => 'Return to the parent folder', + 'return_to_parent_label' => 'Go up ..', + 'nothing_selected' => 'Nothing is selected.', + 'multiple_selected' => 'Multiple items selected.', + 'uploading_file_num' => 'Uploading :number file(s)...', + 'uploading_complete' => 'Upload complete', + 'uploading_error' => 'Upload failed', + 'type_blocked' => 'The file type used is blocked for security reasons.', + 'order_by' => 'Order by', + 'direction' => 'Direction', + 'direction_asc' => 'Ascending', + 'direction_desc' => 'Descending', + 'folder' => 'Folder', + 'no_files_found' => 'No files found by your request.', + 'delete_empty' => 'Please select items to delete.', + 'delete_confirm' => 'Delete the selected item(s)?', + 'error_renaming_file' => 'Error renaming the item.', + 'new_folder_title' => 'New folder', + 'folder_name' => 'Folder name', + 'error_creating_folder' => 'Error creating folder', + 'folder_or_file_exist' => 'A folder or file with the specified name already exists.', + 'move_empty' => 'Please select items to move.', + 'move_popup_title' => 'Move files or folders', + 'move_destination' => 'Destination folder', + 'please_select_move_dest' => 'Please select a destination folder.', + 'move_dest_src_match' => 'Please select another destination folder.', + 'empty_library' => 'It looks a bit empty here. Upload files or create folders to get started.', + 'insert' => 'Insert', + 'crop_and_insert' => 'Crop & Insert', + 'select_single_image' => 'Please select a single image.', + 'selection_not_image' => 'The selected item is not an image.', + 'restore' => 'Undo all changes', + 'resize' => 'Resize...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Fixed ratio', + 'selection_mode_fixed_size' => 'Fixed size', + 'height' => 'Height', + 'width' => 'Width', + 'selection_mode' => 'Selection mode', + 'resize_image' => 'Resize image', + 'image_size' => 'Image size:', + 'selected_size' => 'Selected:' + ], ]; diff --git a/modules/backend/lang/es/lang.php b/modules/backend/lang/es/lang.php index 385f69316..2fb07690b 100644 --- a/modules/backend/lang/es/lang.php +++ b/modules/backend/lang/es/lang.php @@ -472,5 +472,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => 'Subir y gestionar contenidos multimedia - imágenes, vídeos, sonidos y documentos' + ], + 'mediafinder' => [ + 'label' => 'Buscador de multimedia', + 'default_prompt' => 'Haga clic en el botón %s para buscar un elemento multimedia', + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Subir', + 'move' => 'Mover', + 'delete' => 'Eliminar', + 'add_folder' => 'Nueva carpeta', + 'search' => 'Buscar', + 'display' => 'Mostrar', + 'filter_everything' => 'Todo', + 'filter_images' => 'Imágenes', + 'filter_video' => 'Vídeo', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Documentos', + 'library' => 'Biblioteca', + 'size' => 'Tamaño', + 'title' => 'Título', + 'last_modified' => 'Última modificación', + 'public_url' => 'URL pública', + 'click_here' => 'Haz click aquí', + 'thumbnail_error' => 'Error generando la miniatura.', + 'return_to_parent' => 'Volver a la carpeta anterior', + 'return_to_parent_label' => 'Atrás ..', + 'nothing_selected' => 'No se ha seleccionado nada.', + 'multiple_selected' => 'Se han seleccionado varios elementos.', + 'uploading_file_num' => 'Subiendo :number archivo(s)...', + 'uploading_complete' => 'Subida completada', + 'uploading_error' => 'Error al subir', + 'type_blocked' => 'El tipo de archivo usado ha sido bloqueado por motivos de seguridad.', + 'order_by' => 'Ordenar por', + 'folder' => 'Carpeta', + 'no_files_found' => 'No se han encontrado archivos.', + 'delete_empty' => 'Por favor, selecciona los elementos que quieres eliminar.', + 'delete_confirm' => '¿Deseas eliminar los elementos seleccionados?', + 'error_renaming_file' => 'Error al renombrar el elemento.', + 'new_folder_title' => 'Nueva carpeta', + 'folder_name' => 'Nombre de la carpeta', + 'error_creating_folder' => 'Error al crear la carpeta', + 'folder_or_file_exist' => 'Ya existe un archivo o carpeta con este nombre.', + 'move_empty' => 'Por favor, selecciona los elementos que quieres mover.', + 'move_popup_title' => 'Mover archivos o carpetas', + 'move_destination' => 'Carpeta de destino', + 'please_select_move_dest' => 'Por favor, selecciona una carpeta de destino.', + 'move_dest_src_match' => 'Por favor, selecciona otra carpeta de destino.', + 'empty_library' => 'La biblioteca de medios está vacía. Sube archivos o crea carpetas para empezar.', + 'insert' => 'Insertar', + 'crop_and_insert' => 'Cortar e insertar', + 'select_single_image' => 'Por favor, selecciona sólo una imagen.', + 'selection_not_image' => 'El elemento seleccionado no es una imagen.', + 'restore' => 'Deshacer todos los cambios', + 'resize' => 'Redimensionar...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Aspecto fijo', + 'selection_mode_fixed_size' => 'Tamaño fijo', + 'height' => 'Alto', + 'width' => 'Ancho', + 'selection_mode' => 'Modo de selección', + 'resize_image' => 'Redimensionar imagen', + 'image_size' => 'Tamaño de la imagen:', + 'selected_size' => 'Selección:' + ], ]; diff --git a/modules/backend/lang/et/lang.php b/modules/backend/lang/et/lang.php index 88ad06d18..9d1e0795c 100644 --- a/modules/backend/lang/et/lang.php +++ b/modules/backend/lang/et/lang.php @@ -493,5 +493,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => 'Upload and manage media contents - images, videos, sounds, documents' + ], + 'mediafinder' => [ + 'label' => 'Media Finder', + 'default_prompt' => 'Click the %s button to find a media item' + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Upload', + 'move' => 'Move', + 'delete' => 'Delete', + 'add_folder' => 'Add folder', + 'search' => 'Search', + 'display' => 'Display', + 'filter_everything' => 'Everything', + 'filter_images' => 'Images', + 'filter_video' => 'Video', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Documents', + 'library' => 'Library', + 'size' => 'Size', + 'title' => 'Title', + 'last_modified' => 'Last modified', + 'public_url' => 'Download URL', + 'click_here' => 'Click here', + 'thumbnail_error' => 'Error generating thumbnail.', + 'return_to_parent' => 'Return to the parent folder', + 'return_to_parent_label' => 'Go up ..', + 'nothing_selected' => 'Nothing is selected.', + 'multiple_selected' => 'Multiple items selected.', + 'uploading_file_num' => 'Uploading :number file(s)...', + 'uploading_complete' => 'Upload complete', + 'uploading_error' => 'Upload failed', + 'type_blocked' => 'The file type used is blocked for security reasons.', + 'order_by' => 'Order by', + 'folder' => 'Folder', + 'no_files_found' => 'No files found by your request.', + 'delete_empty' => 'Please select items to delete.', + 'delete_confirm' => 'Delete the selected item(s)?', + 'error_renaming_file' => 'Error renaming the item.', + 'new_folder_title' => 'New folder', + 'folder_name' => 'Folder name', + 'error_creating_folder' => 'Error creating folder', + 'folder_or_file_exist' => 'A folder or file with the specified name already exists.', + 'move_empty' => 'Please select items to move.', + 'move_popup_title' => 'Move files or folders', + 'move_destination' => 'Destination folder', + 'please_select_move_dest' => 'Please select a destination folder.', + 'move_dest_src_match' => 'Please select another destination folder.', + 'empty_library' => 'It looks a bit empty here. Upload files or create folders to get started.', + 'insert' => 'Insert', + 'crop_and_insert' => 'Crop & Insert', + 'select_single_image' => 'Please select a single image.', + 'selection_not_image' => 'The selected item is not an image.', + 'restore' => 'Undo all changes', + 'resize' => 'Resize...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Fixed ratio', + 'selection_mode_fixed_size' => 'Fixed size', + 'height' => 'Height', + 'width' => 'Width', + 'selection_mode' => 'Selection mode', + 'resize_image' => 'Resize image', + 'image_size' => 'Image size:', + 'selected_size' => 'Selected:' + ], ]; diff --git a/modules/backend/lang/fa/lang.php b/modules/backend/lang/fa/lang.php index 534b3b6e6..4b72228af 100644 --- a/modules/backend/lang/fa/lang.php +++ b/modules/backend/lang/fa/lang.php @@ -486,5 +486,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => 'مدیریت چند رسانه ها' + ], + 'mediafinder' => [ + 'label' => 'جستجوگر رسانه', + 'default_prompt' => '%s را جهت انتخاب فایل چند رسانه ای انتخاب کنید' + ], + 'media' => [ + 'menu_label' => 'چند رسانه ای', + 'upload' => 'ارسال', + 'move' => 'جابجایی', + 'delete' => 'حذف', + 'add_folder' => 'پوشه جدید', + 'search' => 'جستجو', + 'display' => 'نمایش', + 'filter_everything' => 'همه', + 'filter_images' => 'تصاویر', + 'filter_video' => 'ویدیو', + 'filter_audio' => 'صوتی', + 'filter_documents' => 'اسناد', + 'library' => 'کتاب خانه', + 'size' => 'اندازه', + 'title' => 'عنوان', + 'last_modified' => 'آخرین تغییرات', + 'public_url' => 'آدرس عمومی', + 'click_here' => 'اینجا کلیک کنید', + 'thumbnail_error' => 'خطا در ایجاد تصویر بند انگشتی', + 'return_to_parent' => 'بازگشت به پوشه قبل', + 'return_to_parent_label' => 'بازگشت ..', + 'nothing_selected' => 'چیزی انتخاب نشده است.', + 'multiple_selected' => 'چند مورد انتخاب شده', + 'uploading_file_num' => 'ارسال :number فایل(ها)...', + 'uploading_complete' => 'ارسال انجام شد', + 'uploading_error' => 'خطا در ارسال', + 'type_blocked' => 'نوع فایل استفاده شده به دلیل مسایل امنیتی مجاز نمی باشد..', + 'order_by' => 'مرتب سازی با', + 'folder' => 'پوشه', + 'no_files_found' => 'فایلی با درخواست شما یافت نشد', + 'delete_empty' => 'لطفا موارد را جهت حذف انتخاب نمایید', + 'delete_confirm' => 'آیا از حذف مورد(های) انتخاب شده اطمینان دارید؟', + 'error_renaming_file' => 'خطا در تغییر نام.', + 'new_folder_title' => 'پوشه ی جدید', + 'folder_name' => 'نام پوشه', + 'error_creating_folder' => 'خطا در ایجاد پوشه', + 'folder_or_file_exist' => 'پوشه یا فایلی با نام وارد شده از قبل وجود دارد.', + 'move_empty' => 'لطفا موارد را جهت جابجایی انتخاب نمایید', + 'move_popup_title' => 'جابحایی فایل یا پوشه ها', + 'move_destination' => 'پوشه مقصد', + 'please_select_move_dest' => 'لطفا پوشه مقصد را انتخاب نمائید.', + 'move_dest_src_match' => 'لطفا پوشه دیگری را انتخاب نمایید.', + 'empty_library' => 'چیزی یافت نشد.', + 'insert' => 'قرار دادن', + 'crop_and_insert' => 'بریدن و افزودن', + 'select_single_image' => 'لطفا یک تصویر انتخاب نمایید', + 'selection_not_image' => 'مورد انتخاب شده تصویر نمی باشد', + 'restore' => 'حذف همه تغییرات', + 'resize' => 'تغییر اندازه...', + 'selection_mode_normal' => 'معمولی', + 'selection_mode_fixed_ratio' => 'نصبت ثابت', + 'selection_mode_fixed_size' => 'اندازه ثابت', + 'height' => 'ارتفاع', + 'width' => 'عرض', + 'selection_mode' => 'حالت انتخابی', + 'resize_image' => 'تغییر اندازه تصویر', + 'image_size' => 'اندازه تصویر:', + 'selected_size' => 'انتخاب شده:' ] ]; diff --git a/modules/backend/lang/fr/lang.php b/modules/backend/lang/fr/lang.php index 29d7141bd..86643b3c7 100644 --- a/modules/backend/lang/fr/lang.php +++ b/modules/backend/lang/fr/lang.php @@ -491,5 +491,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => 'Déposer et gérer les contenus media - images, vidéos, sons, documents' + ], + 'mediafinder' => [ + 'label' => 'Galerie média', + 'default_prompt' => 'Cliquez sur le bouton %s pour trouver un élément média' + ], + 'media' => [ + 'menu_label' => 'Média', + 'upload' => 'Déposer un fichier', + 'move' => 'Déplacer', + 'delete' => 'Supprimer', + 'add_folder' => 'Ajouter un répertoire', + 'search' => 'Rechercher', + 'display' => 'Affichage', + 'filter_everything' => 'Tout', + 'filter_images' => 'Images', + 'filter_video' => 'Vidéo', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Documents', + 'library' => 'Librairie', + 'size' => 'Taille', + 'title' => 'Titre', + 'last_modified' => 'Dernière modification', + 'public_url' => 'Adresse URL publique', + 'click_here' => 'Cliquer ici', + 'thumbnail_error' => 'Erreur lors de la création de la miniature.', + 'return_to_parent' => 'Retourner au répertoire parent', + 'return_to_parent_label' => 'Monter…', + 'nothing_selected' => 'Aucune sélection.', + 'multiple_selected' => 'Plusieurs éléments sélectionnés.', + 'uploading_file_num' => 'Dépôt de :number fichier(s)…', + 'uploading_complete' => 'Dépôt des fichiers terminé', + 'uploading_error' => 'Le dépôt des fichiers a échoué', + 'type_blocked' => 'Le type de fichier utilisé est bloqué pour des raisons de sécurité.', + 'order_by' => 'Trier par', + 'folder' => 'Répertoire', + 'no_files_found' => 'Aucun fichier trouvé.', + 'delete_empty' => 'Veuillez sélectionner les éléments à supprimer.', + 'delete_confirm' => 'Confirmer la suppression de ces éléments ?', + 'error_renaming_file' => 'Erreur lors du renommage de l’élément.', + 'new_folder_title' => 'Nouveau répertoire', + 'folder_name' => 'Nom du répertoire', + 'error_creating_folder' => 'Erreur lors de la création du répertoire', + 'folder_or_file_exist' => 'Un répertoire ou un fichier portant ce nom existe déjà.', + 'move_empty' => 'Veuillez sélectionner les éléments à déplacer.', + 'move_popup_title' => 'Déplacer des fichiers ou répertoires', + 'move_destination' => 'Répertoire de destination', + 'please_select_move_dest' => 'Veuillez sélectionner un répertoire de destination.', + 'move_dest_src_match' => 'Veuillez sélectionner un autre répertoire de destination.', + 'empty_library' => 'La librairie multimédia est vide. Pour commencer, télécharger des fichiers ou répertoires.', + 'insert' => 'Insérer', + 'crop_and_insert' => 'Rogner et insérer', + 'select_single_image' => 'Veuillez sélectionner une seule image.', + 'selection_not_image' => 'L’élément sélectionné n’est pas une image.', + 'restore' => 'Annuler tous les changements', + 'resize' => 'Redimensionner…', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Rapport fixe', + 'selection_mode_fixed_size' => 'Taille fixe', + 'height' => 'Hauteur', + 'width' => 'Largeur', + 'selection_mode' => 'Mode de sélection', + 'resize_image' => 'Redimensionner l’image', + 'image_size' => 'Taille de l’image :', + 'selected_size' => 'Sélectionnée :' ] ]; diff --git a/modules/backend/lang/hu/lang.php b/modules/backend/lang/hu/lang.php index 2ff3114e2..fcb6a11f5 100644 --- a/modules/backend/lang/hu/lang.php +++ b/modules/backend/lang/hu/lang.php @@ -514,5 +514,75 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => 'Média kezelése' + ], + 'mediafinder' => [ + 'label' => 'Média', + 'default_prompt' => 'Kattintson a(z) %s gombra új média fájl kereséséhez.' + ], + 'media' => [ + 'menu_label' => 'Média', + 'upload' => 'Feltöltés', + 'move' => 'Áthelyezés', + 'delete' => 'Törlés', + 'add_folder' => 'Könyvtár létrehozása', + 'search' => 'Keresés...', + 'display' => 'Megjelenítés', + 'filter_everything' => 'Összes', + 'filter_images' => 'Kép', + 'filter_video' => 'Videó', + 'filter_audio' => 'Audió', + 'filter_documents' => 'Dokumentum', + 'library' => 'Média', + 'size' => 'Méret', + 'title' => 'Név', + 'last_modified' => 'Módosítva', + 'public_url' => 'Webcím', + 'click_here' => 'Megtekintés', + 'thumbnail_error' => 'Hiba a bélyegkép létrehozásánál.', + 'return_to_parent' => 'Vissza a szülő könyvtárhoz', + 'return_to_parent_label' => 'Eggyel vissza ..', + 'nothing_selected' => 'Nincs kiválasztva fájl.', + 'multiple_selected' => 'Több fájl kiválasztva.', + 'uploading_file_num' => 'Feltöltve :number fájl...', + 'uploading_complete' => 'Feltöltés sikeresen befejezve', + 'uploading_error' => 'Feltöltés sikertelen', + 'type_blocked' => 'A fájltípus blokkolva lett biztonsági okokból.', + 'order_by' => 'Rendezés', + 'direction' => 'Irány', + 'direction_asc' => 'Növekvő', + 'direction_desc' => 'Csökkenő', + 'folder' => 'Könyvtár', + 'no_files_found' => 'Nem található fájl a lekérésben.', + 'delete_empty' => 'Kérjük válassza ki a törölni kívánt fájlokat.', + 'delete_confirm' => 'Valóban törölni akarja a kiválasztott fájlokat?', + 'error_renaming_file' => 'Hiba a fájl átnevezésében.', + 'new_folder_title' => 'Új könyvtár', + 'folder_name' => 'Könyvtár neve', + 'error_creating_folder' => 'Hiba a könyvtár létrehozásánál', + 'folder_or_file_exist' => 'Már létezik ilyen nevű fájl vagy könyvtár.', + 'move_empty' => 'Kérjük válasszon ki fájlt az áthelyezéshez.', + 'move_popup_title' => 'Fájlok vagy könyvtárak áthelyezése', + 'move_destination' => 'Célkönyvtár', + 'please_select_move_dest' => 'Kérjük válasszon célkönyvtárat.', + 'move_dest_src_match' => 'Kérjük válasszon másik célkönyvtárat.', + 'empty_library' => 'Kezdésként hozzon létre könyvtárat és töltsön fel fájlokat.', + 'insert' => 'Beillesztés', + 'crop_and_insert' => 'Vágás és beillesztés', + 'select_single_image' => 'Kérjük válasszon ki egy képet.', + 'selection_not_image' => 'A kiválasztott fájl nem kép.', + 'restore' => 'Összes változtatás visszavonása', + 'resize' => 'Átméretezés...', + 'selection_mode_normal' => 'Normál', + 'selection_mode_fixed_ratio' => 'Rögzített képarány', + 'selection_mode_fixed_size' => 'Rögzített méret', + 'height' => 'Magasság', + 'width' => 'Szélesség', + 'selection_mode' => 'Kiválasztás módja', + 'resize_image' => 'Kép átméretezése', + 'image_size' => 'Kép mérete:', + 'selected_size' => 'Kiválasztva:' + ], ]; diff --git a/modules/backend/lang/it/lang.php b/modules/backend/lang/it/lang.php index bc445aafd..a84633195 100644 --- a/modules/backend/lang/it/lang.php +++ b/modules/backend/lang/it/lang.php @@ -472,5 +472,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => 'Gestisci elementi multimediali' + ], + 'mediafinder' => [ + 'label' => 'Media Finder', + 'default_prompt' => 'Fai clic sul pulsante %s per trovare un elemento multimediale' + ], + 'media' => [ + 'menu_label' => 'Elementi multimediali', + 'upload' => 'Carica', + 'move' => 'Sposta', + 'delete' => 'Elimina', + 'add_folder' => 'Aggiungi cartella', + 'search' => 'Cerca', + 'display' => 'Visualizza', + 'filter_everything' => 'Tutto', + 'filter_images' => 'Immagini', + 'filter_video' => 'Video', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Documenti', + 'library' => 'Libreria', + 'size' => 'Dimensione', + 'title' => 'Titolo', + 'last_modified' => 'Ultima modifica', + 'public_url' => 'URL pubblico', + 'click_here' => 'Fai clic qui', + 'thumbnail_error' => 'Errore durante la generazione dell\'anteprima.', + 'return_to_parent' => 'Ritorna alla cartella superiore', + 'return_to_parent_label' => 'Torna su ..', + 'nothing_selected' => 'Nessun elemento selezionato.', + 'multiple_selected' => 'Elementi multipli selezionati.', + 'uploading_file_num' => 'Caricamento in corso di :number file(s)...', + 'uploading_complete' => 'Caricamento completato', + 'uploading_error' => 'Caricamento fallito', + 'type_blocked' => 'Il tipo di file utilizzato è bloccato per questioni di sicurezza.', + 'order_by' => 'Ordina per', + 'folder' => 'Cartella', + 'no_files_found' => 'Nessun file corrisponde alla tua richiesta.', + 'delete_empty' => 'Seleziona elementi da eliminare.', + 'delete_confirm' => 'Vuoi davvero eliminare gli elementi selezionati?', + 'error_renaming_file' => 'Errore durante la rinominazione dell\'elemento', + 'new_folder_title' => 'Nuova cartella', + 'folder_name' => 'Nome della cartella', + 'error_creating_folder' => 'Errore durante la creazione della cartella', + 'folder_or_file_exist' => 'Una cartella o un file con il nome specificato è già esistente.', + 'move_empty' => 'Selezione elementi da spostare.', + 'move_popup_title' => 'Sposta file o cartelle', + 'move_destination' => 'Cartella di destinazione', + 'please_select_move_dest' => 'Seleziona una cartella di destinazione.', + 'move_dest_src_match' => 'Seleziona un\'altra cartella di destinazione.', + 'empty_library' => 'La libreria è vuota. Carica dei files o crea delle cartelle per iniziare.', + 'insert' => 'Inserisci', + 'crop_and_insert' => 'Ritaglia e inserisci', + 'select_single_image' => 'Seleziona una singola immagine.', + 'selection_not_image' => 'L\'elemento selezionato non è un\'immagine.', + 'restore' => 'Annulla tutte le modifiche', + 'resize' => 'Ridimensiona...', + 'selection_mode_normal' => 'Normale', + 'selection_mode_fixed_ratio' => 'Rapporto fisso', + 'selection_mode_fixed_size' => 'Dimensione fissa', + 'height' => 'Altezza', + 'width' => 'Larghezza', + 'selection_mode' => 'Metodo di selezione', + 'resize_image' => 'Ridimensiona immagine', + 'image_size' => 'Dimensione immagine:', + 'selected_size' => 'Selezionati:' ] ]; diff --git a/modules/backend/lang/kr/lang.php b/modules/backend/lang/kr/lang.php index cebc0fd79..e18099611 100644 --- a/modules/backend/lang/kr/lang.php +++ b/modules/backend/lang/kr/lang.php @@ -492,5 +492,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => '미디어관리와 업로드 - 이미지, 동영상, 소리, 문서' + ], + 'mediafinder' => [ + 'label' => '미디어 탐색기', + 'default_prompt' => '%s 버튼 클릭하여 미디어 아이템 찾기' + ], + 'media' => [ + 'menu_label' => '미디어', + 'upload' => '업로드', + 'move' => '이동', + 'delete' => '삭제', + 'add_folder' => '폴더 추가', + 'search' => '검색', + 'display' => '표시방법', + 'filter_everything' => '전체표시', + 'filter_images' => '이미지', + 'filter_video' => '동영상', + 'filter_audio' => '소리', + 'filter_documents' => '문서', + 'library' => '라이브러리', + 'size' => '용량', + 'title' => '제목', + 'last_modified' => '최종변경', + 'public_url' => '다운로드 URL', + 'click_here' => '클릭해주세요', + 'thumbnail_error' => '썸네일 생성 오류.', + 'return_to_parent' => '상위 폴더로 돌아가기', + 'return_to_parent_label' => '상위 폴더 ..', + 'nothing_selected' => '선택없음.', + 'multiple_selected' => '여러개 선택됨.', + 'uploading_file_num' => ':number 파일 업로드중...', + 'uploading_complete' => '업로드 완료', + 'uploading_error' => '업로드 실패', + 'type_blocked' => '보안문제로 해당 파일타입은 불가능합니다.', + 'order_by' => '정렬방법', + 'folder' => '폴더', + 'no_files_found' => '요청하신 파일을 찾을 수 없습니다.', + 'delete_empty' => '삭제할 대상을 선택해 주세요.', + 'delete_confirm' => '선택하신 대상을 삭제하시겠습니까?', + 'error_renaming_file' => '이름변경 오류.', + 'new_folder_title' => '신규 폴더', + 'folder_name' => '폴더 이름', + 'error_creating_folder' => '폴더 생성 오류', + 'folder_or_file_exist' => '해당 이름의 파일이나 폴더가 이미 존재합니다.', + 'move_empty' => '이동할 대상을 선택하세요.', + 'move_popup_title' => '파일이나 폴더를 이동', + 'move_destination' => '목적지 폴더', + 'please_select_move_dest' => '목적지 폴더를 선택하세요.', + 'move_dest_src_match' => '다른 목적지 폴더를 선택하세요.', + 'empty_library' => '라이브러리가 비어있습니다. 파일을 업로드하거나 폴더를 생성하여 시작해보세요.', + 'insert' => '삽입', + 'crop_and_insert' => '자르기 & 삽입', + 'select_single_image' => '한개의 이미지를 선택해주세요.', + 'selection_not_image' => '선택하신 것은 이미지가 아닙니다.', + 'restore' => '모든 변경 되돌리기', + 'resize' => '크기변경...', + 'selection_mode_normal' => '일반', + 'selection_mode_fixed_ratio' => '고정 비율', + 'selection_mode_fixed_size' => '고정 크기', + 'height' => '높이', + 'width' => '넓이', + 'selection_mode' => '선택 모드', + 'resize_image' => '이미지 크기 변경', + 'image_size' => '이미지 크기:', + 'selected_size' => '선택크기:' + ], ]; diff --git a/modules/backend/lang/lt/lang.php b/modules/backend/lang/lt/lang.php index d5a605c4d..94ad6c446 100644 --- a/modules/backend/lang/lt/lang.php +++ b/modules/backend/lang/lt/lang.php @@ -490,5 +490,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => 'Įkelti ir tvarkyti media elementus - paveiksliukus, video, garsus, dokumentus' + ], + 'mediafinder' => [ + 'label' => 'Failų Tvarkyklė', + 'default_prompt' => 'Spauskite %s mygtuką media failų paieškai' + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Įkelti', + 'move' => 'Perkelti', + 'delete' => 'Trinti', + 'add_folder' => 'Pridėti katalogą', + 'search' => 'Ieškoti', + 'display' => 'Rodyti', + 'filter_everything' => 'Viskas', + 'filter_images' => 'Paveiksliukai', + 'filter_video' => 'Video', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Dokumentai', + 'library' => 'Biblioteka', + 'size' => 'Dydis', + 'title' => 'Pavadinimas', + 'last_modified' => 'Redaguotas', + 'public_url' => 'Viešas URL', + 'click_here' => 'Spauskite čia', + 'thumbnail_error' => 'Nepavyko atvaizduoti miniatiūros.', + 'return_to_parent' => 'Grįžti į pirminį katalogą', + 'return_to_parent_label' => 'Eiti aukštyn ..', + 'nothing_selected' => 'Nieko nepasirinkote.', + 'multiple_selected' => 'Pasirinkote keletą elementų.', + 'uploading_file_num' => 'Įkeliama :number failai(as)...', + 'uploading_complete' => 'Įkėlimas įvykdytas', + 'uploading_error' => 'Įkėlimas nepavyko', + 'type_blocked' => 'Failo tipas yra blokuojamas saugumo sumetimais.', + 'order_by' => 'Rūšiuoti pagal', + 'folder' => 'Katalogas', + 'no_files_found' => 'Pagal Jūsų paiešką failų neradome.', + 'delete_empty' => 'Pasirinkite emelentus trynimui.', + 'delete_confirm' => 'Trinti pasirinktus elementus?', + 'error_renaming_file' => 'Klaida pervadinant elementą.', + 'new_folder_title' => 'Naujas katalogas', + 'folder_name' => 'Katalogo pavadinimas', + 'error_creating_folder' => 'Klaida sukuriant katalogą', + 'folder_or_file_exist' => 'Katalogas ar failas šiuo pavadinimu jau yra.', + 'move_empty' => 'Pasirinkite elementus perkėlimui.', + 'move_popup_title' => 'Perkelti failus ar katalogus', + 'move_destination' => 'Paskirties katalogas', + 'please_select_move_dest' => 'Pasirinkite paskirties katalogą.', + 'move_dest_src_match' => 'Prašome pasirinkti kitą paskirties katalogą.', + 'empty_library' => 'Media biblioteka tuščiay. Pradžiai įkelkite failus ar sukurkite katalogus.', + 'insert' => 'Įterpti', + 'crop_and_insert' => 'Apkirpti ir Įterpti', + 'select_single_image' => 'Pasirinkite vieną paveiksliuką.', + 'selection_not_image' => 'pasirinktas elementas nėra paveiksliukas.', + 'restore' => 'Atstatyti visus pakeitimus', + 'resize' => 'Keisti išmatavimus...', + 'selection_mode_normal' => 'Normalus', + 'selection_mode_fixed_ratio' => 'Fiksuotas sdantykis', + 'selection_mode_fixed_size' => 'Fiksuotas dydis', + 'height' => 'Aukštis', + 'width' => 'Plotis', + 'selection_mode' => 'Pasirinkimo būdas', + 'resize_image' => 'Keisti paveiksliuko išmatavimus', + 'image_size' => 'Paveiksliuko dydis:', + 'selected_size' => 'Pasirinkta:' ] ]; diff --git a/modules/backend/lang/lv/lang.php b/modules/backend/lang/lv/lang.php index ebf75f851..6342a91bd 100644 --- a/modules/backend/lang/lv/lang.php +++ b/modules/backend/lang/lv/lang.php @@ -395,4 +395,68 @@ return [ 'encoding_not_supported_error' => 'Izvēlētā faila kodējums nav atpazīts. Lūdzu, izvēlieties Pielāgota formāta opciju ar pareizu kodējumu lai Jūsu fails tiktu ieimportēts.', 'encoding_format' => 'Faila kodējums', ], + 'permissions' => [ + 'manage_media' => 'Pārvaldīt multividi' + ], + 'mediafinder' => [ + 'default_prompt' => 'Klikšķiniet uz %s pogas, lai atrastu multividi' + ], + 'media' => [ + 'menu_label' => 'Multimēdija', + 'upload' => 'Augšupielādēt', + 'move' => 'Pārvietot', + 'delete' => 'Dzēst', + 'add_folder' => 'Pievienot mapi', + 'search' => 'Meklēt', + 'display' => 'Attēlot', + 'filter_everything' => 'Viss', + 'filter_images' => 'Attēli', + 'filter_video' => 'Video', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Dokumenti', + 'library' => 'Bibliotēka', + 'size' => 'Izmērs', + 'title' => 'Virsraksts', + 'last_modified' => 'Pēdējoreiz modificēts', + 'public_url' => 'Publiskā URL', + 'click_here' => 'Spiest šeit', + 'thumbnail_error' => 'Kļūda ģenerējot priekšskatījumu.', + 'return_to_parent' => 'Atgriezties vecākmapē', + 'return_to_parent_label' => 'Doties augšup ..', + 'nothing_selected' => 'Nekas nav izvēlēts.', + 'multiple_selected' => 'Vairāki izvēlēti objekti.', + 'uploading_file_num' => 'Augšupielādējam :number failu(us)...', + 'uploading_complete' => 'Augšupielāde pabeigta', + 'order_by' => 'Kārtot pēc', + 'folder' => 'Mape', + 'no_files_found' => 'Jūsu pieprasītie faili netika atrasti.', + 'delete_empty' => 'Lūdzu izvēlaties objektus, kurus dzēst.', + 'delete_confirm' => 'Vai tiešām vēlaties izdzēst izvēlēto objektu(us)?', + 'error_renaming_file' => 'Kļūda pārdēvējot objektu.', + 'new_folder_title' => 'Jauna mape', + 'folder_name' => 'Mapes nosaukums', + 'error_creating_folder' => 'Kļūda izveidojot mapi', + 'folder_or_file_exist' => 'Mape vai fails ar izvēlēto nosaukumu jau eksistē.', + 'move_empty' => 'Izvēlēties objektus, kurus pārvietot.', + 'move_popup_title' => 'Pārvietot failus vai mapes', + 'move_destination' => 'Mērķdirektorija', + 'please_select_move_dest' => 'Lūdzu izvēlieties mērķdirektoriju.', + 'move_dest_src_match' => 'Lūdzu izvēlieties citu mērķdirektoriju.', + 'empty_library' => 'Multimēdijas bibliotēka ir tukša. Augšupielādējiet failus vai izveidojat mapes, lai sāktu.', + 'insert' => 'Ievietot', + 'crop_and_insert' => 'Apgriezt un Ievietot', + 'select_single_image' => 'Lūdzu izvēlieties vienu attēlu.', + 'selection_not_image' => 'Izvēlētais objekts nav attēls.', + 'restore' => 'Atcelt visas izmaiņas', + 'resize' => 'Mērogot...', + 'selection_mode_normal' => 'Normāls', + 'selection_mode_fixed_ratio' => 'Fiksēta attiecība', + 'selection_mode_fixed_size' => 'Fiksēts izmērs', + 'height' => 'Augstums', + 'width' => 'Platums', + 'selection_mode' => 'Iezīmēšanas režīms', + 'resize_image' => 'Mērogot attēlu', + 'image_size' => 'Attēla izmērs:', + 'selected_size' => 'Izvēlēts:' + ] ]; diff --git a/modules/backend/lang/nb-no/lang.php b/modules/backend/lang/nb-no/lang.php index 1014276de..47f8d2009 100644 --- a/modules/backend/lang/nb-no/lang.php +++ b/modules/backend/lang/nb-no/lang.php @@ -481,5 +481,71 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => 'Last opp og behandle media - bilder, video, lydfiler, dokumenter', + ], + 'mediafinder' => [ + 'default_prompt' => 'Klikk på %s knappen for å hente media' + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Last opp', + 'move' => 'Flytt', + 'delete' => 'Slett', + 'add_folder' => 'Ny mappe', + 'search' => 'Søk', + 'display' => 'Vis', + 'filter_everything' => 'Alle filer', + 'filter_images' => 'Bilder', + 'filter_video' => 'Video', + 'filter_audio' => 'Lyd', + 'filter_documents' => 'Dokumenter', + 'library' => 'Bibliotek', + 'size' => 'Størrelse', + 'title' => 'Tittel', + 'last_modified' => 'Sist endret', + 'public_url' => 'URL', + 'click_here' => 'Klikk her', + 'thumbnail_error' => 'Kunne ikke lage thumbnail.', + 'return_to_parent' => 'Gå til forrige mappe', + 'return_to_parent_label' => 'Gå opp ..', + 'nothing_selected' => 'Ingenting er valgt.', + 'multiple_selected' => 'Flere filer er valgt.', + 'uploading_file_num' => 'Laster opp :number fil(er)...', + 'uploading_complete' => 'Opplasting fullført', + 'uploading_error' => 'Opplasting feilet', + 'type_blocked' => 'Filtypen er blokkert av sikkerhetsgrunner.', + 'order_by' => 'Sorter etter', + 'folder' => 'Mappe', + 'no_files_found' => 'Ingen filer ble funnet.', + 'delete_empty' => 'Ingen filer er valgt.', + 'delete_confirm' => 'Vil du virkelig slette valgte fil(er)?', + 'error_renaming_file' => 'Kunne ikke gi filen nytt navn.', + 'new_folder_title' => 'Ny mappe', + 'folder_name' => 'Mappenavn', + 'error_creating_folder' => 'Kunne ikke opprette ny mappe', + 'folder_or_file_exist' => 'En fil eller mappe med det navnet eksisterer allerede.', + 'move_empty' => 'Vennligst velg filer å flytte.', + 'move_popup_title' => 'Flytt filer eller mapper', + 'move_destination' => 'Målmappe', + 'please_select_move_dest' => 'Vennligst velg en målmappe.', + 'move_dest_src_match' => 'Please select another destination folder.', + 'empty_library' => 'Mediabiblioteket er tomt. Last opp filer eller opprett mapper for å komme i gang.', + 'insert' => 'Insert', + 'crop_and_insert' => 'Crop & Insert', + 'select_single_image' => 'Vennligst velg ett enkelt bilde.', + 'selection_not_image' => 'Valgte fil er ikke et bilde.', + 'restore' => 'Angre endringer', + 'resize' => 'Endre størrelse...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Fast forhold', + 'selection_mode_fixed_size' => 'Fast størrelse', + 'height' => 'Høyde', + 'width' => 'Bredde', + 'selection_mode' => 'Valgmodus', + 'resize_image' => 'Endre bildestørrelse', + 'image_size' => 'Bildestørrelse:', + 'selected_size' => 'Valgt:' ] ]; diff --git a/modules/backend/lang/nl/lang.php b/modules/backend/lang/nl/lang.php index c0aaf514c..3879beed2 100644 --- a/modules/backend/lang/nl/lang.php +++ b/modules/backend/lang/nl/lang.php @@ -496,5 +496,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => 'Beheer media', + ], + 'mediafinder' => [ + 'label' => 'Media zoeker', + 'default_prompt' => 'Klik op de %s knop om een media item te vinden', + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Uploaden', + 'move' => 'Verplaatsen', + 'delete' => 'Verwijderen', + 'add_folder' => 'Map toevoegen', + 'search' => 'Zoeken', + 'display' => 'Weergeven', + 'filter_everything' => 'Alles', + 'filter_images' => 'Afbeeldingen', + 'filter_video' => 'Video\'s', + 'filter_audio' => 'Audio', + 'filter_documents' => 'Documenten', + 'library' => 'Bibliotheek', + 'size' => 'Grootte', + 'title' => 'Titel', + 'last_modified' => 'Laatst gewijzigd', + 'public_url' => 'URL', + 'click_here' => 'Klik hier', + 'thumbnail_error' => 'Fout opgetreden bij genereren miniatuurweergave.', + 'return_to_parent' => 'Terug naar bovenliggende map', + 'return_to_parent_label' => 'Naar bovenliggende ...', + 'nothing_selected' => 'Er is niets geselecteerd.', + 'multiple_selected' => 'Meerdere items geselecteerd.', + 'uploading_file_num' => 'Uploaden van :number bestanden...', + 'uploading_complete' => 'Uploaden voltooid', + 'uploading_error' => 'Upload mislukt', + 'type_blocked' => 'Het bestandstype is i.v.m. veiligheidsredenen geblokkeerd.', + 'order_by' => 'Sorteer op', + 'folder' => 'Map', + 'no_files_found' => 'Er zijn geen bestanden gevonden.', + 'delete_empty' => 'Selecteer items om te verwijderen.', + 'delete_confirm' => 'Weet je zeker dat je de geselecteerde items wilt verwijderen?', + 'error_renaming_file' => 'Fout bij wijzigen naam.', + 'new_folder_title' => 'Nieuwe map', + 'folder_name' => 'Mapnaam', + 'error_creating_folder' => 'Fout bij maken van map', + 'folder_or_file_exist' => 'Er bestaat reeds een map of bestand met deze naam.', + 'move_empty' => 'Selecteer de items om te verplaatsen.', + 'move_popup_title' => 'Verplaats bestanden of mappen', + 'move_destination' => 'Doelmap', + 'please_select_move_dest' => 'Selecteer een doelmap.', + 'move_dest_src_match' => 'Selecteer een andere doelmap.', + 'empty_library' => 'De media bibliotheek is leeg. Upload bestanden of maak mappen aan om te beginnen.', + 'insert' => 'Invoegen', + 'crop_and_insert' => 'Uitsnijden & Invoegen', + 'select_single_image' => 'Selecteer één afbeelding.', + 'selection_not_image' => 'Het geselecteerde item is geen afbeelding.', + 'restore' => 'Alle wijzigingen ongedaan maken', + 'resize' => 'Wijzig grootte...', + 'selection_mode_normal' => 'Normaal', + 'selection_mode_fixed_ratio' => 'Vaste ratio', + 'selection_mode_fixed_size' => 'Vaste grootte', + 'height' => 'Hoogte', + 'width' => 'Breedte', + 'selection_mode' => 'Selectie modus', + 'resize_image' => 'Wijzig grootte van afbeelding', + 'image_size' => 'Grootte afbeelding:', + 'selected_size' => 'Geselecteerd:', + ], ]; diff --git a/modules/backend/lang/pl/lang.php b/modules/backend/lang/pl/lang.php index 2230eee6e..890fefc69 100644 --- a/modules/backend/lang/pl/lang.php +++ b/modules/backend/lang/pl/lang.php @@ -478,4 +478,70 @@ return [ 'windows_1252' => 'Windows-1252 (CP1252)' ] ], + 'permissions' => [ + 'manage_media' => 'Manage mediami' + ], + 'mediafinder' => [ + 'default_prompt' => 'Kliknij przycisk %s aby znaleźć element' + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Prześlij', + 'move' => 'Przenieś', + 'delete' => 'Usuń', + 'add_folder' => 'Dodaj folder', + 'search' => 'Szukaj', + 'display' => 'Pokaż', + 'filter_everything' => 'Wszystko', + 'filter_images' => 'Obrazki', + 'filter_video' => 'Filmy', + 'filter_audio' => 'Dźwięki', + 'filter_documents' => 'Dokumenty', + 'library' => 'Biblioteka', + 'size' => 'Rozmiar', + 'title' => 'Tytuł', + 'last_modified' => 'Data modyfikacji', + 'public_url' => 'Publiczny URL', + 'click_here' => 'Kliknij tutaj', + 'thumbnail_error' => 'Wystąpił błąd przy tworzeniu miniatury.', + 'return_to_parent' => 'Wróć do folderu nadrzędnego', + 'return_to_parent_label' => 'Idź w górę ..', + 'nothing_selected' => 'Nic nie zaznaczono.', + 'multiple_selected' => 'Wybrano wiele elementów.', + 'uploading_file_num' => 'Przesyłanie :number pliku(ów)...', + 'uploading_complete' => 'Przesyłanie zakończone', + 'uploading_error' => 'Błąd przesyłania pliku', + 'type_blocked' => 'Typ pliku jest zablokowany ze względów bezpieczeństwa.', + 'order_by' => 'Sortowanie', + 'folder' => 'Folder', + 'no_files_found' => 'Nie znaleziono żadnych pasujących elementów.', + 'delete_empty' => 'Wybierz elementy do usunięcia.', + 'delete_confirm' => 'Czy na pewno chcesz usunąć wybrane elementy?', + 'error_renaming_file' => 'Wystąpił błąd przy zmianie nazwy elementu.', + 'new_folder_title' => 'Nowy folder', + 'folder_name' => 'Nazwa folderu', + 'error_creating_folder' => 'Wystąpił błąd przy tworzeniu folderu', + 'folder_or_file_exist' => 'Folder lub plik o podanej nazwie już istnieje.', + 'move_empty' => 'Wybierz elementy do przeniesienia.', + 'move_popup_title' => 'Przenieś pliki lub foldery', + 'move_destination' => 'Folder docelowy', + 'please_select_move_dest' => 'Wybierz folder docelowy.', + 'move_dest_src_match' => 'Wybierz inny folder docelowy.', + 'empty_library' => 'Biblioteka Mediów jest pusta. Na początek prześlij pliki lub utwórz foldery.', + 'insert' => 'Wstaw', + 'crop_and_insert' => 'Przytnij lub wstaw', + 'select_single_image' => 'Wybierz pojedynczy obrazek.', + 'selection_not_image' => 'Wybrany element nie jest obrazkiem.', + 'restore' => 'Cofnij wszystkie zmiany', + 'resize' => 'Skaluj...', + 'selection_mode_normal' => 'Normalny', + 'selection_mode_fixed_ratio' => 'Zablokuj proporcje', + 'selection_mode_fixed_size' => 'Zablokuj rozmiar', + 'height' => 'Wysokość', + 'width' => 'Szerokość', + 'selection_mode' => 'Tryb zaznaczenia', + 'resize_image' => 'Zmień rozmiar obrazka', + 'image_size' => 'Rozmiar obrazka:', + 'selected_size' => 'Wybrano:' + ] ]; diff --git a/modules/backend/lang/pt-br/lang.php b/modules/backend/lang/pt-br/lang.php index 52a5c7457..896e78867 100644 --- a/modules/backend/lang/pt-br/lang.php +++ b/modules/backend/lang/pt-br/lang.php @@ -472,5 +472,71 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => 'Gerenciar mídias' + ], + 'mediafinder' => [ + 'default_prompt' => 'Clique no botão %s para localizar um arquivo de mídia' + ], + 'media' => [ + 'menu_label' => 'Mídias', + 'upload' => 'Enviar', + 'move' => 'Mover', + 'delete' => 'Excluir', + 'add_folder' => 'Adicionar pasta', + 'search' => 'Buscar', + 'display' => 'Exibir', + 'filter_everything' => 'Tudo', + 'filter_images' => 'Imagens', + 'filter_video' => 'Vídeos', + 'filter_audio' => 'Áudios', + 'filter_documents' => 'Documentos', + 'library' => 'Biblioteca', + 'size' => 'Tamanho', + 'title' => 'Título', + 'last_modified' => 'Última modificação', + 'public_url' => 'URL pública', + 'click_here' => 'Clique aqui', + 'thumbnail_error' => 'Erro ao gerar a miniatura.', + 'return_to_parent' => 'Retornar ao diretório anterior', + 'return_to_parent_label' => 'Vá para ..', + 'nothing_selected' => 'Nenhum item selecionado.', + 'multiple_selected' => 'Múltiplos itens selecionados.', + 'uploading_file_num' => 'Enviando :number arquivo(s)...', + 'uploading_complete' => 'Envio finalizado', + 'uploading_error' => 'Falha no envio', + 'type_blocked' => 'O tipo de arquivo utilizado é bloqueado por motivos de segurança.', + 'order_by' => 'Ordenar por', + 'folder' => 'Pasta', + 'no_files_found' => 'Nenhum arquivo encontrado.', + 'delete_empty' => 'Por favor, selecione um item para excluir.', + 'delete_confirm' => 'Você deseja mesmo excluir o(s) arquivo(s) selecionado(s)?', + 'error_renaming_file' => 'Erro ao renomear o arquivo.', + 'new_folder_title' => 'Nova pasta', + 'folder_name' => 'Nome da pasta', + 'error_creating_folder' => 'Erro ao criar a pasta', + 'folder_or_file_exist' => 'Uma pasta ou arquivo já existe com o nome especificado.', + 'move_empty' => 'Por favor, selecione um item para mover.', + 'move_popup_title' => 'Mover arquivos ou pastas', + 'move_destination' => 'Pasta destino', + 'please_select_move_dest' => 'Por favor, selecione a pasta destino.', + 'move_dest_src_match' => 'Por favor, selecione outra pasta destino.', + 'empty_library' => 'A biblioteca de mídias está vazia. Envie arquivos ou crie pastas para iniciar.', + 'insert' => 'Inserir', + 'crop_and_insert' => 'Cortar & Inserir', + 'select_single_image' => 'Por favor, selecione uma única imagem.', + 'selection_not_image' => 'O arquivo selecionado não é uma imagem.', + 'restore' => 'Desfazer todas as alterações', + 'resize' => 'Redimensionar...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Proporção fixa', + 'selection_mode_fixed_size' => 'Tamanho fixo', + 'height' => 'Altura', + 'width' => 'Largura', + 'selection_mode' => 'Modo de seleção', + 'resize_image' => 'Redimensionar imagem', + 'image_size' => 'Tamanho da imagem:', + 'selected_size' => 'Selecionado:' ] ]; diff --git a/modules/backend/lang/pt-pt/lang.php b/modules/backend/lang/pt-pt/lang.php index 0a2dc93a8..203d4edbb 100644 --- a/modules/backend/lang/pt-pt/lang.php +++ b/modules/backend/lang/pt-pt/lang.php @@ -493,5 +493,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => 'Gerir conteúdo multimédia' + ], + 'mediafinder' => [ + 'label' => 'Localizador de multimédia', + 'default_prompt' => 'Clique no botão %s para localizar um ficheiro multimédia' + ], + 'media' => [ + 'menu_label' => 'Conteúdos', + 'upload' => 'Enviar', + 'move' => 'Mover', + 'delete' => 'Excluir', + 'add_folder' => 'Adicionar pasta', + 'search' => 'Procurar', + 'display' => 'Mostrar', + 'filter_everything' => 'Tudo', + 'filter_images' => 'Imagens', + 'filter_video' => 'Vídeos', + 'filter_audio' => 'Áudios', + 'filter_documents' => 'Documentos', + 'library' => 'Biblioteca', + 'size' => 'Tamanho', + 'title' => 'Título', + 'last_modified' => 'Última modificação', + 'public_url' => 'URL pública', + 'click_here' => 'Clique aqui', + 'thumbnail_error' => 'Erro ao gerar a miniatura.', + 'return_to_parent' => 'Retornar à diretoria anterior', + 'return_to_parent_label' => 'Acima ..', + 'nothing_selected' => 'Nenhum item selecionado.', + 'multiple_selected' => 'Múltiplos itens selecionados.', + 'uploading_file_num' => 'Enviando :number ficheiro(s)...', + 'uploading_complete' => 'Envio finalizado', + 'uploading_error' => 'Falha no envio', + 'type_blocked' => 'O tipo de ficheiro utilizado é bloqueado por motivos de segurança.', + 'order_by' => 'Ordenar por', + 'folder' => 'Pasta', + 'no_files_found' => 'Nenhum ficheiro encontrado.', + 'delete_empty' => 'Por favor, selecione itens para apagar.', + 'delete_confirm' => 'Deseja apagar o(s) ficheiro(s) selecionado(s)?', + 'error_renaming_file' => 'Erro ao renomear o ficheiro.', + 'new_folder_title' => 'Nova pasta', + 'folder_name' => 'Nome da pasta', + 'error_creating_folder' => 'Erro ao criar a pasta', + 'folder_or_file_exist' => 'Uma pasta ou ficheiro já existe com o nome especificado.', + 'move_empty' => 'Por favor, selecione os itens para mover.', + 'move_popup_title' => 'Mover ficheiros ou pastas', + 'move_destination' => 'Pasta destino', + 'please_select_move_dest' => 'Por favor, selecione a pasta de destino.', + 'move_dest_src_match' => 'Por favor, selecione outra pasta de destino.', + 'empty_library' => 'A biblioteca de multimédia, está vazia. Envie ficheiros ou crie pastas para iniciar.', + 'insert' => 'Inserir', + 'crop_and_insert' => 'Cortar & Inserir', + 'select_single_image' => 'Por favor, selecione uma única imagem.', + 'selection_not_image' => 'O ficheiro selecionado não é uma imagem.', + 'restore' => 'Desfazer todas as alterações', + 'resize' => 'Redimensionar...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Proporção fixa', + 'selection_mode_fixed_size' => 'Tamanho fixo', + 'height' => 'Altura', + 'width' => 'Largura', + 'selection_mode' => 'Modo de seleção', + 'resize_image' => 'Redimensionar imagem', + 'image_size' => 'Tamanho da imagem:', + 'selected_size' => 'Selecionado:' + ], ]; diff --git a/modules/backend/lang/ru/lang.php b/modules/backend/lang/ru/lang.php index 63ede061d..2ef6d0ae6 100644 --- a/modules/backend/lang/ru/lang.php +++ b/modules/backend/lang/ru/lang.php @@ -512,5 +512,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => 'Управление медиафайлами' + ], + 'mediafinder' => [ + 'label' => 'Поиск медиа', + 'default_prompt' => 'Кликните на кнопку %s, чтобы найти медиафайл' + ], + 'media' => [ + 'menu_label' => 'Медиафайлы', + 'upload' => 'Загрузить', + 'move' => 'Переместить', + 'delete' => 'Удалить', + 'add_folder' => 'Создать папку', + 'search' => 'Поиск', + 'display' => 'Отобразить', + 'filter_everything' => 'Все файлы', + 'filter_images' => 'Изображения', + 'filter_video' => 'Видео', + 'filter_audio' => 'Музыка', + 'filter_documents' => 'Документы', + 'library' => 'Библиотека', + 'size' => 'Размер', + 'title' => 'Имя', + 'last_modified' => 'Последнее изменение', + 'public_url' => 'Публичный адрес', + 'click_here' => 'Нажмите здесь', + 'thumbnail_error' => 'Ошибка создания миниатюры.', + 'return_to_parent' => 'Вернуться в родительскую папку', + 'return_to_parent_label' => 'Подняться на уровень выше ..', + 'nothing_selected' => 'Ничего не выбрано.', + 'multiple_selected' => 'Выбрано несколько объектов.', + 'uploading_file_num' => 'Загрузка файлов: :number', + 'uploading_complete' => 'Загрузка файлов завершена!', + 'uploading_error' => 'Ошибка загрузки', + 'type_blocked' => 'Используемый тип файла блокируется по соображениям безопасности.', + 'order_by' => 'Сортировать по', + 'folder' => 'Папка', + 'no_files_found' => 'Ни один из файлов не удовлетворяет вашему запросу.', + 'delete_empty' => 'Пожалуйста, выберите объекты для удаления.', + 'delete_confirm' => 'Вы действительно хотите удалить выбранные объекты?', + 'error_renaming_file' => 'Ошибка изменения имени файла.', + 'new_folder_title' => 'Новая папка', + 'folder_name' => 'Название папки', + 'error_creating_folder' => 'Ошибка создания папки', + 'folder_or_file_exist' => 'Папка или файл с таким именем уже существует.', + 'move_empty' => 'Пожалуйста, выберите объекты для перемещения.', + 'move_popup_title' => 'Перемещение файлов или папок', + 'move_destination' => 'Папка назначения', + 'please_select_move_dest' => 'Пожалуйста, выберите папку назначения для перемещения.', + 'move_dest_src_match' => 'Пожалуйста, выберите другую папку.', + 'empty_library' => 'Библиотека медиафайлов пуста. Для начала загрузите файлы или создайте папки.', + 'insert' => 'Вставить', + 'crop_and_insert' => 'Обрезать и вставить', + 'select_single_image' => 'Пожалуйста, выберите одно изображение.', + 'selection_not_image' => 'Выбранный элемент не является изображением.', + 'restore' => 'Отменить все изменения', + 'resize' => 'Изменение размера...', + 'selection_mode_normal' => 'Нормальный', + 'selection_mode_fixed_ratio' => 'Фиксированное соотношение', + 'selection_mode_fixed_size' => 'Фиксированный размер', + 'height' => 'Высота', + 'width' => 'Ширина', + 'selection_mode' => 'Режим выделения', + 'resize_image' => 'Изменение размера изображения', + 'image_size' => 'Размер изображения:', + 'selected_size' => 'Выбрано:' + ], ]; diff --git a/modules/backend/lang/sv/lang.php b/modules/backend/lang/sv/lang.php index 5d0a1c7f5..c62992356 100644 --- a/modules/backend/lang/sv/lang.php +++ b/modules/backend/lang/sv/lang.php @@ -315,5 +315,69 @@ return [ ], 'filter' => [ 'all' => 'alla' + ], + 'permissions' => [ + 'manage_media' => 'Hantera media' + ], + 'mediafinder' => [ + 'default_prompt' => 'Klicka på %s knappen för att hitta ett mediaföremål' + ], + 'media' => [ + 'menu_label' => 'Media', + 'upload' => 'Ladda upp', + 'move' => 'Flytta', + 'delete' => 'Radera', + 'add_folder' => 'Ny mapp', + 'search' => 'Sök', + 'display' => 'Visa', + 'filter_everything' => 'Allt', + 'filter_images' => 'Bilder', + 'filter_video' => 'Videor', + 'filter_audio' => 'Ljud', + 'filter_documents' => 'Dokument', + 'library' => 'Bibliotek', + 'size' => 'Storlek', + 'title' => 'Titel', + 'last_modified' => 'Senast ändrad', + 'public_url' => 'Publik URL', + 'click_here' => 'Klicka här', + 'thumbnail_error' => 'Fel vid generering av thumbnail.', + 'return_to_parent' => 'Återgå till mappens förälder', + 'return_to_parent_label' => 'Upp ..', + 'nothing_selected' => 'Inget är valt.', + 'multiple_selected' => 'Flera föremål valda.', + 'uploading_file_num' => 'Laddar upp :number fil(er)...', + 'uploading_complete' => 'Uppladdning slutförd', + 'order_by' => 'Ordna efter', + 'folder' => 'Mapp', + 'no_files_found' => 'Inga filer kunde hittas baserat på din sökning.', + 'delete_empty' => 'Vänligen välj föremål att radera.', + 'delete_confirm' => 'Är du säker att du vill radera de valda föremålen?', + 'error_renaming_file' => 'Fel vid namnbyte av föremålet.', + 'new_folder_title' => 'Ny mapp', + 'folder_name' => 'Mappnamn', + 'error_creating_folder' => 'Fel vid skapande av mapp', + 'folder_or_file_exist' => 'En mapp eller fil med det angivna namnet existerar redan.', + 'move_empty' => 'Vänligen välj föremål att flytta.', + 'move_popup_title' => 'Flytta filer eller mappar', + 'move_destination' => 'Destinationsmapp', + 'please_select_move_dest' => 'Vänligen välj en destinationsmapp.', + 'move_dest_src_match' => 'Vänligen välj en annan destinationsmapp.', + 'empty_library' => 'Mediabiblioteket är tomt. Ladda upp filer eller skapa mappar för att börja.', + 'insert' => 'Infoga', + 'crop_and_insert' => 'Beskär & infoga', + 'select_single_image' => 'Vänligen välj en enskild bild.', + 'selection_not_image' => 'Det valda föremålet är inte en bild.', + 'restore' => 'Ångra alla ändringar', + 'resize' => 'Anpassa storlek...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Fast proportion', + 'selection_mode_fixed_size' => 'Fast storlek', + 'height' => 'Höjd', + 'width' => 'Bredd', + 'selection_mode' => 'Urvalsläge', + 'resize_image' => 'Anpassa bildstorlek', + 'image_size' => 'Bildstorlek:', + 'selected_size' => 'Vald:' ] ]; diff --git a/modules/backend/lang/tr/lang.php b/modules/backend/lang/tr/lang.php index fad7255f2..f979b2cf7 100644 --- a/modules/backend/lang/tr/lang.php +++ b/modules/backend/lang/tr/lang.php @@ -482,4 +482,70 @@ return [ 'windows_1252' => 'Windows-1252 (CP1252)' ] ], + 'permissions' => [ + 'manage_media' => 'Medyaları düzenleyebilsin' + ], + 'mediafinder' => [ + 'default_prompt' => 'Bir medya öğesi bulmak için %s butonuna tıklayın' + ], + 'media' => [ + 'menu_label' => 'Medya', + 'upload' => 'Yükle', + 'move' => 'Taşı', + 'delete' => 'Sil', + 'add_folder' => 'Yeni Klasör', + 'search' => 'Ara', + 'display' => 'Görüntüle', + 'filter_everything' => 'Her şey', + 'filter_images' => 'Resimler', + 'filter_video' => 'Video', + 'filter_audio' => 'Ses', + 'filter_documents' => 'Belgeler', + 'library' => 'Kütüphane', + 'size' => 'Boyut', + 'title' => 'Başlık', + 'last_modified' => 'Son düzenleme tarihi', + 'public_url' => 'Public URL', + 'click_here' => 'Buraya tıkla', + 'thumbnail_error' => 'Önizleme oluşturulurken hata.', + 'return_to_parent' => 'Ana klasöre geri dön', + 'return_to_parent_label' => 'Yukarı git..', + 'nothing_selected' => 'Hiçbir şey seçilmedi.', + 'multiple_selected' => 'Birden fazla öğe seçildi.', + 'uploading_file_num' => ':number adet dosya yükleniyor...', + 'uploading_complete' => 'Yükleme tamamlandı', + 'uploading_error' => 'Yükleme hatası', + 'type_blocked' => 'Seçilen dosya türünü güvenlik nedenleriyle izin verilmiyor.', + 'order_by' => 'Sırala', + 'folder' => 'Klasör', + 'no_files_found' => 'İsteğiniz doğrultusunda hiçbir dosya bulunamadı.', + 'delete_empty' => 'Lütfen silinecek öğeleri seçiniz.', + 'delete_confirm' => 'Bu öğe veya öğeleri gerçekten silmek istediğinize emin misiniz?', + 'error_renaming_file' => 'Öğeyi yeniden isimlendirirken hata.', + 'new_folder_title' => 'Yeni Klasör', + 'folder_name' => 'Klasör ismi', + 'error_creating_folder' => 'Klasör oluştururken hata', + 'folder_or_file_exist' => 'Belirtilen isimde bir klasör ya da dosya zaten mevcut.', + 'move_empty' => 'Lütfen taşınacak öğeleri seçiniz.', + 'move_popup_title' => 'Dosyaları veya klasörleri taşı', + 'move_destination' => 'Hedef klasör', + 'please_select_move_dest' => 'Lütfen hedef klasörü seçiniz.', + 'move_dest_src_match' => 'Lütfen başka bir hedef klasör seçiniz.', + 'empty_library' => 'Medya kütüphanesi boş. Başlamak için dosya yükleyin yada klasör oluşturun.', + 'insert' => 'Ekle', + 'crop_and_insert' => 'Kırp ve Ekle', + 'select_single_image' => 'Lütfen sadece bir tane resim seçiniz.', + 'selection_not_image' => 'Seçili öğe bir resim değil.', + 'restore' => 'Tüm değişiklikleri geri al', + 'resize' => 'Yeniden boyutlandırma...', + 'selection_mode_normal' => 'Normal', + 'selection_mode_fixed_ratio' => 'Sabit oran', + 'selection_mode_fixed_size' => 'Sabit boyut', + 'height' => 'Yükseklik', + 'width' => 'Genişlik', + 'selection_mode' => 'Seçim modu', + 'resize_image' => 'Resimi yeniden boyutlandırs', + 'image_size' => 'Resim boyutu:', + 'selected_size' => 'Seçili:' + ] ]; diff --git a/modules/backend/lang/uk/lang.php b/modules/backend/lang/uk/lang.php index c73d10e83..186e62d8c 100644 --- a/modules/backend/lang/uk/lang.php +++ b/modules/backend/lang/uk/lang.php @@ -512,5 +512,72 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] - ] + ], + 'permissions' => [ + 'manage_media' => 'Керування медіафайлами' + ], + 'mediafinder' => [ + 'label' => 'Пошук медіа', + 'default_prompt' => 'Натисніть на кнопку %s, щоб знайти медіафайл' + ], + 'media' => [ + 'menu_label' => 'Медіафайли', + 'upload' => 'Завантажити', + 'move' => 'Перемістити', + 'delete' => 'Видалити', + 'add_folder' => 'Створити папку', + 'search' => 'Пошук', + 'display' => 'Показати', + 'filter_everything' => 'Всі файли', + 'filter_images' => 'Зображення', + 'filter_video' => 'Відео', + 'filter_audio' => 'Музика', + 'filter_documents' => 'Документи', + 'library' => 'Бібліотека', + 'size' => 'Розмір', + 'title' => 'Ім\'я', + 'last_modified' => 'Остання зміна', + 'public_url' => 'Публічна адреса', + 'click_here' => 'Натисніть тут', + 'thumbnail_error' => 'Помилка створення мініатюри.', + 'return_to_parent' => 'Повернутися до батьківської папки', + 'return_to_parent_label' => 'Піднятися на рівень вище...', + 'nothing_selected' => 'Нічого не обрано.', + 'multiple_selected' => 'Обрано кілька об\'єктів.', + 'uploading_file_num' => 'Завантаження файлів: :number', + 'uploading_complete' => 'Завантаження файлів завершено!', + 'uploading_error' => 'Помилка завантаження', + 'type_blocked' => 'Тип файлу, який використовується заблокований з міркувань безпеки.', + 'order_by' => 'Сортувати за', + 'folder' => 'Папка', + 'no_files_found' => 'Жоден з файлів не задовольняє вашому запиту.', + 'delete_empty' => 'Будь ласка, оберіть об\'єкти для видалення.', + 'delete_confirm' => 'Ви дійсно хочете видалити вибрані об\'єкти?', + 'error_renaming_file' => 'Помилка зміни імені файлу.', + 'new_folder_title' => 'Нова папка', + 'folder_name' => 'Назва папки', + 'error_creating_folder' => 'Помилка створення папки', + 'folder_or_file_exist' => 'Папка або файл з таким ім\'ям вже існує.', + 'move_empty' => 'Будь ласка, оберіть об\'єкти для переміщення.', + 'move_popup_title' => 'Переміщення файлів або папок', + 'move_destination' => 'Папка призначення', + 'please_select_move_dest' => 'Будь ласка, оберіть папку призначення для переміщення.', + 'move_dest_src_match' => 'Будь ласка, оберіть іншу папку.', + 'empty_library' => 'Бібліотека медіафайлів порожня. Для початку завантажте файли або створіть папки.', + 'insert' => 'Вставити', + 'crop_and_insert' => 'Обрізати і вставити', + 'select_single_image' => 'Будь ласка, оберіть одне зображення.', + 'selection_not_image' => 'Обраний елемент не є зображенням.', + 'restore' => 'Скасувати всі зміни', + 'resize' => 'Зміна розміру...', + 'selection_mode_normal' => 'Нормальний', + 'selection_mode_fixed_ratio' => 'Фіксоване співвідношення', + 'selection_mode_fixed_size' => 'Фіксований розмір', + 'height' => 'Висота', + 'width' => 'Ширина', + 'selection_mode' => 'Режим виділення', + 'resize_image' => 'Зміна розміру зображення', + 'image_size' => 'Розмір зображення:', + 'selected_size' => 'Обрано:' + ], ]; diff --git a/modules/backend/lang/zh-cn/lang.php b/modules/backend/lang/zh-cn/lang.php index 59b1ccc61..e66828f5f 100644 --- a/modules/backend/lang/zh-cn/lang.php +++ b/modules/backend/lang/zh-cn/lang.php @@ -493,5 +493,70 @@ return [ 'windows_1251' => 'Windows-1251 (CP1251)', 'windows_1252' => 'Windows-1252 (CP1252)' ] + ], + 'permissions' => [ + 'manage_media' => '管理媒体' + ], + 'mediafinder' => [ + 'label' => 'Media Finder', + 'default_prompt' => 'Click the %s button to find a media item' + ], + 'media' => [ + 'menu_label' => '媒体', + 'upload' => '上传', + 'move' => '移动', + 'delete' => '删除', + 'add_folder' => '增加文件夹', + 'search' => '搜索', + 'display' => '显示', + 'filter_everything' => '所有', + 'filter_images' => '图片', + 'filter_video' => '视频', + 'filter_audio' => '音频', + 'filter_documents' => '文档', + 'library' => '库', + 'size' => '大小', + 'title' => '标题', + 'last_modified' => '最近修改', + 'public_url' => '公开URL', + 'click_here' => '点击这里', + 'thumbnail_error' => '生产缩略图错误.', + 'return_to_parent' => '返回上层文件夹', + 'return_to_parent_label' => '返回 ..', + 'nothing_selected' => '没有选中.', + 'multiple_selected' => '多选.', + 'uploading_file_num' => '上传 :number 文件...', + 'uploading_complete' => '上传完毕', + 'order_by' => '排序', + 'folder' => '文件夹', + 'no_files_found' => '没找到你请求的文件.', + 'delete_empty' => '请选择删除项.', + 'delete_confirm' => '你是否想要删除选中项?', + 'error_renaming_file' => '重命名错误.', + 'new_folder_title' => '新文件', + 'folder_name' => '文件夹名', + 'error_creating_folder' => '新建文件夹错误', + 'folder_or_file_exist' => '文件夹或文件已经存在.', + 'move_empty' => '请选择移动项.', + 'move_popup_title' => '移动文件或文件夹', + 'move_destination' => '目标文件夹', + 'please_select_move_dest' => '请选择目标文件夹.', + 'move_dest_src_match' => '请选择另一个目标文件夹.', + 'empty_library' => '媒体库是空的. 从上传文件或创建文件夹开始.', + 'insert' => '插入', + 'crop_and_insert' => '裁剪并插入', + 'select_single_image' => '请选择一张图片.', + 'selection_not_image' => '选择的不是一张图片.', + 'restore' => '取消所有更改', + 'resize' => '调整大小...', + 'selection_mode_normal' => '正常', + 'selection_mode_fixed_ratio' => '固定比例', + 'selection_mode_fixed_size' => '固定大小', + 'height' => '高度', + 'width' => '宽度', + 'selection_mode' => '选择模式', + 'resize_image' => '调整图片', + 'image_size' => '图片大小:', + 'selected_size' => '选中:' ] ]; diff --git a/modules/backend/lang/zh-tw/lang.php b/modules/backend/lang/zh-tw/lang.php index e475b1486..a2ef7075b 100644 --- a/modules/backend/lang/zh-tw/lang.php +++ b/modules/backend/lang/zh-tw/lang.php @@ -298,5 +298,70 @@ return [ ], 'filter' => [ 'all' => '全部' + ], + 'permissions' => [ + 'manage_media' => 'Upload and manage media contents - images, videos, sounds, documents' + ], + 'mediafinder' => [ + 'label' => 'Media Finder', + 'default_prompt' => 'Click the %s button to find a media item' + ], + 'media' => [ + 'menu_label' => '媒體', + 'upload' => '上傳', + 'move' => '移動', + 'delete' => '刪除', + 'add_folder' => '增加檔案夾', + 'search' => '搜尋', + 'display' => '顯示', + 'filter_everything' => '所有', + 'filter_images' => '圖片', + 'filter_video' => '視頻', + 'filter_audio' => '音頻', + 'filter_documents' => '文檔', + 'library' => '庫', + 'size' => '大小', + 'title' => '標題', + 'last_modified' => '最近修改', + 'public_url' => '公開URL', + 'click_here' => '點選這裡', + 'thumbnail_error' => '生產縮略圖錯誤.', + 'return_to_parent' => '返回上層檔案夾', + 'return_to_parent_label' => '返回 ..', + 'nothing_selected' => '沒有選中.', + 'multiple_selected' => '多選.', + 'uploading_file_num' => '上傳 :number 檔案...', + 'uploading_complete' => '上傳完畢', + 'order_by' => '排序', + 'folder' => '檔案夾', + 'no_files_found' => '沒找到您請求的檔案.', + 'delete_empty' => '請選擇刪除項.', + 'delete_confirm' => '您是否想要刪除選中項?', + 'error_renaming_file' => '重命名錯誤.', + 'new_folder_title' => '新檔案', + 'folder_name' => '檔案夾名', + 'error_creating_folder' => '新建檔案夾錯誤', + 'folder_or_file_exist' => '檔案夾或檔案已經存在.', + 'move_empty' => '請選擇移動項.', + 'move_popup_title' => '移動檔案或檔案夾', + 'move_destination' => '目標檔案夾', + 'please_select_move_dest' => '請選擇目標檔案夾.', + 'move_dest_src_match' => '請選擇另一個目標檔案夾.', + 'empty_library' => '媒體庫是空的. 從上傳檔案或建立檔案夾開始.', + 'insert' => '插入', + 'crop_and_insert' => '裁剪並插入', + 'select_single_image' => '請選擇一張圖片.', + 'selection_not_image' => '選擇的不是一張圖片.', + 'restore' => '取消所有更改', + 'resize' => '調整大小...', + 'selection_mode_normal' => '正常', + 'selection_mode_fixed_ratio' => '固定比例', + 'selection_mode_fixed_size' => '固定大小', + 'height' => '高度', + 'width' => '寬度', + 'selection_mode' => '選擇模式', + 'resize_image' => '調整圖片', + 'image_size' => '圖片大小:', + 'selected_size' => '選中:' ] ]; diff --git a/modules/backend/widgets/MediaManager.php b/modules/backend/widgets/MediaManager.php new file mode 100644 index 000000000..31a4229a0 --- /dev/null +++ b/modules/backend/widgets/MediaManager.php @@ -0,0 +1,1414 @@ +alias = $alias; + + parent::__construct($controller, []); + + $this->checkUploadPostback(); + } + + /** + * Adds widget specific asset files. Use $this->addJs() and $this->addCss() + * to register new assets to include on the page. + * @return void + */ + protected function loadAssets() + { + $this->addCss('css/mediamanager.css', 'core'); + $this->addJs('js/mediamanager-browser-min.js', 'core'); + } + + /** + * Renders the widget. + * @return string + */ + public function render() + { + $this->prepareVars(); + + return $this->makePartial('body'); + } + + // + // Event handlers + // + + public function onSearch() + { + $this->setSearchTerm(Input::get('search')); + + $this->prepareVars(); + + return [ + '#'.$this->getId('item-list') => $this->makePartial('item-list'), + '#'.$this->getId('folder-path') => $this->makePartial('folder-path') + ]; + } + + public function onGoToFolder() + { + $path = Input::get('path'); + + if (Input::get('clearCache')) { + MediaLibrary::instance()->resetCache(); + } + + if (Input::get('resetSearch')) { + $this->setSearchTerm(null); + } + + $this->setCurrentFolder($path); + $this->prepareVars(); + + return [ + '#'.$this->getId('item-list') => $this->makePartial('item-list'), + '#'.$this->getId('folder-path') => $this->makePartial('folder-path') + ]; + } + + public function onGenerateThumbnails() + { + $batch = Input::get('batch'); + if (!is_array($batch)) { + return; + } + + $result = []; + foreach ($batch as $thumbnailInfo) { + $result[] = $this->generateThumbnail($thumbnailInfo); + } + + return [ + 'generatedThumbnails'=>$result + ]; + } + + public function onGetSidebarThumbnail() + { + $path = Input::get('path'); + $lastModified = Input::get('lastModified'); + + $thumbnailParams = $this->getThumbnailParams(); + $thumbnailParams['width'] = 300; + $thumbnailParams['height'] = 255; + $thumbnailParams['mode'] = 'auto'; + + $path = MediaLibrary::validatePath($path); + + if (!is_numeric($lastModified)) { + throw new ApplicationException('Invalid input data'); + } + + /* + * If the thumbnail file exists, just return the thumbnail markup, + * otherwise generate a new thumbnail. + */ + $thumbnailPath = $this->thumbnailExists($thumbnailParams, $path, $lastModified); + if ($thumbnailPath) { + return [ + 'markup' => $this->makePartial('thumbnail-image', [ + 'isError' => $this->thumbnailIsError($thumbnailPath), + 'imageUrl' => $this->getThumbnailImageUrl($thumbnailPath) + ]) + ]; + } + + $thumbnailInfo = $thumbnailParams; + $thumbnailInfo['path'] = $path; + $thumbnailInfo['lastModified'] = $lastModified; + $thumbnailInfo['id'] = 'sidebar-thumbnail'; + + return $this->generateThumbnail($thumbnailInfo, $thumbnailParams, true); + } + + public function onChangeView() + { + $viewMode = Input::get('view'); + $path = Input::get('path'); + + $this->setViewMode($viewMode); + $this->setCurrentFolder($path); + + $this->prepareVars(); + + return [ + '#'.$this->getId('item-list') => $this->makePartial('item-list'), + '#'.$this->getId('folder-path') => $this->makePartial('folder-path'), + '#'.$this->getId('view-mode-buttons') => $this->makePartial('view-mode-buttons') + ]; + } + + public function onSetFilter() + { + $filter = Input::get('filter'); + $path = Input::get('path'); + + $this->setFilter($filter); + $this->setCurrentFolder($path); + + $this->prepareVars(); + + return [ + '#'.$this->getId('item-list') => $this->makePartial('item-list'), + '#'.$this->getId('folder-path') => $this->makePartial('folder-path'), + '#'.$this->getId('filters') => $this->makePartial('filters') + ]; + } + + public function onSetSorting() + { + $sortBy = Input::get('sortBy', $this->getSortBy()); + $sortDirection = Input::get('sortDirection', $this->getSortDirection()); + $path = Input::get('path'); + + $this->setSortBy($sortBy); + $this->setSortDirection($sortDirection); + $this->setCurrentFolder($path); + + $this->prepareVars(); + + return [ + '#'.$this->getId('item-list') => $this->makePartial('item-list'), + '#'.$this->getId('folder-path') => $this->makePartial('folder-path') + ]; + } + + public function onDeleteItem() + { + $paths = Input::get('paths'); + + if (!is_array($paths)) { + throw new ApplicationException('Invalid input data'); + } + + $library = MediaLibrary::instance(); + + $filesToDelete = []; + foreach ($paths as $pathInfo) { + $path = array_get($pathInfo, 'path'); + $type = array_get($pathInfo, 'type'); + + if (!$path || !$type) { + throw new ApplicationException('Invalid input data'); + } + + if ($type === MediaLibraryItem::TYPE_FILE) { + /* + * Add to bulk collection + */ + $filesToDelete[] = $path; + } + elseif ($type === MediaLibraryItem::TYPE_FOLDER) { + /* + * Delete single folder + */ + $library->deleteFolder($path); + + /* + * Extensibility + */ + $this->fireSystemEvent('media.folder.delete', [$path]); + } + } + + if (count($filesToDelete) > 0) { + /* + * Delete collection of files + */ + $library->deleteFiles($filesToDelete); + + /* + * Extensibility + */ + foreach ($filesToDelete as $path) { + $this->fireSystemEvent('media.file.delete', [$path]); + } + } + + $library->resetCache(); + $this->prepareVars(); + + return [ + '#'.$this->getId('item-list') => $this->makePartial('item-list') + ]; + } + + public function onLoadRenamePopup() + { + $path = Input::get('path'); + $path = MediaLibrary::validatePath($path); + + $this->vars['originalPath'] = $path; + $this->vars['name'] = basename($path); + $this->vars['listId'] = Input::get('listId'); + $this->vars['type'] = Input::get('type'); + + return $this->makePartial('rename-form'); + } + + public function onApplyName() + { + $newName = trim(Input::get('name')); + if (!strlen($newName)) { + throw new ApplicationException(Lang::get('cms::lang.asset.name_cant_be_empty')); + } + + if (!$this->validateFileName($newName)) { + throw new ApplicationException(Lang::get('cms::lang.asset.invalid_name')); + } + + $originalPath = Input::get('originalPath'); + $originalPath = MediaLibrary::validatePath($originalPath); + $newPath = dirname($originalPath).'/'.$newName; + $type = Input::get('type'); + + if ($type == MediaLibraryItem::TYPE_FILE) { + /* + * Validate extension + */ + if (!$this->validateFileType($newName)) { + throw new ApplicationException(Lang::get('backend::lang.media.type_blocked')); + } + + /* + * Move single file + */ + MediaLibrary::instance()->moveFile($originalPath, $newPath); + + /* + * Extensibility + */ + $this->fireSystemEvent('media.file.rename', [$originalPath, $newPath]); + } + else { + /* + * Move single folder + */ + MediaLibrary::instance()->moveFolder($originalPath, $newPath); + + /* + * Extensibility + */ + $this->fireSystemEvent('media.folder.rename', [$originalPath, $newPath]); + } + + MediaLibrary::instance()->resetCache(); + } + + public function onCreateFolder() + { + $name = trim(Input::get('name')); + if (!strlen($name)) { + throw new ApplicationException(Lang::get('cms::lang.asset.name_cant_be_empty')); + } + + if (!$this->validateFileName($name)) { + throw new ApplicationException(Lang::get('cms::lang.asset.invalid_name')); + } + + $path = Input::get('path'); + $path = MediaLibrary::validatePath($path); + + $newFolderPath = $path.'/'.$name; + + $library = MediaLibrary::instance(); + + if ($library->folderExists($newFolderPath)) { + throw new ApplicationException(Lang::get('backend::lang.media.folder_or_file_exist')); + } + + /* + * Create the new folder + */ + if (!$library->makeFolder($newFolderPath)) { + throw new ApplicationException(Lang::get('backend::lang.media.error_creating_folder')); + } + + /* + * Extensibility + */ + $this->fireSystemEvent('media.folder.create', [$newFolderPath]); + + $library->resetCache(); + + $this->prepareVars(); + + return [ + '#'.$this->getId('item-list') => $this->makePartial('item-list') + ]; + } + + public function onLoadMovePopup() + { + $exclude = Input::get('exclude', []); + if (!is_array($exclude)) { + throw new ApplicationException('Invalid input data'); + } + + $folders = MediaLibrary::instance()->listAllDirectories($exclude); + + $folderList = []; + foreach ($folders as $folder) { + $path = $folder; + + if ($folder == '/') { + $name = Lang::get('backend::lang.media.library'); + } + else { + $segments = explode('/', $folder); + $name = str_repeat(' ', (count($segments)-1)*4).basename($folder); + } + + $folderList[$path] = $name; + } + + $this->vars['folders'] = $folderList; + $this->vars['originalPath'] = Input::get('path'); + + return $this->makePartial('move-form'); + } + + public function onMoveItems() + { + $dest = trim(Input::get('dest')); + if (!strlen($dest)) { + throw new ApplicationException(Lang::get('backend::lang.media.please_select_move_dest')); + } + + $dest = MediaLibrary::validatePath($dest); + if ($dest == Input::get('originalPath')) { + throw new ApplicationException(Lang::get('backend::lang.media.move_dest_src_match')); + } + + $files = Input::get('files', []); + if (!is_array($files)) { + throw new ApplicationException('Invalid input data'); + } + + $folders = Input::get('folders', []); + if (!is_array($folders)) { + throw new ApplicationException('Invalid input data'); + } + + $library = MediaLibrary::instance(); + + foreach ($files as $path) { + /* + * Move a single file + */ + $library->moveFile($path, $dest.'/'.basename($path)); + + /* + * Extensibility + */ + $this->fireSystemEvent('media.file.move', [$path, $dest]); + } + + foreach ($folders as $path) { + /* + * Move a single folder + */ + $library->moveFolder($path, $dest.'/'.basename($path)); + + /* + * Extensibility + */ + $this->fireSystemEvent('media.folder.move', [$path, $dest]); + } + + $library->resetCache(); + + $this->prepareVars(); + + return [ + '#'.$this->getId('item-list') => $this->makePartial('item-list') + ]; + } + + public function onSetSidebarVisible() + { + $visible = Input::get('visible'); + + $this->setSidebarVisible($visible); + } + + public function onLoadPopup() + { + $this->bottomToolbar = Input::get('bottomToolbar', $this->bottomToolbar); + + $this->cropAndInsertButton = Input::get('cropAndInsertButton', $this->cropAndInsertButton); + + return $this->makePartial('popup-body'); + } + + public function onLoadImageCropPopup() + { + $path = Input::get('path'); + $path = MediaLibrary::validatePath($path); + $cropSessionKey = md5(Form::getSessionKey()); + $selectionParams = $this->getSelectionParams(); + + $urlAndSize = $this->getCropEditImageUrlAndSize($path, $cropSessionKey); + $width = $urlAndSize['dimensions'][0]; + $height = $urlAndSize['dimensions'][1] ? $urlAndSize['dimensions'][1] : 1; + + $this->vars['currentSelectionMode'] = $selectionParams['mode']; + $this->vars['currentSelectionWidth'] = $selectionParams['width']; + $this->vars['currentSelectionHeight'] = $selectionParams['height']; + $this->vars['cropSessionKey'] = $cropSessionKey; + $this->vars['imageUrl'] = $urlAndSize['url']; + $this->vars['dimensions'] = $urlAndSize['dimensions']; + $this->vars['originalRatio'] = round($width / $height, 5); + $this->vars['path'] = $path; + + return $this->makePartial('image-crop-popup-body'); + } + + public function onEndCroppingSession() + { + $cropSessionKey = Input::get('cropSessionKey'); + if (!preg_match('/^[0-9a-z]+$/', $cropSessionKey)) { + throw new ApplicationException('Invalid input data'); + } + + $this->removeCropEditDir($cropSessionKey); + } + + public function onCropImage() + { + $imageSrcPath = trim(Input::get('img')); + $selectionData = Input::get('selection'); + $cropSessionKey = Input::get('cropSessionKey'); + $path = Input::get('path'); + $path = MediaLibrary::validatePath($path); + + if (!strlen($imageSrcPath)) { + throw new ApplicationException('Invalid input data'); + } + + if (!preg_match('/^[0-9a-z]+$/', $cropSessionKey)) { + throw new ApplicationException('Invalid input data'); + } + + if (!is_array($selectionData)) { + throw new ApplicationException('Invalid input data'); + } + + $result = $this->cropImage($imageSrcPath, $selectionData, $cropSessionKey, $path); + + $selectionMode = Input::get('selectionMode'); + $selectionWidth = Input::get('selectionWidth'); + $selectionHeight = Input::get('selectionHeight'); + + $this->setSelectionParams($selectionMode, $selectionWidth, $selectionHeight); + + return $result; + } + + public function onResizeImage() + { + $cropSessionKey = Input::get('cropSessionKey'); + if (!preg_match('/^[0-9a-z]+$/', $cropSessionKey)) { + throw new ApplicationException('Invalid input data'); + } + + $width = trim(Input::get('width')); + if (!strlen($width) || !ctype_digit($width)) { + throw new ApplicationException('Invalid input data'); + } + + $height = trim(Input::get('height')); + if (!strlen($height) || !ctype_digit($height)) { + throw new ApplicationException('Invalid input data'); + } + + $path = Input::get('path'); + $path = MediaLibrary::validatePath($path); + + $params = array( + 'width' => $width, + 'height' => $height + ); + + return $this->getCropEditImageUrlAndSize($path, $cropSessionKey, $params); + } + + // + // Methods for th internal use + // + + protected function prepareVars() + { + clearstatcache(); + + $folder = $this->getCurrentFolder(); + $viewMode = $this->getViewMode(); + $filter = $this->getFilter(); + $sortBy = $this->getSortBy(); + $sortDirection = $this->getSortDirection(); + $searchTerm = $this->getSearchTerm(); + $searchMode = strlen($searchTerm) > 0; + + if (!$searchMode) { + $this->vars['items'] = $this->listFolderItems($folder, $filter, ['by' => $sortBy, 'direction' => $sortDirection]); + } + else { + $this->vars['items'] = $this->findFiles($searchTerm, $filter, ['by' => $sortBy, 'direction' => $sortDirection]); + } + + $this->vars['currentFolder'] = $folder; + $this->vars['isRootFolder'] = $folder == self::FOLDER_ROOT; + $this->vars['pathSegments'] = $this->splitPathToSegments($folder); + $this->vars['viewMode'] = $viewMode; + $this->vars['thumbnailParams'] = $this->getThumbnailParams($viewMode); + $this->vars['currentFilter'] = $filter; + $this->vars['sortBy'] = $sortBy; + $this->vars['sortDirection'] = $sortDirection; + $this->vars['searchMode'] = $searchMode; + $this->vars['searchTerm'] = $searchTerm; + $this->vars['sidebarVisible'] = $this->getSidebarVisible(); + } + + protected function listFolderItems($folder, $filter, $sortBy) + { + $filter = $filter !== self::FILTER_EVERYTHING ? $filter : null; + + return MediaLibrary::instance()->listFolderContents($folder, $sortBy, $filter); + } + + protected function findFiles($searchTerm, $filter, $sortBy) + { + $filter = $filter !== self::FILTER_EVERYTHING ? $filter : null; + + return MediaLibrary::instance()->findFiles($searchTerm, $sortBy, $filter); + } + + protected function setCurrentFolder($path) + { + $path = MediaLibrary::validatePath($path); + + $this->putSession('media_folder', $path); + } + + protected function getCurrentFolder() + { + $folder = $this->getSession('media_folder', self::FOLDER_ROOT); + + return $folder; + } + + protected function setFilter($filter) + { + if (!in_array($filter, [ + self::FILTER_EVERYTHING, + MediaLibraryItem::FILE_TYPE_IMAGE, + MediaLibraryItem::FILE_TYPE_AUDIO, + MediaLibraryItem::FILE_TYPE_DOCUMENT, + MediaLibraryItem::FILE_TYPE_VIDEO + ])) { + throw new ApplicationException('Invalid input data'); + } + + $this->putSession('media_filter', $filter); + } + + protected function getFilter() + { + return $this->getSession('media_filter', self::FILTER_EVERYTHING); + } + + protected function setSearchTerm($searchTerm) + { + $this->putSession('media_search', trim($searchTerm)); + } + + protected function getSearchTerm() + { + return $this->getSession('media_search', null); + } + + protected function setSortBy($sortBy) + { + if (!in_array($sortBy, [ + MediaLibrary::SORT_BY_TITLE, + MediaLibrary::SORT_BY_SIZE, + MediaLibrary::SORT_BY_MODIFIED + ])) { + throw new ApplicationException('Invalid input data'); + } + + $this->putSession('media_sort_by', $sortBy); + } + + protected function getSortBy() + { + return $this->getSession('media_sort_by', MediaLibrary::SORT_BY_TITLE); + } + + protected function setSortDirection($sortDirection) + { + if (!in_array($sortDirection, [ + MediaLibrary::SORT_DIRECTION_ASC, + MediaLibrary::SORT_DIRECTION_DESC + ])) { + throw new ApplicationException('Invalid input data'); + } + + $this->putSession('media_sort_direction', $sortDirection); + } + + protected function getSortDirection() + { + return $this->getSession('media_sort_direction', MediaLibrary::SORT_DIRECTION_ASC); + } + + protected function getSelectionParams() + { + $result = $this->getSession('media_crop_selection_params'); + + if ($result) { + if (!isset($result['mode'])) { + $result['mode'] = MediaManager::SELECTION_MODE_NORMAL; + } + + if (!isset($result['width'])) { + $result['width'] = null; + } + + if (!isset($result['height'])) { + $result['height'] = null; + } + + return $result; + } + + return [ + 'mode' => MediaManager::SELECTION_MODE_NORMAL, + 'width' => null, + 'height' => null + ]; + } + + protected function setSelectionParams($selectionMode, $selectionWidth, $selectionHeight) + { + if (!in_array($selectionMode, [ + MediaManager::SELECTION_MODE_NORMAL, + MediaManager::SELECTION_MODE_FIXED_RATIO, + MediaManager::SELECTION_MODE_FIXED_SIZE + ])) { + throw new ApplicationException('Invalid input data'); + } + + if (strlen($selectionWidth) && !ctype_digit($selectionWidth)) { + throw new ApplicationException('Invalid input data'); + } + + if (strlen($selectionHeight) && !ctype_digit($selectionHeight)) { + throw new ApplicationException('Invalid input data'); + } + + $this->putSession('media_crop_selection_params', [ + 'mode' => $selectionMode, + 'width' => $selectionWidth, + 'height' => $selectionHeight + ]); + } + + protected function setSidebarVisible($visible) + { + $this->putSession('sidebar_visible', !!$visible); + } + + protected function getSidebarVisible() + { + return $this->getSession('sidebar_visible', true); + } + + protected function itemTypeToIconClass($item, $itemType) + { + if ($item->type == MediaLibraryItem::TYPE_FOLDER) { + return 'icon-folder'; + } + + switch ($itemType) { + case MediaLibraryItem::FILE_TYPE_IMAGE: return "icon-picture-o"; + case MediaLibraryItem::FILE_TYPE_VIDEO: return "icon-video-camera"; + case MediaLibraryItem::FILE_TYPE_AUDIO: return "icon-volume-up"; + default: return "icon-file"; + } + } + + protected function splitPathToSegments($path) + { + $path = MediaLibrary::validatePath($path, true); + $path = explode('/', ltrim($path, '/')); + + $result = []; + while (count($path) > 0) { + $folder = array_pop($path); + + $result[$folder] = implode('/', $path).'/'.$folder; + if (substr($result[$folder], 0, 1) != '/') { + $result[$folder] = '/'.$result[$folder]; + } + } + + return array_reverse($result, true); + } + + protected function setViewMode($viewMode) + { + if (!in_array($viewMode, [ + self::VIEW_MODE_GRID, + self::VIEW_MODE_LIST, + self::VIEW_MODE_TILES + ])) { + throw new ApplicationException('Invalid input data'); + } + + $this->putSession('view_mode', $viewMode); + } + + protected function getViewMode() + { + return $this->getSession('view_mode', self::VIEW_MODE_GRID); + } + + protected function getThumbnailParams($viewMode = null) + { + $result = [ + 'mode' => 'crop', + 'ext' => 'png' + ]; + + if ($viewMode) { + if ($viewMode == self::VIEW_MODE_LIST) { + $result['width'] = 75; + $result['height'] = 75; + } + else { + $result['width'] = 165; + $result['height'] = 165; + } + } + + return $result; + } + + protected function getThumbnailImagePath($thumbnailParams, $itemPath, $lastModified) + { + $itemSignature = md5($itemPath).$lastModified; + + $thumbFile = 'thumb_' . + $itemSignature . '_' . + $thumbnailParams['width'] . 'x' . + $thumbnailParams['height'] . '_' . + $thumbnailParams['mode'] . '.' . + $thumbnailParams['ext']; + + $partition = implode('/', array_slice(str_split($itemSignature, 3), 0, 3)) . '/'; + + $result = $this->getThumbnailDirectory().$partition.$thumbFile; + + return $result; + } + + protected function getThumbnailImageUrl($imagePath) + { + return Url::to('/storage/temp'.$imagePath); + } + + protected function thumbnailExists($thumbnailParams, $itemPath, $lastModified) + { + $thumbnailPath = $this->getThumbnailImagePath($thumbnailParams, $itemPath, $lastModified); + + $fullPath = temp_path(ltrim($thumbnailPath, '/')); + + if (File::exists($fullPath)) { + return $thumbnailPath; + } + + return false; + } + + protected function thumbnailIsError($thumbnailPath) + { + $fullPath = temp_path(ltrim($thumbnailPath, '/')); + + return hash_file('crc32', $fullPath) == $this->getBrokenImageHash(); + } + + protected function getLocalTempFilePath($fileName) + { + $fileName = md5($fileName.uniqid().microtime()); + + $mediaFolder = Config::get('cms.storage.media.folder', 'media'); + + $path = temp_path() . MediaLibrary::validatePath($mediaFolder, true); + + if (!File::isDirectory($path)) { + File::makeDirectory($path, 0777, true, true); + } + + return $path.'/'.$fileName; + } + + protected function getThumbnailDirectory() + { + /* + * NOTE: Custom routing for /storage/temp/$thumbnailDirectory must be setup + * to return the thumbnail if not using default 'public' directory + */ + return MediaLibrary::validatePath(Config::get('cms.storage.media.thumbFolder', 'public'), true) . '/'; + } + + protected function getPlaceholderId($item) + { + return 'placeholder'.md5($item->path.'-'.$item->lastModified.uniqid(microtime())); + } + + protected function generateThumbnail($thumbnailInfo, $thumbnailParams = null) + { + $tempFilePath = null; + $fullThumbnailPath = null; + $thumbnailPath = null; + $markup = null; + + try { + /* + * Get and validate input data + */ + $path = $thumbnailInfo['path']; + $width = $thumbnailInfo['width']; + $height = $thumbnailInfo['height']; + $lastModified = $thumbnailInfo['lastModified']; + + if (!is_numeric($width) || !is_numeric($height) || !is_numeric($lastModified)) { + throw new ApplicationException('Invalid input data'); + } + + if (!$thumbnailParams) { + $thumbnailParams = $this->getThumbnailParams(); + $thumbnailParams['width'] = $width; + $thumbnailParams['height'] = $height; + } + + $thumbnailPath = $this->getThumbnailImagePath($thumbnailParams, $path, $lastModified); + $fullThumbnailPath = temp_path(ltrim($thumbnailPath, '/')); + + /* + * Save the file locally + */ + $library = MediaLibrary::instance(); + $tempFilePath = $this->getLocalTempFilePath($path); + + if (!@File::put($tempFilePath, $library->get($path))) { + throw new SystemException('Error saving remote file to a temporary location'); + } + + /* + * Resize the thumbnail and save to the thumbnails directory + */ + $this->resizeImage($fullThumbnailPath, $thumbnailParams, $tempFilePath); + + /* + * Delete the temporary file + */ + File::delete($tempFilePath); + $markup = $this->makePartial('thumbnail-image', [ + 'isError' => false, + 'imageUrl' => $this->getThumbnailImageUrl($thumbnailPath) + ]); + } + catch (Exception $ex) { + if ($tempFilePath) { + File::delete($tempFilePath); + } + + if ($fullThumbnailPath) { + $this->copyBrokenImage($fullThumbnailPath); + } + + $markup = $this->makePartial('thumbnail-image', ['isError' => true]); + + /* + * @todo We need to log all types of exceptions here + */ + traceLog($ex->getMessage()); + } + + if ($markup && ($id = $thumbnailInfo['id'])) { + return [ + 'id' => $id, + 'markup' => $markup + ]; + } + } + + protected function resizeImage($fullThumbnailPath, $thumbnailParams, $tempFilePath) + { + $thumbnailDir = dirname($fullThumbnailPath); + if (!File::isDirectory($thumbnailDir)) { + if (File::makeDirectory($thumbnailDir, 0777, true) === false) { + throw new SystemException('Error creating thumbnail directory'); + } + } + + $targetDimensions = $this->getTargetDimensions($thumbnailParams['width'], $thumbnailParams['height'], $tempFilePath); + + $targetWidth = $targetDimensions[0]; + $targetHeight = $targetDimensions[1]; + + Resizer::open($tempFilePath) + ->resize($targetWidth, $targetHeight, [ + 'mode' => $thumbnailParams['mode'], + 'offset' => [0, 0] + ]) + ->save($fullThumbnailPath) + ; + + File::chmod($fullThumbnailPath); + } + + protected function getBrokenImagePath() + { + return __DIR__.'/mediamanager/assets/images/broken-thumbnail.gif'; + } + + protected function getBrokenImageHash() + { + if ($this->brokenImageHash) { + return $this->brokenImageHash; + } + + $fullPath = $this->getBrokenImagePath(); + return $this->brokenImageHash = hash_file('crc32', $fullPath); + } + + protected function copyBrokenImage($path) + { + try { + $thumbnailDir = dirname($path); + if (!File::isDirectory($thumbnailDir)) { + if (File::makeDirectory($thumbnailDir, 0777, true) === false) + return; + } + File::copy($this->getBrokenImagePath(), $path); + } + catch (Exception $ex) { + traceLog($ex->getMessage()); + } + } + + protected function getTargetDimensions($width, $height, $originalImagePath) + { + $originalDimensions = [$width, $height]; + + try { + $dimensions = getimagesize($originalImagePath); + if (!$dimensions) { + return $originalDimensions; + } + + if ($dimensions[0] > $width || $dimensions[1] > $height) { + return $originalDimensions; + } + + return $dimensions; + } + catch (Exception $ex) { + return $originalDimensions; + } + } + + protected function checkUploadPostback() + { + $fileName = null; + $quickMode = false; + + if ( + (!($uniqueId = Request::header('X-OCTOBER-FILEUPLOAD')) || $uniqueId != $this->getId()) && + (!$quickMode = post('X_OCTOBER_MEDIA_MANAGER_QUICK_UPLOAD')) + ) { + return; + } + + try { + if (!Input::hasFile('file_data')) { + throw new ApplicationException('File missing from request'); + } + + $uploadedFile = Input::file('file_data'); + + $fileName = $uploadedFile->getClientOriginalName(); + + /* + * Convert uppcare case file extensions to lower case + */ + $extension = strtolower($uploadedFile->getClientOriginalExtension()); + $fileName = File::name($fileName).'.'.$extension; + + /* + * File name contains non-latin characters, attempt to slug the value + */ + if (!$this->validateFileName($fileName)) { + $fileNameClean = $this->cleanFileName(File::name($fileName)); + $fileName = $fileNameClean . '.' . $extension; + } + + /* + * Check for unsafe file extensions + */ + if (!$this->validateFileType($fileName)) { + throw new ApplicationException(Lang::get('backend::lang.media.type_blocked')); + } + + /* + * See mime type handling in the asset manager + */ + if (!$uploadedFile->isValid()) { + throw new ApplicationException($uploadedFile->getErrorMessage()); + } + + $path = $quickMode ? '/uploaded-files' : Input::get('path'); + $path = MediaLibrary::validatePath($path); + $filePath = $path.'/'.$fileName; + + /* + * getRealPath() can be empty for some environments (IIS) + */ + $realPath = empty(trim($uploadedFile->getRealPath())) + ? $uploadedFile->getPath() . DIRECTORY_SEPARATOR . $uploadedFile->getFileName() + : $uploadedFile->getRealPath(); + + MediaLibrary::instance()->put( + $filePath, + File::get($realPath) + ); + + /* + * Extensibility + */ + $this->fireSystemEvent('media.file.upload', [$filePath, $uploadedFile]); + + Response::json([ + 'link' => MediaLibrary::url($filePath), + 'result' => 'success' + ])->send(); + } + catch (Exception $ex) { + Response::json($ex->getMessage(), 400)->send(); + } + + exit; + } + + /** + * Validate a proposed media item file name. + * @param string + * @return bool + */ + protected function validateFileName($name) + { + if (!preg_match('/^[0-9a-z@\.\s_\-]+$/i', $name)) { + return false; + } + + if (strpos($name, '..') !== false) { + return false; + } + + return true; + } + + /** + * Check for blocked / unsafe file extensions + * @param string + * @return bool + */ + protected function validateFileType($name) + { + $extension = strtolower(File::extension($name)); + + $allowedFileTypes = FileDefinitions::get('defaultExtensions'); + + if (!in_array($extension, $allowedFileTypes)) { + return false; + } + + return true; + } + + /** + * Creates a slug form the string. A modified version of Str::slug + * with the main difference that it accepts @-signs + * @param string + * @return string + */ + protected function cleanFileName($name) + { + $title = Str::ascii($name); + + // Convert all dashes/underscores into separator + $flip = $separator = '-'; + $title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title); + + // Remove all characters that are not the separator, letters, numbers, whitespace or @. + $title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s@]+!u', '', mb_strtolower($title)); + + // Replace all separator characters and whitespace by a single separator + $title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title); + + return trim($title, $separator); + } + + // + // Cropping + // + + protected function getCropSessionDirPath($cropSessionKey) + { + return $this->getThumbnailDirectory().'edit-crop-'.$cropSessionKey; + } + + protected function getCropEditImageUrlAndSize($path, $cropSessionKey, $params = null) + { + $sessionDirectoryPath = $this->getCropSessionDirPath($cropSessionKey); + $fullSessionDirectoryPath = temp_path($sessionDirectoryPath); + $sessionDirectoryCreated = false; + + if (!File::isDirectory($fullSessionDirectoryPath)) { + File::makeDirectory($fullSessionDirectoryPath, 0777, true, true); + $sessionDirectoryCreated = true; + } + + $tempFilePath = null; + + try { + $extension = pathinfo($path, PATHINFO_EXTENSION); + $library = MediaLibrary::instance(); + $originalThumbFileName = 'original.'.$extension; + + /* + * If the target dimensions are not provided, save the original image to the + * crop session directory and return its URL. + */ + if (!$params) { + $tempFilePath = $fullSessionDirectoryPath.'/'.$originalThumbFileName; + + if (!@File::put($tempFilePath, $library->get($path))) { + throw new SystemException('Error saving remote file to a temporary location.'); + } + + $url = $this->getThumbnailImageUrl($sessionDirectoryPath.'/'.$originalThumbFileName); + $dimensions = getimagesize($tempFilePath); + + return [ + 'url' => $url, + 'dimensions' => $dimensions + ]; + } + /* + * If the target dimensions are provided, resize the original image and + * return its URL and dimensions. + */ + else { + + $originalFilePath = $fullSessionDirectoryPath.'/'.$originalThumbFileName; + if (!File::isFile($originalFilePath)) { + throw new SystemException('The original image is not found in the cropping session directory.'); + } + + $resizedThumbFileName = 'resized-'.$params['width'].'-'.$params['height'].'.'.$extension; + $tempFilePath = $fullSessionDirectoryPath.'/'.$resizedThumbFileName; + + Resizer::open($originalFilePath) + ->resize($params['width'], $params['height'], [ + 'mode' => 'exact' + ]) + ->save($tempFilePath) + ; + + $url = $this->getThumbnailImageUrl($sessionDirectoryPath.'/'.$resizedThumbFileName); + $dimensions = getimagesize($tempFilePath); + + return [ + 'url' => $url, + 'dimensions' => $dimensions + ]; + } + } + catch (Exception $ex) { + if ($sessionDirectoryCreated) { + @File::deleteDirectory($fullSessionDirectoryPath); + } + + if ($tempFilePath) { + File::delete($tempFilePath); + } + + throw $ex; + } + } + + protected function removeCropEditDir($cropSessionKey) + { + $sessionDirectoryPath = $this->getCropSessionDirPath($cropSessionKey); + $fullSessionDirectoryPath = temp_path($sessionDirectoryPath); + + if (File::isDirectory($fullSessionDirectoryPath)) { + @File::deleteDirectory($fullSessionDirectoryPath); + } + } + + protected function cropImage($imageSrcPath, $selectionData, $cropSessionKey, $path) + { + $originalFileName = basename($path); + + $path = rtrim(dirname($path), '/').'/'; + $fileName = basename($imageSrcPath); + + if ( + strpos($fileName, '..') !== false || + strpos($fileName, '/') !== false || + strpos($fileName, '\\') !== false + ) { + throw new SystemException('Invalid image file name.'); + } + + $selectionParams = ['x', 'y', 'w', 'h']; + + foreach ($selectionParams as $paramName) { + if (!array_key_exists($paramName, $selectionData)) { + throw new SystemException('Invalid selection data.'); + } + + if (!is_numeric($selectionData[$paramName])) { + throw new SystemException('Invalid selection data.'); + } + + $selectionData[$paramName] = (int) $selectionData[$paramName]; + } + + $sessionDirectoryPath = $this->getCropSessionDirPath($cropSessionKey); + $fullSessionDirectoryPath = temp_path($sessionDirectoryPath); + + if (!File::isDirectory($fullSessionDirectoryPath)) { + throw new SystemException('The image editing session is not found.'); + } + + /* + * Find the image on the disk and resize it + */ + $imagePath = $fullSessionDirectoryPath.'/'.$fileName; + if (!File::isFile($imagePath)) { + throw new SystemException('The image is not found on the disk.'); + } + + $extension = pathinfo($originalFileName, PATHINFO_EXTENSION); + + $targetImageName = basename($originalFileName, '.'.$extension).'-' + .$selectionData['x'].'-' + .$selectionData['y'].'-' + .$selectionData['w'].'-' + .$selectionData['h'].'-'; + + $targetImageName .= time(); + $targetImageName .= '.'.$extension; + + $targetTmpPath = $fullSessionDirectoryPath.'/'.$targetImageName; + + /* + * Crop the image, otherwise copy original to target destination. + */ + if ($selectionData['w'] == 0 || $selectionData['h'] == 0) { + File::copy($imagePath, $targetTmpPath); + } + else { + Resizer::open($imagePath) + ->crop( + $selectionData['x'], + $selectionData['y'], + $selectionData['w'], + $selectionData['h'], + $selectionData['w'], + $selectionData['h'] + ) + ->save($targetTmpPath) + ; + } + + /* + * Upload the cropped file to the Library + */ + $targetFolder = $path.'cropped-images'; + $targetPath = $targetFolder.'/'.$targetImageName; + + $library = MediaLibrary::instance(); + $library->put($targetPath, file_get_contents($targetTmpPath)); + + return [ + 'publicUrl' => $library->getPathUrl($targetPath), + 'documentType' => MediaLibraryItem::FILE_TYPE_IMAGE, + 'itemType' => MediaLibraryItem::TYPE_FILE, + 'path' => $targetPath, + 'title' => $targetImageName, + 'folder' => $targetFolder + ]; + } +} diff --git a/modules/cms/widgets/mediamanager/assets/css/mediamanager.css b/modules/backend/widgets/mediamanager/assets/css/mediamanager.css similarity index 100% rename from modules/cms/widgets/mediamanager/assets/css/mediamanager.css rename to modules/backend/widgets/mediamanager/assets/css/mediamanager.css diff --git a/modules/cms/widgets/mediamanager/assets/images/broken-thumbnail.gif b/modules/backend/widgets/mediamanager/assets/images/broken-thumbnail.gif similarity index 100% rename from modules/cms/widgets/mediamanager/assets/images/broken-thumbnail.gif rename to modules/backend/widgets/mediamanager/assets/images/broken-thumbnail.gif diff --git a/modules/cms/widgets/mediamanager/assets/images/video-poster.png b/modules/backend/widgets/mediamanager/assets/images/video-poster.png similarity index 100% rename from modules/cms/widgets/mediamanager/assets/images/video-poster.png rename to modules/backend/widgets/mediamanager/assets/images/video-poster.png diff --git a/modules/cms/widgets/mediamanager/assets/js/mediamanager-browser-min.js b/modules/backend/widgets/mediamanager/assets/js/mediamanager-browser-min.js similarity index 100% rename from modules/cms/widgets/mediamanager/assets/js/mediamanager-browser-min.js rename to modules/backend/widgets/mediamanager/assets/js/mediamanager-browser-min.js diff --git a/modules/cms/widgets/mediamanager/assets/js/mediamanager-browser.js b/modules/backend/widgets/mediamanager/assets/js/mediamanager-browser.js similarity index 100% rename from modules/cms/widgets/mediamanager/assets/js/mediamanager-browser.js rename to modules/backend/widgets/mediamanager/assets/js/mediamanager-browser.js diff --git a/modules/cms/widgets/mediamanager/assets/js/mediamanager-global.js b/modules/backend/widgets/mediamanager/assets/js/mediamanager-global.js similarity index 100% rename from modules/cms/widgets/mediamanager/assets/js/mediamanager-global.js rename to modules/backend/widgets/mediamanager/assets/js/mediamanager-global.js diff --git a/modules/cms/widgets/mediamanager/assets/js/mediamanager.imagecroppopup.js b/modules/backend/widgets/mediamanager/assets/js/mediamanager.imagecroppopup.js similarity index 100% rename from modules/cms/widgets/mediamanager/assets/js/mediamanager.imagecroppopup.js rename to modules/backend/widgets/mediamanager/assets/js/mediamanager.imagecroppopup.js diff --git a/modules/cms/widgets/mediamanager/assets/js/mediamanager.js b/modules/backend/widgets/mediamanager/assets/js/mediamanager.js similarity index 100% rename from modules/cms/widgets/mediamanager/assets/js/mediamanager.js rename to modules/backend/widgets/mediamanager/assets/js/mediamanager.js diff --git a/modules/cms/widgets/mediamanager/assets/js/mediamanager.popup.js b/modules/backend/widgets/mediamanager/assets/js/mediamanager.popup.js similarity index 100% rename from modules/cms/widgets/mediamanager/assets/js/mediamanager.popup.js rename to modules/backend/widgets/mediamanager/assets/js/mediamanager.popup.js diff --git a/modules/cms/widgets/mediamanager/assets/less/mediamanager.less b/modules/backend/widgets/mediamanager/assets/less/mediamanager.less similarity index 100% rename from modules/cms/widgets/mediamanager/assets/less/mediamanager.less rename to modules/backend/widgets/mediamanager/assets/less/mediamanager.less diff --git a/modules/cms/widgets/mediamanager/partials/_body.htm b/modules/backend/widgets/mediamanager/partials/_body.htm similarity index 87% rename from modules/cms/widgets/mediamanager/partials/_body.htm rename to modules/backend/widgets/mediamanager/partials/_body.htm index 7e17c4ff0..7c74a0cf9 100644 --- a/modules/cms/widgets/mediamanager/partials/_body.htm +++ b/modules/backend/widgets/mediamanager/partials/_body.htm @@ -3,11 +3,11 @@ class="layout" data-alias="alias ?>" data-unique-id="getId() ?>" - data-delete-empty="" - data-delete-confirm="" - data-move-empty="" - data-select-single-image="" - data-selection-not-image="" + data-delete-empty="" + data-delete-confirm="" + data-move-empty="" + data-select-single-image="" + data-selection-not-image="" data-bottom-toolbar="bottomToolbar ? 'true' : 'false' ?>" data-crop-and-insert-button="cropAndInsertButton ? 'true' : 'false' ?>" tabindex="0" diff --git a/modules/cms/widgets/mediamanager/partials/_bottom-toolbar.htm b/modules/backend/widgets/mediamanager/partials/_bottom-toolbar.htm similarity index 84% rename from modules/cms/widgets/mediamanager/partials/_bottom-toolbar.htm rename to modules/backend/widgets/mediamanager/partials/_bottom-toolbar.htm index 9fb73ee79..8c0ea5ad6 100644 --- a/modules/cms/widgets/mediamanager/partials/_bottom-toolbar.htm +++ b/modules/backend/widgets/mediamanager/partials/_bottom-toolbar.htm @@ -6,7 +6,7 @@ data-command="popup-command" data-popup-command="insert" class="btn btn-primary"> - + + > - + - + /> - + /> - + diff --git a/modules/backend/widgets/mediamanager/partials/_filters.htm b/modules/backend/widgets/mediamanager/partials/_filters.htm new file mode 100644 index 000000000..ded01d797 --- /dev/null +++ b/modules/backend/widgets/mediamanager/partials/_filters.htm @@ -0,0 +1,39 @@ +

+ + \ No newline at end of file diff --git a/modules/cms/widgets/mediamanager/partials/_folder-path.htm b/modules/backend/widgets/mediamanager/partials/_folder-path.htm similarity index 84% rename from modules/cms/widgets/mediamanager/partials/_folder-path.htm rename to modules/backend/widgets/mediamanager/partials/_folder-path.htm index ab7641534..b3ea29708 100644 --- a/modules/cms/widgets/mediamanager/partials/_folder-path.htm +++ b/modules/backend/widgets/mediamanager/partials/_folder-path.htm @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/modules/cms/widgets/mediamanager/partials/_folder-toolbar.htm b/modules/backend/widgets/mediamanager/partials/_folder-toolbar.htm similarity index 100% rename from modules/cms/widgets/mediamanager/partials/_folder-toolbar.htm rename to modules/backend/widgets/mediamanager/partials/_folder-toolbar.htm diff --git a/modules/cms/widgets/mediamanager/partials/_generic-list.htm b/modules/backend/widgets/mediamanager/partials/_generic-list.htm similarity index 91% rename from modules/cms/widgets/mediamanager/partials/_generic-list.htm rename to modules/backend/widgets/mediamanager/partials/_generic-list.htm index 9931764b1..8525fb462 100644 --- a/modules/cms/widgets/mediamanager/partials/_generic-list.htm +++ b/modules/backend/widgets/mediamanager/partials/_generic-list.htm @@ -10,7 +10,7 @@
-

+

@@ -54,7 +54,7 @@
  • - +
  • \ No newline at end of file diff --git a/modules/cms/widgets/mediamanager/partials/_image-crop-popup-body.htm b/modules/backend/widgets/mediamanager/partials/_image-crop-popup-body.htm similarity index 94% rename from modules/cms/widgets/mediamanager/partials/_image-crop-popup-body.htm rename to modules/backend/widgets/mediamanager/partials/_image-crop-popup-body.htm index 17a736a90..9771480bd 100644 --- a/modules/cms/widgets/mediamanager/partials/_image-crop-popup-body.htm +++ b/modules/backend/widgets/mediamanager/partials/_image-crop-popup-body.htm @@ -13,7 +13,7 @@ type="button" data-command="insert" class="btn btn-primary"> - + - +