Project Equinox
The new word in social content management

Equinox's management, installers and configuratiaon managers are getting a facelift

Posts in This forum
OzzyD said on 16:46:14 19-Mar-2014

Anyone who's ever tried to use Equinox's management and configuration systems, which will be rare as the technology is so new that virtually no plugins at the moment use it, would realise that the code is a bit of a mess. This part of the system still resembles the way index and prerunner files were treated a long time before version 0.6's implementations of new code.

In short and eventually, plans are in place to make the plugin system a little bit more robust and then to copy it into parts of the system, like the admin sections, configuration and management consoles, so that the standard is uniform throughout.

In the meantime, a few alterations worthy of note have taken place on the configuration management system.

Two lines of code, which bear resemblance to

$this->menu->add_submenu_item("Management", "internal-name", "External Name", "link/to/code", FALSE, FALSE);


and

$this->plugins->attach("management")->add("Internal_Name", 
    array("Name" => "External Name",
                                    "Version" => "Version",
                                    "Creator" => "Name",
                                    "Comments" => "",
                                    "Menu" => array(
                                        "Name" => "External Name",
                                        "Desc" => "Description",
                                        "Link" => "link/to/code/"
                                    )
                                ),

    "/link/to/code");

could be found lurking at the bottom of index.php files the entire management system over.

The problem with this dilema is caused by the idea that the menu produces links from the add_submenu_item(...) function line, whilst the main body of the page produces a link from the "Menu" item in the management array.

The first tweak is to simply remove the add_submenu_item(...) line from the top of all index.php files inside management plugin directories. In turn, the management prerunner itself now runs this line, but it generates the links and text by loading all the plugins, looping through the list of registered plugins and reading off the "Menu" item in the array.

Incidentally, there is no discernable code that reads any of the other tags outside of the "Menu" link within the management suite. While it could be possible that the depmod plugin reads them and other plugins or modules relying on UTH, it does look like superfluous code

On this note, additional changes aside from what is stated above include:

  1. The management plugin code will be refactored to be in keeping with the new Equinox plugin standard.

  2. The management plugin code will be altered to work in the same way as the plugins system code. Such a change will mean all management plugins will have a class <plugin_name> { }, they will probably extend a base code in due time and will be in a management namespace to avoid naming conflicts

  3. In due time, management code will be stored inside the plugin class of a particular plugin under a method call of manage(), configure() or install() depending on the operation. This will overrule a management class needing a prerunner() method

  4. In due time, the item denoting a plugin requiring a management console will be culled. A class's index() method will state whether its plugin needs or has a manage(), configure() or install() method ONLY depending on its nature. This will overrule a management class requiring an index() method, ergo removing unneeded classes and ultimately overruling point 2

  5. Subject to this change, the same will be rolled out on multiple key plugins for install() methods


This could pose a few problems within the core system itself. Since the core system has no need for a plugin it would not have housing for a core installer. A workaround would be to store the installer inside the system class itself and as it's only needed if the system is used prior to any formal setup, load it as an external include file when it does so.

Legacy compliance will be kept for the plugin manager for the management suite in keeping with the plugin system as it is well known and documented that certain management features around Equinox work irrespective of any single plugin.

I hope this makes sense and I will keep people posted throughout this change

About

Information will appear here

Philosophy

Information will appear here

Contact

Information will appear here

Project Equinox The new word in social content management