Quote by: jmucchielloSuggestions:
We can probably get rid of the "search" tool. Is someone really going to install 51+ plugins? (It just takes up screen real estate.)
Ok, I'll look into this.
Quote by: jmucchiello
Are the X and Check icons links that enable/disable the plugin? Is there a tooltip for that: "Click to Enable" or "Click to Disable"?
Yes, that's the function of those buttons. And no, no tooltips (yet). In my defence, though, there is a "legend" above the search box
Quote by: jmucchielloThe "new plugin" section should have a third dependencies value: "Unknown" for plugins that don't have the "requires" info in their autoinstall.php. Currently the tooltip just says "N/A".
Yeah, I put the N/A there, couldn't think of any better words at the time.
Quote by: jmucchielloAdd a requirement type: "must load before" and "must load after" so that plugins can also handle load order dependencies on their own. See example below.
Imagine the socnet plugin has a function in its functions.inc file SOC_FooBar() and your plugin calls that function in its functions.inc outside of a function call. Your plugin must load after socnet. So in your requires section (or a separate array) you would have:
Text Formatted Code
$requires = array(
array( 'name' => 'socnet', 'version' => '1.0.0', 'operator' => '>=', 'load' => 'after'), // must load after socnet
array( 'name' => 'captcha', 'version' => '2.0.0') // requires captcha 2 or better. Does not care where it loads in relation to captcha.
);
$requires = array(
array( 'name' => '*', 'load' => 'before' ) // load before all other plugins
);
$load_dependency = array(
array( 'name' => '*', 'load' => 'after') // load last
);
'load' can be 'before' or 'after'. If name is '*', load must exist and version/operator are ignored.
The good thing is you don't have to worry about cyclical dependencies since you are just validating if the plugin can be installed/enabled. The operator has to figure out how to get the plugins in the right order.
Sorry, I don't really understand this. I mean, right now the load order is automagically rearranged to take dependencies into account. And the operator (user) is simply not allowed to move the plugins into a place in the load order where this will conflict with the order required by the dependencies. I can't see why this is wrong.
How about just allowing plugins to bypass the check? Right now all plugins are just given a load order of '10000' when installed, which is a very low priority. This value is then quickly readjusted for display purposes.
Text Formatted Code
$requires = array(
// default: make sure that the parent plugin is loaded first only
array('name' => 'myplugin1', 'version' => '1.0.0'),
// don't care when to be loaded
array('name' => 'myplugin1', 'version' => '1.0.0', 'loadorder' => 'ignore'),
);
Related: Would it be useful to cache the dependencies? So that we don't call the autoinstall.inc of "PluginThatRequiresSocnet" to resolve its dependencies (more than once), if "SocNet" is disabled.
Quote by: LaughIt looks great Roccivic.
Thanks
Quote by: Laugh- Plugin Information Center. The button could say just "Close". Maybe for just the old Professional theme do not have the form center on the screen since no other admin form does.
Ok.
Quote by: LaughI was thinking on Joe's "load after" idea and I thought of another scenario. Can a plugin author show say for example that the captcha plugin version 1.0.0 can be used but is not necessarily required (which is true for a number of plugins)? The Admin plugin form wouldn’t be required to enforce anything here but it is information that the Admin may want. I guess the only downfall here is if version 0.9 of the captcha is installed then the plugin itself would have to check to make sure that the correct version is installed before making any calls of the captcha plugin.
I think that as it is, it's already a big patch and I don't even know if it'll make it for 1.8.0. But, I guess that we could add more arrays at a later date in the autoinstall.inc, like:
Text Formatted Code
// Self explanatory?
$recommends = array(...);
$suggests = array(...);
$replaces = array(...);
$provides = array(...);
It would be neater and completely expandable. What do you think?
@Laugh: Also, what did you make of the JS function on the demo site that kept the tooltips from disappearing off the screen? The code maybe should be cleaned up a bit, but the idea I think is good. Do you want a copy of the cleaned-up version? Or were you going to look into a CSS-only solution to that?
Other then these issues, anything else? Or should I go ahead and write the serious implementation?
Oh and I also have a question. I want to break all this work into several smaller patches, possibly 5 or 6. What is the best way for me to proceed now? Take a fork of the repo and code there without pulling, submit the patches and hope for the best? I'm kind of afraid of pulling and executing "hg update" when I already have made modifications. Last time I tried, hg forked an instance of meld (http://en.wikipedia.org/wiki/Meld_%28software%29) with a three way diff and I had no idea what it meant... Is there a trick or am I just missing something?
Thanks all for the feedback

Rouslan.