DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:acmenu

This is an old revision of the document!


AcMenu Plugin

Compatible with DokuWiki

2017-02-19 "Frusterick Manners"

plugin An accordion menu for namespaces and relative pages.

Last updated on
2017-11-12
Provides
Syntax
Repository
Source

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

Tagged with menu, navigation

Notice

:!: The url to the repository is changed in https://bitbucket.org/tormec/acmenu/src. If already installed the plugin, in Extension Manager simply click on Re-install to update it.
Torpedo 2017-10-07 12:25

Description

AcMenu provides an accordion menu which lists the content of namespaces in a tree-like format. The tree is built starting from the namespace where the AcMenu's syntax lives till the very end namespace.

This plugin respects the ACL rules and, moreover, the sneaky_index and hidepages options that come with your DokuWiki configuration.

Installation

Install the plugin using the Plugin Manager and the download URL above, which points to latest version of the plugin. Refer to Plugins on how to install plugins manually.

Syntax

In the sidebar page, use the syntax:

<acmenu>

Examples

Just some screenshots to give you an overall idea of the final result.

Suppose you want to split your main wiki in two sub-wiki independent between them, as follows:

+--sidebar.txt
+--start.txt
+--branch-a
|  +--sidebar.txt
|  +--start.txt
|  +--products
|  |  +--start.txt
|  +--services
|  |  +--start.txt
|  +--private
|     +--start.txt
|     +--confidential.txt
+--branch-b
   +--sidebar.txt
   +--start.txt
   +--products
   |  +--start.txt
   +--services
   |  +--start.txt
   +--private
      +--start.txt
      +--confidential.txt

Than you can populate each sidebar.txt in the following manner:

  • in :sidebar.txt
    <acmenu>
  • in :branch-a:sidebar.txt
    [[..:start| Back to Main]]
    <acmenu>
  • in :branch-b:sidebar.txt
    [[..:start| Back to Main]]
    <acmenu>

When a visitor is in :start.txt, the plugin shows the complete namespace tree collapsed except the namespace in which the sidebar.txt with AcMenu's syntax it is. Only if the visitor's browser has JavaScript disabled all namespaces reveal their content so that it's possible to continue the navigation.

If the visitor decides to open any :branch-* or any its sub-namespace :branch-*:*, the AcMenu shows only the sidebar relative to the selected branch.

If the visitor is a guest and he doesn't have the permission to enter in any :branch-*:private area, you should set the appropriate rule in the ACL management. Furthermore you can hide to him the :branch-*:private namespace setting up the sneaky_index option in your Configuration Manager.

If the visitor is a user registered and has the permission to enter in any :branch-*:private area but not to see the :branch-*:confidential.txt page, you should set the appropriate rule in the ACL management.

Furthermore it's possible to hide all sidebar.txt page using the hidepages option in your Configuration Manager:

^:(?:.*sidebar)

Since this plugin uses cookies to remember the pages visited (they are automatically deleted as soon as the window browser is closed) if the visitor come back to :start.txt the branches and their sub-namespaces untoggled will remain so.

The order in which the directory tree is presented is the following:

  • first, folders from 0-9A-Za-z
  • then, files from 0-9A-Za-z

This means that, if the option useheading is enabled, it's possible to force the order of files using a progressive numeration in the first heading of each file.

Configuration and Settings

The navigation through namespaces and the links to the relative pages work as follows:

  • on namespace:
    • one click: shows/hides the relative content;
    • double click: opens the relative start page;
  • on page:
    • one click: opens the relative page.

Hide namespaces and pages

First, set the appropriate permissions in your ACL management. Then, use the options:

Troubleshooting

Symptom: AcMenu doesn't show/hide namespace's content.

Possible solution: be sure that JavaScript is enabled in your browser, otherwise all namespaces remain open showing their content.


Symptom: AcMenu doesn't keep untoggled any namepsace after have opened any link.

Possible solution: be sure that cookies are enabled on one's browser, otherwise AcMenu forgets the namespaces untoggled whenever a page is loaded.


Development

Known Bugs and Issues

Please, use the relative bug tracker or write here and then I will move there.
Torpedo 2017-03-09 16:32

ToDo/Wish List

Let me know what do you think about this plugin and how can I improve its functionality.
Torpedo 2017-03-09 16:33

I'd love to have the menu always stay open – any ideas? marwahaha 2017-06-21
The purpose of this plugin is to provide a menu whose items are shown or hidden at user discretion rather than offer a static menu.
For a menu that always stays open it's better to use plugins that create a list of pages belong to a given namespace.
Also notice that since this plugin i) create the menu in the sidebar, which doesn't offer much space in width-wise, and ii) it uses indentation to render nested namespaces, long menus or long names would be printed in a very ugly way. — Torpedo 2017-06-27 09:37
I really like this type of menu. Would it be possible to limit the menu generation to a namespace? for example by making <acmenu ns:ns1>; so it would be possible to refine the sidebar display, and to display the tree structure of a namespace even when we are in another namespace. — Alinea 2017-12-02 11:48
I've created an issue atAcMenu's repository. I will move the conversation there (no registration needed). — Torpedo 2017-12-02 17:15
plugin/acmenu.1512244082.txt.gz · Last modified: 2017-12-02 20:48 by torpedo

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki