[dokuwiki] extending the plugin manager

  • From: Andreas Gohr <andi@xxxxxxxxxxxxxx>
  • To: DokuWiki Mailinglist <dokuwiki@xxxxxxxxxxxxx>
  • Date: Sun, 30 Aug 2009 16:53:59 +0200

Hi list,

I wonder if someone would like to pick up the following task.

I want to have the plugin manager to be able to

1) download and install plugin archives that are created by github
tags (and others)
Problem: Automatically created downloads at Github contain some badly
named root directory, so this directory has to be renamed to the
correct name (but how to determine it?).

2) install new templates (and list existing templates)
Problem: There is no easy way to recognize if something is a template
or a plugin currently.

3) make plugin info handling a bit easier
Problem: When a plugin contains several components, each has it's own
getInfo() function that needs to be updated

All 3 tasks are related and would be solved by the same idea:

I propose to add a control file into the plugin/template folder
similar to what some plugin authors already use for solving the
getInfo() problem.

The file would be named 'plugin.desc' or 'template.desc' depending on
if it is a plugin or template -> solves problem 2

The contents would be simple text, parsable with conf2hash(). One key
would be the name of the plugin (called id below) -> solves problem 1

Here's an example:

id imageshack
author Andreas Gohr
email  andi@xxxxxxxxxxxxxx
date   2009-08-30
name   ImageShack Uploader
desc   Integrates uploading to ImageShack into the Media Manager
url    http://www.dokuwiki.org/plugin:imageshack

For supporting this without much change we could put the conf2hash
call into the plugin base class.

Of course the whole thing would need to be backward compatible. When
no *.desc file is found it is assumed to be a correctly packed plugin
with its own getInfo() method.

What do you guys think? Should be a nice sunday afternoon task ;-) Any
volunteers?

Andi

-- 
splitbrain.org
-- 
DokuWiki mailing list - more info at
http://wiki.splitbrain.org/wiki:mailinglist

Other related posts: