DokuWiki

It's better when it's simple

User Tools

Site Tools


Sidebar

Translations of this page?:

Learn about DokuWiki

Advanced Use

Corporate Use

Our Community


Follow us on Facebook, Twitter and other social networks.

devel:ideas:pluginmanager

Plugin Manager Rewrite

This idea has been implemented

The rewrite of DokuWiki's Plugin Manager plugin was part of Google Summer of Code 2011 with Piyush MishraPiyush Mishra
piyushmishra

as developer and Håkan SandellHåkanS
HakanS

as mentor.

Summary: Currently we have already a plugin repository at plugins but this repository can't be browsed from the admin area of individual installations like this is possible with Wordpress. This idea is about improving the plugin manager that can already install plugins from a download URL to use the repository at dokuwiki.org.

Links

Todo

Things to do besides https://github.com/ofpiyush/dokuwiki-extension-manager/issues

Needed before merge:

  • Needs two default icons/pics for plugins and templates
  • CSS/js positioning and color of floating info box not finished

Nice to have:

  • Give user feedback about why some actions are missing (i.e. download url is missing)
  • Show compatibility info in a cleaver way (current solution commented out, users didn't like it)
  • Decide how to deal with starting disabled plugins versus showing info with getInfo()
  • Improve offline support
  • Caching of “browse all” page
  • Refactor translation strings to minimize translation effort
  • Support RTL
  • Add a easy way to fix dependency issues. Action button in the info message? The action exists but the UI where too cluttered with an additional download button.
  • “Download as disabled” was removed to avoid cuttering the UI. Maybe it should be a config option?
  • Support for example content (pages) in to data dir

General Features

  1. Provide overview. List installed plugins AND templates with (a typical installation have 13 plugins, max known 136):
    • link to homepage
    • enabled/disabled status
    • update status by comparing installed version with lastupdate in meta data (see below)
    • compatibility status
    • maybe add TOC for wikis with a lot of plugins
    • list tags
  2. Display detailed information. Show all available information
    • from installed files: version, author, details, feedback/discussion
    • from repository API: similar plugins, more by same author etc
    • from plugin manager data: install date, enabled/disabled, compatibility which version of Dokuwiki, conflicts with other plugins, list required plugins
  3. Manage plugins/templates
    • Install, by browsing repository, or using URL textbox or upload a file (for wiki's with restrictive firewalls). For templates a “browse by screenshot” would be cool
    • Enable/disable all or a single plugin (Template special handling: one and only one template must be used at a time)
    • Uninstall (delete)
    • Update. When updating never delete files (A plugin might have user created files. Example: the dw2pdf plugin has a folder where users can install custom PDF templates. You wouldn't want to delete them on an upgrade.)
  4. should handle wikis without internet access

Today bundled plugins are shown in light red background, a signal not obvious to a new admin, which should be changed to something else. A bonus feature where if the plugin manager was compatible/aware of Wiki Farms with DokuWiki

Plugin/Template Meta Data

The plugin manger should get info from dokuwiki.org, where the Repository Plugin exposes available plugins and templates as an XML API. This API was exclusively written for this project and is never used (yet) and might need adjustment. For example there is no caching currently.

Security/Trust

This is some thoughts about security, none of them implemented Oct-2012.

  • How do people know what they download?
  • Maybe a config option to always install plugins as disabled
  • Maybe creating a web of trust by having trusted people (splitbrain, chimeric, Chris-S, foosel, …) who then can examine code by others and trust them?
  • Should we sign download URLs? Or maybe just servers (to make autoupdating github links easier)
  • Add code review before installing. Eg. download and extract to tmp, let user view the code before install
  • There should be more security warning levels, at least one that gives a warning but keeps the plugin visible. Used for “Don't use this plugin in public wikis”

Compatibility

  • It would be nice with a “I've tested this in my installation” button that could update compatibility information at DokuWiki.org

Plugin Package Install

Today plugin developers can package more than one plugin into a single zip and it's handled by the plugin/extension manager. However it would be useful to be able to install several plugins by supplying some sort of metadata file. Imagine using the URL from

mybestplugins
<pkg>
  <plugin>data</plugin>
  <plugin>sqlite</plugin>
  <template>artic</template>
</pkg>

this would be handy in the “Solutions namespace”. Problems to solve include handling updates and traceability.

devel/ideas/pluginmanager.txt · Last modified: 2015-02-12 11:58 by andi