Call onAdminTemplateNavPluginHook to provide plugins the ability to populate plugins_hooked_nav

Example event handling:

    public function onAdminTemplateNavPluginHook()
    {
        $this->grav['twig']->plugins_hooked_nav['PLUGIN_DATA.DATA'] =
['route' => 'data', 'icon' => 'fa-file-text'];
    }
This commit is contained in:
Flavio Copes
2015-09-07 11:48:42 +02:00
parent 921fb71dbc
commit 5658bad347
2 changed files with 12 additions and 0 deletions

View File

@@ -223,6 +223,9 @@ class AdminPlugin extends Plugin
$twig->twig_vars['base_path'] = GRAV_ROOT; $twig->twig_vars['base_path'] = GRAV_ROOT;
$twig->twig_vars['admin'] = $this->admin; $twig->twig_vars['admin'] = $this->admin;
// Gather Plugin-hooked nav items
$this->grav->fireEvent('onAdminTemplateNavPluginHook');
switch ($this->template) { switch ($this->template) {
case 'dashboard': case 'dashboard':
$twig->twig_vars['popularity'] = $this->popularity; $twig->twig_vars['popularity'] = $this->popularity;

View File

@@ -31,6 +31,15 @@
</span> </span>
</a> </a>
</li> </li>
{% if grav.twig.plugins_hooked_nav %}
{% for label, item in grav.twig.plugins_hooked_nav %}
<li class="{{ (location == item.route) ? 'selected' : '' }}">
<a href="{{ base_url_relative }}/{{ item.route }}">
<i class="fa fa-fw {{ item.icon }}"></i> {{ label|tu }}
</a>
</li>
{% endfor %}
{% endif %}
<li class="{{ (location == 'plugins') ? 'selected' : '' }}"> <li class="{{ (location == 'plugins') ? 'selected' : '' }}">
<a href="{{ base_url_relative }}/plugins"> <a href="{{ base_url_relative }}/plugins">
<i class="fa fa-fw fa-plug"></i> {{ "PLUGIN_ADMIN.PLUGINS"|tu }} <i class="fa fa-fw fa-plug"></i> {{ "PLUGIN_ADMIN.PLUGINS"|tu }}