diff --git a/admin.php b/admin.php index 3802318e..4b95be8b 100644 --- a/admin.php +++ b/admin.php @@ -130,8 +130,9 @@ class AdminPlugin extends Plugin // Make local copy of POST. $post = !empty($_POST) ? $_POST : array(); + // Handle tasks. - $task = !empty($post['task']) ? $post['task'] : $this->uri->param('task'); + $this->admin->task = $task = !empty($post['task']) ? $post['task'] : $this->uri->param('task'); if ($task) { require_once __DIR__ . '/classes/controller.php'; $controller = new AdminController($this->grav, $this->template, $task, $this->route, $post); @@ -173,7 +174,13 @@ class AdminPlugin extends Plugin $theme_url = $this->config->get('system.base_url_relative') . '/user/plugins/admin/themes/'.$this->theme; $twig = $this->grav['twig']; - $twig->template = $this->template . '.html.twig'; + // Dynamic type support + $format = $this->uri->extension(); + $ext = '.' . ($format ? $format : 'html') . TWIG_EXT; + + // \Tracy\Debugger::dump($this->admin); + + $twig->template = $this->template . $ext; $twig->twig_vars['location'] = $this->template; $twig->twig_vars['base_url_relative'] .= ($twig->twig_vars['base_url_relative'] != '/' ? '/' : '') . trim($this->config->get('plugins.admin.route'), '/'); diff --git a/classes/controller.php b/classes/controller.php index dd966184..e9ee4ec2 100644 --- a/classes/controller.php +++ b/classes/controller.php @@ -137,6 +137,19 @@ class AdminController return true; } + protected function taskListmedia() + { + $page = $this->admin->page(true); + $media_list = array(); + + foreach ($page->media()->all() as $name=> $media) { + $media_list[$name] = ['url'=>$media->url(),'size'=>$media->get('size')]; + } + $this->admin->media = $media_list; + + return true; + } + /** * Enable plugin. * diff --git a/pages/admin/media.md b/pages/admin/media.md new file mode 100644 index 00000000..c0e358b8 --- /dev/null +++ b/pages/admin/media.md @@ -0,0 +1,7 @@ +--- +title: Media + +access: + admin.pages: true + admin.super: true +--- diff --git a/themes/grav/templates/media.json.twig b/themes/grav/templates/media.json.twig new file mode 100644 index 00000000..706705f4 --- /dev/null +++ b/themes/grav/templates/media.json.twig @@ -0,0 +1,7 @@ +{% if admin.task == 'listmedia' %} +{{ admin.media|json_encode }} +{% elseif admin.task == 'delmedia' %} +deleted! +{% elseif admin.task == 'addmedia' %} +added! +{% endif %} diff --git a/themes/grav/templates/pages.html.twig b/themes/grav/templates/pages.html.twig index 08a2ef77..491ed27d 100644 --- a/themes/grav/templates/pages.html.twig +++ b/themes/grav/templates/pages.html.twig @@ -94,7 +94,7 @@ {% if mode == 'new' %} {% include 'partials/blueprints-new.html.twig' with { blueprints: admin.blueprints('pages/page'), data: context } %} {% elseif mode == 'edit' %} -