plugins.php 1st calls retrieve_plugin_list() which calls the following sql:
SELECT directory FROM plugin_config ORDER BY name
I only see one place where entries are added to the plugin_config table and that is in api_plugin_install(). api_plugin_install() is only called from cacti/plugins.php and is initiated from a web request which should include mode and id. id being the name of the plugin and mode being install, uninstall, enable, etc.
cacti/plugins.php includes some links for installing, uninstalling etc. however those links are in a foreach($plugins) loop and the list of plugins is built from plugin_config which is built from api_plugin_install... so I appear to be stuck in an evil loop.
Additionally, the existance of plugin_<plugin_name>_install() in setup.php will cause the plugin to not be available at all as is the case with aggregate, do to what looks like this line in the api_plugin_hook_function method:
Code: Select all
if (function_exists($function) && !function_exists('plugin_' . $pname . '_install') && !in_array($pname, $p)) {
Thanks,
Billy