diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index b414352..ce789cd 100644 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -59,4 +59,24 @@ return [ ], ], ], + '^.*/news/edit.*$' => [ + [ + 'dest' => '\Modules\Editor\Controller\BackendController:setUpEditorEditor', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => BackendController::MODULE_NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionState::NEWS, + ], + ], + [ + 'dest' => '\Modules\News\Controller\BackendController:viewNewsEdit', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => BackendController::MODULE_NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionState::NEWS, + ], + ], + ], ]; diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 0ac8310..73faabf 100644 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -183,4 +183,34 @@ final class BackendController extends Controller implements DashboardElementInte 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 viewNewsEdit(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + + $view->setTemplate('/Modules/News/Theme/Backend/news-create'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000701001, $request, $response)); + + $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response); + $view->addData('editor', $editor); + + $accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response); + $view->addData('accGrpSelector', $accGrpSelector); + + $view->addData('news', NewsArticleMapper::get((int) ($request->getData('id') ?? 0))); + + return $view; + } } diff --git a/Theme/Backend/news-create.tpl.php b/Theme/Backend/news-create.tpl.php index 11c0578..12ff374 100644 --- a/Theme/Backend/news-create.tpl.php +++ b/Theme/Backend/news-create.tpl.php @@ -12,9 +12,15 @@ */ declare(strict_types=1); -/** - * @var \phpOMS\Views\View $this - */ +use Modules\News\Models\NullNewsArticle; +use Modules\News\Models\NewsStatus; +use phpOMS\Uri\UriFactory; +use Modules\News\Models\NewsType; + +/** @var \Modules\News\Models\NewsArticle $news */ +$news = $this->getData('news') ?? new NullNewsArticle(); + +/** @var \phpOMS\Views\View $this */ echo $this->getData('nav')->render(); ?>
@@ -22,7 +28,7 @@ echo $this->getData('nav')->render(); ?>
- +
@@ -40,28 +46,35 @@ echo $this->getData('nav')->render(); ?>
-
getHtml('Status'); ?>
-
-
+ +
getHtml('Status'); ?>
+
- + +
+
+
+
- + + getHtml('Delete', '0', '0'); ?> + + + - - +
- -
+
+
getHtml('Type'); ?>
@@ -69,19 +82,19 @@ echo $this->getData('nav')->render(); ?>