From 4dd337f66035b4a10fde2c9c674184413e40a35b Mon Sep 17 00:00:00 2001 From: Stavros Papadakis Date: Wed, 12 Oct 2016 14:41:50 +0300 Subject: [PATCH] Admin subsystem skeleton This is the first release of the administration module to support administrative functions. Changed main layout to add admin navigation. Added /admin route for "admin home" --- config/app.config.php | 1 + config/settings/nav.global.php | 6 +++ module/admin/README.md | 20 ++++++++ module/admin/bootstrap.php | 46 +++++++++++++++++++ module/admin/src/Action/Index.php | 38 +++++++++++++++ module/admin/templates/admin/index.twig | 19 ++++++++ .../templates/navigation/main.twig | 24 +++++++--- 7 files changed, 147 insertions(+), 7 deletions(-) create mode 100644 module/admin/README.md create mode 100644 module/admin/bootstrap.php create mode 100644 module/admin/src/Action/Index.php create mode 100644 module/admin/templates/admin/index.twig diff --git a/config/app.config.php b/config/app.config.php index 7f82d2b..981b47f 100644 --- a/config/app.config.php +++ b/config/app.config.php @@ -29,6 +29,7 @@ return [ 'module/university_form/bootstrap.php', 'module/teacher_form/bootstrap.php', 'module/enable_db_login/bootstrap.php', + 'module/admin/bootstrap.php', ], 'cache_config' => 'data/cache/config/settings.php', ]; diff --git a/config/settings/nav.global.php b/config/settings/nav.global.php index e00917b..c8b514b 100644 --- a/config/settings/nav.global.php +++ b/config/settings/nav.global.php @@ -79,5 +79,11 @@ return [ ], ], + 'admin' => [ + 'adminhome' => [ + 'label' => 'Αρχική σελίδα διαχειριστή', + 'route' => 'admin', + ], + ] ], ]; diff --git a/module/admin/README.md b/module/admin/README.md new file mode 100644 index 0000000..addcf05 --- /dev/null +++ b/module/admin/README.md @@ -0,0 +1,20 @@ +# Υποσύστημα διαχειριστή + +Παρέχει πρόσβαση σε διαχειριστικές λειτουργίες. Εφόσον ο χρήστης πιστοποιείται +με ρόλο admin εμφανίζεται το μενού διαχειριστικών λειτουργιών. + +## Routes + +Διαθέσιμα routes (paths) και λειτουργίες. + +- admin (/admin): αρχική σελίδα διαχειριστή + +## Οδηγίες + +Για να είναι προσβάσιμο, πρέπει: + +- να προσθέσετε την παρακάτω γραμμή στο `acl.global.php` ή `acl.local.php`, +στο acl.guards.routes +``` + ['/admin', ['admin'], ['get']], +``` diff --git a/module/admin/bootstrap.php b/module/admin/bootstrap.php new file mode 100644 index 0000000..eeb9637 --- /dev/null +++ b/module/admin/bootstrap.php @@ -0,0 +1,46 @@ +getContainer(); + $events = $container['events']; + + $events('on', 'app.autoload', function ($autoloader) { + $autoloader->addPsr4('GrEduLabs\\Admin\\', __DIR__ . '/src/'); + }); + + $events('on', 'app.services', function (Container $container) { +// $nav = $container['settings']->get('navigation'); +// $nav['admin'] = [ +// 'adminhome' => [ +// 'label' => 'Διαχειριστής', +// 'route' => 'admin', +// 'icon' => 'user-secret', +// ], +// ]; +// $container['settings']->set('navigation', $nav); + + $container[GrEduLabs\Admin\Action\Index::class] = function ($c) { + return new GrEduLabs\Admin\Action\Index($c['view']); + }; + }); + + $events('on', 'app.bootstrap', function (App $app, Container $c) { + $view = $c->get('view'); + $view->getEnvironment()->getLoader()->prependPath(__DIR__ . '/templates'); + $app->get('/admin', GrEduLabs\Admin\Action\Index::class) + ->setName('admin'); + }); +}; diff --git a/module/admin/src/Action/Index.php b/module/admin/src/Action/Index.php new file mode 100644 index 0000000..3bee08f --- /dev/null +++ b/module/admin/src/Action/Index.php @@ -0,0 +1,38 @@ +view = $view; + } + + public function __invoke(Request $req, Response $res) { + return $this->view->render($res, 'admin/index.twig'); + } + +} diff --git a/module/admin/templates/admin/index.twig b/module/admin/templates/admin/index.twig new file mode 100644 index 0000000..731cc00 --- /dev/null +++ b/module/admin/templates/admin/index.twig @@ -0,0 +1,19 @@ +{% extends "layout.twig" %} + +{% block content %} +
+
+
+

Σελίδα διαχειριστή

+
+
+

Διαθέσιμες διαχειριστικές λειτουργίες

+
+ +
+
+{% endblock %} diff --git a/module/application/templates/navigation/main.twig b/module/application/templates/navigation/main.twig index fe41fe8..c73b056 100644 --- a/module/application/templates/navigation/main.twig +++ b/module/application/templates/navigation/main.twig @@ -1,5 +1,5 @@ {% macro li(page) %} - +