Let's have a plugin directory, somewhere like this: /usr/local/directadmin/plugins
And, inside this plugin directory, have a .conf file for each installed plugin.
Taking itron.conf:
name=Installatron
location=/usr/local/installatron
language=php
description=Installatron adds the ability to install a growing list of web-scripts at the click of a button.
'name' simply referrers to the plugins name.
'location' is the directory to which the plugin was installed.
'language' referrers to the language in which the plugin was written. (for execution purposes.)
'description' referrers to the description for the menu item.
As for the menu, I'm not exactly sure whether a "Plugins" page is needed for a list of all installed plugins, or whether each plugin should be integrated into the main DA menu. It works both ways. Personally, I like the integration method
But with integration, we have a problem: where will the plugin menu items be placed? should they just be appended to the end of the DA menu token? (Forgive me, I'm not sure how menus work in skins.)
As for the plugin page engine, 'CMD_PLUGIN' could work; calling 'CMD_PLUGIN?id=iTron' (or something similar) tells DA to look in /usr/local/installatron for a file called "loader" (or something similar). Then DA executes the "loader" file according to our 'language' conf value.
Another approach to the page system is your "files_plugins.conf" idea. This seems more flexible. So, in addition to the '/usr/local/directadmin/plugins/itron.conf' files, we also need a /usr/local/directadmin/plugins/itron.files (or similar) file. This .files file is as "1)" is in your post
Given the .files approach, I suppose we could substitute the above file-per-plugin approach with a single, "global" files_plugins.conf file in the plugins directory (or skins directory), but I wouldn't want one plugin to potentially screw-up others.
On Skinning. I'm all for some type of global skin situation. I've stated in pervious posts we need some kind of template file reusable by all skins, so skins need no mods, ever, to support any plugin. Previously I described a file as:
|HTM_USER_TOP|
|?TREE=...|
|OUTPUT|
|HTM_USER_BOTTOM|
Although I wish I could edit where the ... is
Good luck, John. I really hope this is implemented soon. Let me know if I can help in any way.
Cheers, Phi1.