diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index d8bdf23..aacb4da 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -90,16 +90,4 @@ return [ ], ], ], - '^/news/analysis(\?.*$|$)' => [ - [ - 'dest' => '\Modules\News\Controller\BackendController:viewNewsAnalysis', - 'verb' => RouteVerb::GET, - 'active' => true, - 'permission' => [ - 'module' => BackendController::NAME, - 'type' => PermissionType::MODIFY, - 'state' => PermissionCategory::ANALYSIS, - ], - ], - ], ]; diff --git a/Controller/BackendController.php b/Controller/BackendController.php index e4e44da..2763e02 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -59,7 +59,7 @@ final class BackendController extends Controller implements DashboardElementInte $view->setTemplate('/Modules/News/Theme/Backend/news-dashboard'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response); - $mapperQuery = NewsArticleMapper::getAll() + $view->data['news'] = NewsArticleMapper::getAll() ->with('createdBy') ->with('tags') ->with('tags/title') @@ -68,32 +68,16 @@ final class BackendController extends Controller implements DashboardElementInte ->where('language', $response->header->l11n->language) ->where('tags/title/language', $response->header->l11n->language) ->sort('publish', OrderType::DESC) - ->limit(25); - - /** @var \Modules\News\Models\NewsArticle[] $objs */ - $objs = []; - if ($request->getData('ptype') === 'p') { - /** @var \Modules\News\Models\NewsArticle[] $objs */ - $objs = $mapperQuery->where('id', $request->getDataInt('offset') ?? 0, '<') - ->execute(); - - $view->data['news'] = $objs; - } elseif ($request->getData('ptype') === 'n') { - /** @var \Modules\News\Models\NewsArticle[] $objs */ - $objs = $mapperQuery->where('id', $request->getDataInt('offset') ?? 0, '>') - ->execute(); - - $view->data['news'] = $objs; - } else { - /** @var \Modules\News\Models\NewsArticle[] $objs */ - $objs = $mapperQuery->where('id', 0, '>') - ->execute(); - - $view->data['news'] = $objs; - } + ->limit(25) + ->paginate( + 'id', + $request->getData('ptype'), + $request->getDataInt('offset') + ) + ->executeGetArray(); $ids = []; - foreach ($objs as $news) { + foreach ($view->data['news'] as $news) { $ids[] = $news->id; } @@ -180,6 +164,14 @@ final class BackendController extends Controller implements DashboardElementInte ) { $view->setTemplate('/Web/Backend/Error/403_inline'); $response->header->status = RequestStatusCode::R_403; + + return $view; + } + + if ($article->id === 0) { + $view->setTemplate('/Web/Backend/Error/404'); + $response->header->status = RequestStatusCode::R_404; + return $view; } @@ -254,7 +246,7 @@ final class BackendController extends Controller implements DashboardElementInte $view->setTemplate('/Modules/News/Theme/Backend/news-archive'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response); - $mapperQuery = NewsArticleMapper::getAll() + $view->data['news'] = NewsArticleMapper::getAll() ->with('createdBy') ->with('tags') ->with('tags/title') @@ -262,18 +254,13 @@ final class BackendController extends Controller implements DashboardElementInte ->where('publish', new \DateTime('now'), '<=') ->where('tags/title/language', $response->header->l11n->language) ->sort('publish', OrderType::DESC) - ->limit(25); - - if ($request->getData('ptype') === 'p') { - $view->data['news'] = $mapperQuery->where('id', $request->getDataInt('offset') ?? 0, '<') - ->execute(); - } elseif ($request->getData('ptype') === 'n') { - $view->data['news'] = $mapperQuery->where('id', $request->getDataInt('offset') ?? 0, '>') - ->execute(); - } else { - $view->data['news'] = $mapperQuery->where('id', 0, '>') - ->execute(); - } + ->limit(25) + ->paginate( + 'id', + $request->getData('ptype'), + $request->getDataInt('offset') + ) + ->executeGetArray(); return $view; } @@ -297,13 +284,15 @@ final class BackendController extends Controller implements DashboardElementInte $view->setTemplate('/Modules/News/Theme/Backend/news-draft'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response); - if ($request->getData('ptype') === 'p') { - $view->data['news'] = NewsArticleMapper::getAll()->where('id', $request->getDataInt('offset') ?? 0, '<')->where('status', NewsStatus::DRAFT)->limit(25)->executeGetArray(); - } elseif ($request->getData('ptype') === 'n') { - $view->data['news'] = NewsArticleMapper::getAll()->where('id', $request->getDataInt('offset') ?? 0, '>')->where('status', NewsStatus::DRAFT)->limit(25)->executeGetArray(); - } else { - $view->data['news'] = NewsArticleMapper::getAll()->where('id', 0, '>')->where('status', NewsStatus::DRAFT)->limit(25)->executeGetArray(); - } + $view->data['news'] = NewsArticleMapper::getAll() + ->where('status', NewsStatus::DRAFT) + ->limit(25) + ->paginate( + 'id', + $request->getData('ptype'), + $request->getDataInt('offset') + ) + ->executeGetArray(); return $view; } diff --git a/Theme/Backend/news-create.tpl.php b/Theme/Backend/news-create.tpl.php index 52f422d..4b97b5b 100755 --- a/Theme/Backend/news-create.tpl.php +++ b/Theme/Backend/news-create.tpl.php @@ -36,13 +36,13 @@ echo $this->data['nav']->render(); ?> - = $this->getData('editor')->render('iNews'); ?> + = $this->data['editor']->render('iNews'); ?> - = $this->getData('editor')->getData('text')->render('iNews', 'plain', 'docForm', $news->plain, $news->content); ?> + = $this->data['editor']->getData('text')->render('iNews', 'plain', 'docForm', $news->plain, $news->content); ?>