From 75f9038c46f285fc41eb74d12ba57b38f7864665 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Mon, 17 Jul 2017 20:25:57 +0200 Subject: [PATCH] Prepare knowledgebase templates --- Admin/Install/Navigation.install.json | 17 +++- Admin/Routes/Web/Backend.php | 20 +++- Controller.php | 111 +++++++++++++++++++++ Models/NullWikiCategory.php | 32 ++++++ Models/NullWikiDoc.php | 32 ++++++ Theme/Backend/wiki-category-list.tpl.php | 49 +++++++++ Theme/Backend/wiki-category-single.tpl.php | 12 +++ Theme/Backend/wiki-doc-create.tpl.php | 0 Theme/Backend/wiki-doc.tpl.php | 22 ++++ 9 files changed, 290 insertions(+), 5 deletions(-) create mode 100644 Models/NullWikiCategory.php create mode 100644 Models/NullWikiDoc.php create mode 100644 Theme/Backend/wiki-category-list.tpl.php create mode 100644 Theme/Backend/wiki-category-single.tpl.php create mode 100644 Theme/Backend/wiki-doc-create.tpl.php create mode 100644 Theme/Backend/wiki-doc.tpl.php diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index c688152..6547ef1 100644 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -34,7 +34,22 @@ "type": 3, "subtype": 1, "name": "Create", - "uri": "{/base}/{/lang}/backend/wiki/create?{?}", + "uri": "{/base}/{/lang}/backend/wiki/doc/create?{?}", + "target": "self", + "icon": null, + "order": 5, + "from": "Knowledgebase", + "permission": null, + "parent": 1005901001, + "children": [] + }, + { + "id": 1005904001, + "pid": "0e47995e728ecc121561ee553b7be752ffebbaa7", + "type": 3, + "subtype": 1, + "name": "Categories", + "uri": "{/base}/{/lang}/backend/wiki/category/list?{?}", "target": "self", "icon": null, "order": 5, diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index da96952..0766b67 100644 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -15,21 +15,33 @@ return [ 'verb' => RouteVerb::GET, ], ], - '^.*/backend/wiki/category.*$' => [ + '^.*/backend/wiki/category/list.*$' => [ + [ + 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseCategoryList', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/wiki/category/single.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseCategory', 'verb' => RouteVerb::GET, ], ], - '^.*/backend/wiki/doc.*$' => [ + '^.*/backend/wiki/category/create.*$' => [ + [ + 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseCategoryCreate', + 'verb' => RouteVerb::GET, + ], + ], + '^.*/backend/wiki/doc/single.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseDoc', 'verb' => RouteVerb::GET, ], ], - '^.*/backend/wiki/create.*$' => [ + '^.*/backend/wiki/doc/create.*$' => [ [ - 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseCreate', + 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseDocCreate', 'verb' => RouteVerb::GET, ], ], diff --git a/Controller.php b/Controller.php index 6fd1ef0..a7e573a 100644 --- a/Controller.php +++ b/Controller.php @@ -24,6 +24,9 @@ use phpOMS\Views\View; use phpOMS\Asset\AssetType; use Modules\Knowledgebase\Models\WikiCategoryMapper; +use Modules\Knowledgebase\Models\NullWikiCategory; +use Modules\Knowledgebase\Models\WikiDocMapper; +use Modules\Knowledgebase\Models\NullWikiDoc; /** * Task class. @@ -108,4 +111,112 @@ class Controller extends ModuleAbstract implements WebInterface return $view; } + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewKnowledgebaseCategoryList(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-list'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); + + $list = WikiCategoryMapper::getAll(); + $view->setData('categories', $list); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewKnowledgebaseCategory(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-single'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); + + $category = WikiCategoryMapper::get((int) $request->getData('id')); + $view->setData('category', $category); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewKnowledgebaseCategoryCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-single'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); + + $view->setData('category', new NullWikiCategory()); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewKnowledgebaseDoc(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-single'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); + + $category = WikiDocMapper::get((int) $request->getData('id')); + $view->setData('category', $category); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewKnowledgebaseDocCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-single'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); + + $view->setData('category', new NullWikiDoc()); + + return $view; + } + } diff --git a/Models/NullWikiCategory.php b/Models/NullWikiCategory.php new file mode 100644 index 0000000..8015472 --- /dev/null +++ b/Models/NullWikiCategory.php @@ -0,0 +1,32 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +declare(strict_types=1); +namespace Modules\Knowledgebase\Models; + +/** + * Task class. + * + * @category Kanban + * @package Modules + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class NullWikiCategory extends WikiCategory +{ +} \ No newline at end of file diff --git a/Models/NullWikiDoc.php b/Models/NullWikiDoc.php new file mode 100644 index 0000000..be92a54 --- /dev/null +++ b/Models/NullWikiDoc.php @@ -0,0 +1,32 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +declare(strict_types=1); +namespace Modules\Knowledgebase\Models; + +/** + * Task class. + * + * @category Kanban + * @package Modules + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class NullWikiDoc extends WikiDoc +{ +} \ No newline at end of file diff --git a/Theme/Backend/wiki-category-list.tpl.php b/Theme/Backend/wiki-category-list.tpl.php new file mode 100644 index 0000000..f9c249f --- /dev/null +++ b/Theme/Backend/wiki-category-list.tpl.php @@ -0,0 +1,49 @@ + + * @author Dennis Eichhorn + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ + +$categories = $this->getData('categories'); + +/** + * @var \phpOMS\Views\View $this + */ +echo $this->getData('nav')->render(); +?> + +
+
+
+ + + + + + + $value) : $c++; + $url = \phpOMS\Uri\UriFactory::build('{/base}/{/lang}/backend/admin/account/settings?{?}&id=' . $value->getId()); ?> + +
getText('Groups'); ?>
getText('ID', 0, 0); ?> + getText('Name'); ?> +
+
getId(); ?> + getName(); ?> + + +
getText('Empty', 0, 0); ?> + +
+
+
+
\ No newline at end of file diff --git a/Theme/Backend/wiki-category-single.tpl.php b/Theme/Backend/wiki-category-single.tpl.php new file mode 100644 index 0000000..8407708 --- /dev/null +++ b/Theme/Backend/wiki-category-single.tpl.php @@ -0,0 +1,12 @@ +getData('nav')->render(); +?> + +
+
+ +
+
\ No newline at end of file diff --git a/Theme/Backend/wiki-doc-create.tpl.php b/Theme/Backend/wiki-doc-create.tpl.php new file mode 100644 index 0000000..e69de29 diff --git a/Theme/Backend/wiki-doc.tpl.php b/Theme/Backend/wiki-doc.tpl.php new file mode 100644 index 0000000..33de315 --- /dev/null +++ b/Theme/Backend/wiki-doc.tpl.php @@ -0,0 +1,22 @@ +getData('doc'); + +/** + * @var \phpOMS\Views\View $this + */ +echo $this->getData('nav')->render(); +?> + +
+
+
+

getTitle(); ?>

+
+
+ getDoc(); ?> +
+
+
+
+
\ No newline at end of file