public function solveDependancies($plugin)
{
$found = false;
$result = array($plugin);
$add = $result;
do {
$changed = false;
$copy = $add;
$add = array();
foreach ($copy as $pluginName) {
$dependent = $this->loadConfig('dependent', $pluginName);
if (!empty($dependent)) {
foreach ($dependent as $parentPlugin) {
if (!in_array($parentPlugin, $result)) {
$add[] = $parentPlugin;
$result[] = $parentPlugin;
$changed = true;
}
}
}
}
} while ($changed);
return $result;
}