diff --git a/Controller.php b/Controller.php index 8f0bd4f..fba2084 100644 --- a/Controller.php +++ b/Controller.php @@ -23,6 +23,7 @@ use phpOMS\Utils\Parser\Markdown\Markdown; use phpOMS\Module\ModuleAbstract; use phpOMS\Module\WebInterface; use phpOMS\Views\View; +use phpOMS\Message\Http\RequestStatusCode; /** * Help class. @@ -152,8 +153,30 @@ final class Controller extends ModuleAbstract implements WebInterface */ public function viewHelpModule(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable { + $active = $this->app->moduleManager->getActiveModules(); + + if ($request->getData('id') === null || !isset($active[$request->getData('id')])) { + return $this->viewHelpModuleList(); + } + $view = new View($this->app, $request, $response); + + if ($request->getData('page') === 'table-of-contencts' || $request->getData('page') === null) { + $path = \realpath(__DIR__ . '/../' . $request->getData('id') . '/Docs/Help/en/table_of_contents.md'); + } else { + $path = \realpath(__DIR__ . '/../' . $request->getData('id') . '/Docs/Help/en/' . $request->getData('page') . '.md'); + } + + if ($path === false) { + $view->setTemplate('/Web/Backend/Error/403_inline'); + $response->getHeader()->setStatusCode(RequestStatusCode::R_403); + return $view; + } + + $markdown = Markdown::parse(\file_get_contents($path)); + $view->setTemplate('/Modules/Help/Theme/Backend/help-module'); + $view->setData('content', $markdown); return $view; } diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php new file mode 100644 index 0000000..4101fa3 --- /dev/null +++ b/Theme/Backend/Lang/en.lang.php @@ -0,0 +1,16 @@ + [ + 'Modules' => 'Modules', + 'Name' => 'Name', +]]; diff --git a/Theme/Backend/help-module-list.tpl.php b/Theme/Backend/help-module-list.tpl.php index e69de29..55e5de1 100644 --- a/Theme/Backend/help-module-list.tpl.php +++ b/Theme/Backend/help-module-list.tpl.php @@ -0,0 +1,52 @@ +app->moduleManager->getInstalledModules(); +?> + +
+
+
+ + + + + + + + $module) : + if ((\realpath(__DIR__ . '/../../../' . $module['directory'] . '/Docs/Help/en/table_of_contents.md')) === false) { + continue; + } + + $count++; + $url = \phpOMS\Uri\UriFactory::build( + '/{/lang}/backend/help/module/single?id={$module}', + ['$module' => $module['name']['internal']] + ); ?> + +
getHtml('Modules') ?>
getHtml('Name') ?> +
+
printHtml($module['name']['external']); ?> + + +
getHtml('Empty', 0, 0); ?> + +
+
+
+
\ No newline at end of file diff --git a/Theme/Backend/help-module.tpl.php b/Theme/Backend/help-module.tpl.php index 5d2c16a..7cfa9cd 100644 --- a/Theme/Backend/help-module.tpl.php +++ b/Theme/Backend/help-module.tpl.php @@ -3,7 +3,7 @@
- getData('markdown'); ?> + getData('content'); ?>