diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index ce789cd..e6dde8e 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -39,6 +39,17 @@ return [ ], ], ], + '^.*/news/draft/list.*$' => [ + [ + 'dest' => '\Modules\News\Controller\BackendController:viewNewsDraftList', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => BackendController::MODULE_NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionState::NEWS, + ], + ], + ], '^.*/news/create.*$' => [ [ 'dest' => '\Modules\Editor\Controller\BackendController:setUpEditorEditor', diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 9cb66c4..47d499f 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -60,18 +60,21 @@ final class BackendController extends Controller implements DashboardElementInte $view->setData('news', NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage()) ::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class]) + ::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=') ::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25) ); } elseif ($request->getData('ptype') === '+') { $view->setData('news', NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage()) ::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class]) + ::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=') ::getAfterPivot((int) ($request->getData('id') ?? 0), null, 25) ); } else { $view->setData('news', NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage()) ::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class]) + ::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=') ::getAfterPivot(0, null, 25) ); } @@ -88,6 +91,7 @@ final class BackendController extends Controller implements DashboardElementInte $view->setTemplate('/Modules/News/Theme/Backend/dashboard-news'); $news = NewsArticleMapper::withConditional('language', $response->getHeader()->getL11n()->getLanguage()) + ::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=') ::getNewest(5); $view->addData('news', $news); @@ -130,9 +134,6 @@ final class BackendController extends Controller implements DashboardElementInte PermissionType::MODIFY, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::NEWS, $article->getId()) ); - $t = $this->app->accountManager->get($accountId)->hasPermission( - PermissionType::MODIFY, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::NEWS, $article->getId()); - return $view; } @@ -155,6 +156,46 @@ final class BackendController extends Controller implements DashboardElementInte $view->setTemplate('/Modules/News/Theme/Backend/news-archive'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response)); + if ($request->getData('ptype') === '-') { + $view->setData('news', + NewsArticleMapper::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class]) + ::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=') + ::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25) + ); + } elseif ($request->getData('ptype') === '+') { + $view->setData('news', + NewsArticleMapper::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class]) + ::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=') + ::getAfterPivot((int) ($request->getData('id') ?? 0), null, 25) + ); + } else { + $view->setData('news', NewsArticleMapper::withConditional('status', NewsStatus::VISIBLE, [NewsArticle::class]) + ::withConditional('publish', new \DateTime('now'), [NewsArticle::class], '<=') + ::getAfterPivot(0, null, 25)); + } + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewNewsDraftList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + + $view->setTemplate('/Modules/News/Theme/Backend/news-draft'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response)); + if ($request->getData('ptype') === '-') { $view->setData('news', NewsArticleMapper::getBeforePivot((int) ($request->getData('id') ?? 0), null, 25) diff --git a/Theme/Backend/news-draft.tpl.php b/Theme/Backend/news-draft.tpl.php new file mode 100644 index 0000000..4e16001 --- /dev/null +++ b/Theme/Backend/news-draft.tpl.php @@ -0,0 +1,61 @@ +getData('news') ?? []; + +$previous = empty($newsList) ? '{/prefix}news/draft/list' : '{/prefix}news/draft/list?{?}&id=' . \reset($newsList)->getId() . '&ptype=-'; +$next = empty($newsList) ? '{/prefix}news/draft/list' : '{/prefix}news/draft/list?{?}&id=' . \end($newsList)->getId() . '&ptype=+'; + +echo $this->getData('nav')->render(); ?> + +
| = $this->getHtml('Type') ?> + | = $this->getHtml('Title') ?> + | = $this->getHtml('Author') ?> + | = $this->getHtml('Date') ?> + |
| = $this->getHtml('TYPE' . $news->getType()) ?> + | = $this->printHtml($news->getTitle()); ?> + | = $this->printHtml($news->getCreatedBy()->getName1()); ?> + | = $this->printHtml($news->getPublish()->format('Y-m-d')); ?> + + + |
| = $this->getHtml('Empty', '0', '0'); ?> + + | |||