function getProvides($type = null, $name = null)
{
if ($this->provides_cache === null) {
$active_plugins = $this->find('active');
$provides = array();
foreach ($active_plugins as $plugin) {
$plugin_provides = array();
$manifest = $plugin->getManifest();
if ($manifest instanceof \ElggPluginManifest) {
$plugin_provides = $plugin->getManifest()->getProvides();
}
if ($plugin_provides) {
foreach ($plugin_provides as $provided) {
$provides[$provided['type']][$provided['name']] = array('version' => $provided['version'], 'provided_by' => $plugin->getID());
}
}
}
$this->provides_cache = $provides;
}
if ($type && $name) {
if (isset($this->provides_cache[$type][$name])) {
return $this->provides_cache[$type][$name];
} else {
return false;
}
} elseif ($type) {
if (isset($this->provides_cache[$type])) {
return $this->provides_cache[$type];
} else {
return false;
}
}
return $this->provides_cache;
}