/**
* List a Horde component as dependency.
*
* @param Components_Component $component The component for which the
* dependency tree should be shown * @param int $level The current list level.
* @param string $parent Name of the parent element.
* @param array $options Options for generating the list.
*
* @return boolean True in case listing should continue.
*/
private function _listComponent(Components_Component $component, $level, $parent, $options)
{
$key = $component->getName() . '/' . $component->getChannel();
if (in_array($key, array_keys($this->_displayed_dependencies))) {
if (empty($this->_displayed_dependencies[$key])) {
$add = '(RECURSION) ***STOP***';
} else {
$add = '(ALREADY LISTED WITH ' . $this->_displayed_dependencies[$key] . ') ***STOP***';
}
} else {
$add = '';
}
$this->_element($component->getChannel() == 'pear.horde.org' ? 'green' : 'yellow', $level, $key, $component->getName() . '-' . $component->getVersion(), $component->getChannel(), $add, $options);
if (in_array($key, array_keys($this->_displayed_dependencies))) {
return false;
} else {
$this->_displayed_dependencies[$key] = $parent;
return true;
}
}