@@ -14,10 +14,9 @@ if (!isset($success)) {
1414if (!isset($error)) {
1515 $error = '';
1616}
17- if (!isset($argUrl)) {
18- /** @var array{args: array{types: string}, opener_input_field: string} */
19- $argUrl = [];
20- }
17+
18+ /** @var array{args?: array{types: string}, opener_input_field?: string} $argUrl */
19+ $argUrl ??= [];
2120
2221$mediaMethod = rex_request('media_method', 'string');
2322
@@ -126,8 +125,45 @@ if (!empty($argUrl['args']['types'])) {
126125 echo rex_view::info(rex_i18n::msg('pool_file_filter') . ' <code>' . $argUrl['args']['types'] . '</code>');
127126}
128127
128+ $addon = rex_addon::require('mediapool');
129+
130+ // Add Filter to the Query
131+ $filter = [];
132+
133+ $mediaName = rex_request('media_name', 'string');
134+ if ('' != $mediaName) {
135+ $filter['term'] = $mediaName;
136+
137+ if ('global' != $addon->getConfig('searchmode', 'local') && 0 != $rexFileCategory) {
138+ $filter['category_id_path'] = $rexFileCategory;
139+ }
140+ } else {
141+ $filter['category_id'] = $rexFileCategory;
142+ }
143+
144+ if (isset($argUrl['args']['types']) && is_string($argUrl['args']['types'])) {
145+ $types = explode(',', $argUrl['args']['types']);
146+ $filter['types'] = $types;
147+ }
148+
149+ $context = new rex_context([
150+ 'page' => rex_be_controller::getCurrentPage(),
151+ 'rex_file_category' => $rexFileCategory,
152+ 'media_name' => $mediaName,
153+ ...$argUrl,
154+ ]);
155+ $pager = new rex_pager(rex_type::int($addon->getProperty('rows_per_page', 100)));
156+
157+ $items = rex_media_service::getList($filter, [], $pager);
158+
159+ $mediaFragment = new rex_fragment();
160+ $mediaFragment->setVar('pager', $pager);
161+ $mediaFragment->setVar('urlprovider', $context);
162+
163+ $panel = $mediaFragment->parse('core/navigations/pagination.php');
164+
129165// deletefilelist und cat change
130- $panel = '
166+ $panel . = '
131167<form action="' . rex_url::currentBackendPage() . '" method="post" enctype="multipart/form-data">
132168 <fieldset>
133169 ' . $csrf->getHiddenField() . '
@@ -222,34 +258,12 @@ if ($hasCategoryPerm) {
222258 ';
223259}
224260
225- $filter = [];
226-
227- $mediaName = rex_request('media_name', 'string');
228- if ('' != $mediaName) {
229- $filter['term'] = $mediaName;
230-
231- if ('global' != rex_addon::get('mediapool')->getConfig('searchmode', 'local') && 0 != $rexFileCategory) {
232- $filter['category_id_path'] = $rexFileCategory;
233- }
234- } else {
235- $filter['category_id'] = $rexFileCategory;
236- }
237-
238- if (isset($argUrl['args']['types']) && is_string($argUrl['args']['types'])) {
239- $types = explode(',', $argUrl['args']['types']);
240- $filter['types'] = $types;
241- }
242-
243261if (!rex_addon::get('media_manager')->isAvailable()) {
244262 $mediaManagerUrl = null;
245263} else {
246264 $mediaManagerUrl = [rex_media_manager::class, 'getUrl'];
247265}
248266
249- $pager = new rex_pager(5000);
250-
251- $items = rex_media_service::getList($filter, [], $pager);
252-
253267$panel .= '<tbody>';
254268
255269foreach ($items as $media) {
0 commit comments