| // +----------------------------------------------------------------------+ // // $Id: Info.php,v 1.19 2005/01/03 17:33:43 davey Exp $ require_once 'PEAR/Remote.php'; require_once 'PEAR/Registry.php'; /** * PEAR_Info generate phpinfo() style PEAR information */ class PEAR_Info { /** * PEAR_Info Constructor * @param pear_dir string[optional] * @return bool * @access public */ function PEAR_Info($pear_dir = FALSE, $pear_user_config = FALSE) { if($pear_user_config === FALSE) { $this->config = new PEAR_Config(); } else { $this->config = new PEAR_Config($pear_user_config); } if ($pear_dir != FALSE) { $this->config->set('php_dir',$pear_dir); } if (defined('PEAR_INFO_PROXY')) { $this->config->set('http_proxy',PEAR_INFO_PROXY); } $this->r = new PEAR_Remote($this->config); $this->reg = new PEAR_Registry($this->config->get('php_dir')); // get PEARs packageInfo to show version number at the top of the HTML $pear = $this->reg->packageInfo("PEAR"); $this->list_options = false; if ($this->config->get('preferred_state') == 'stable') { $this->list_options = true; } ob_start(); ?> PEAR :: PEAR_Info()
PEAR Logo

PEAR

PEAR Credits'; // Get packageInfo and Show the HTML for the Packages $this->getConfig(); echo '
'; $this->getPackages(); } else { $this->getCredits(); } ?> info = ob_get_contents(); ob_end_clean(); /* With later versions of this where we properly implement the CLI such and stuff this will return the actual status of whether or not creating the PEAR_Info object worked */ return true; } /** * Set PEAR http_proxy for remote calls * @param proxy string * @return bool * @access public */ function setProxy($proxy) { define('PEAR_INFO_PROXY',$proxy); return true; } /** * Retrieve and format PEAR Packages info * @return void * @access private */ function getPackages() { $latest = @$this->r->call('package.listLatestReleases'); $available = $this->reg->listPackages(); if (PEAR::isError($available)) { echo '

An Error occured fetching the package list. Please try again.

'; return FALSE; } if (!is_array($available)) { echo '

The package list could not be fetched from the remote server. Please try again.

'; return FALSE; } natcasesort($available); if ((PEAR::isError($latest)) || (!is_array($latest))) { $latest = FALSE; } $packages = ''; foreach ($available as $name) { $installed = $this->reg->packageInfo($name); if (strlen($installed['package']) > 1) { if (!isset($old_index)) { $old_index = ''; } $current_index = $name{0}; if (strtolower($current_index) != strtolower($old_index)) { $packages .= ''; $old_index = $current_index; $this->index[] = $current_index; } $packages .= '

' .trim($installed['package']). '

'; if ($latest != FALSE) { if (isset($latest[$installed['package']])) { if (version_compare($latest[$installed['package']]['version'],$installed['version'],'>')) { $packages .= ''; } } } $packages .= '
Summary ' .nl2br(htmlentities(trim($installed['summary']))). '
Version ' .trim($installed['version']). '
Description ' .nl2br(htmlentities(trim($installed['description']))). '
State ' .trim($installed['release_state']). '
Information
Latest Version ' .$latest[$installed['package']]['version'] . ' ('. $latest[$installed['package']]['state']. ')
Top
'; } } ?>

PEAR Packages

Index
index as $i) { ?> | |

config->getKeys(); sort($keys); ?>

PEAR Config

config->get($key); ?>

PEAR Credits

PEAR Website Team
Stig Bakken, Thomas V.V.Cox, Martin Jansen, Colin Viebrock, Richard Heyes

PEAR documentation team
Thomas V.V.Cox, Martin Jansen, Alexander Merz
reg->listPackages(); if (PEAR::isError($available)) { echo '

An Error occured fetching the credits from the remote server. Please try again.

'; return FALSE; } if (!is_array($available)) { echo '

The credits could not be fetched from the remote server. Please try again.

'; return FALSE; } echo '
'; echo ''; foreach ($available as $name) { $installed = $this->reg->packageInfo($name); if (strlen($installed['package']) > 1) { ?> '; } /** * outputs the PEAR logo * @return void * @access public */ function pearImage() { $pear_image = 'R0lGODlhaAAyAMT/AMDAwP3+/TWaAvD47Pj89vz++zebBDmcBj6fDEekFluvKmu3PvX68ujz4XvBS8LgrNXqxeHw1ZnPaa/dgvv9+cLqj8LmltD2msnuls'; $pear_image .= '3xmszwmf7+/f///wAAAAAAAAAAACH5BAEAAAAALAAAAABoADIAQAX/ICCOZGmeaKqubOtWWjwJphLLgH1XUu//C1Jisfj9YLEKQnSY3GaixWQqQTkYHM4'; $pear_image .= 'AMulNLJFC9pEwIW/odKU8cqTfsWoTTtcomU4ZjbR4ZP+AgYKCG0EiZ1AuiossEhwEXRMEg5SVWQ6MmZqKWD0QlqCUEHubpaYlExwRPRZioZZVp7KzKQoS'; $pear_image .= 'DxANDLsNXA5simd2FcQYb4YAc2jEU80TmAAIztPCMcjKdg4OEsZJmwIWWQPQI4ikIwtoVQnddgrv8PFlCWgYCwkI+fp5dkvJ/IlUKMCy6tYrDhNIIKLFE'; $pear_image .= 'AWCTxse+ABD4SClWA0zovAjcUJFi6EwahxZwoGqHhFA/4IqoICkyxQSKkbo0gDkuBXV4FRAJkRCnTgi2P28IcEfk5xpWppykFJVuScmEvDTEETAVJ6bEp'; $pear_image .= 'ypcADPkz3pvKVAICHChkC7siQ08zVqu4Q6hgIFEFZuEn/KMgRUkaBmAQs+cEHgIiHVH5EAFpIgW4+NT6LnaqhDwe/Ov7YOmWZp4MkiAWBIl0kAVsJWuzc'; $pear_image .= 'YpdiNgddc0E8cKBAu/FElBwagMb88ZZKDRAkWJtkWhHh3wwUbKHQJN3wQAaXGR2LpArv5oFHRR34C7Mf6oLXZNfqBgNI7oOLhj1f8PaGpygHQ0xtP8MDV'; $pear_image .= 'KwYTSKcgxr9/hS6/pCCAAg5M4B9/sWh1YP9/XSgQWRML/idBfKUc4IBET9lFjggKhDYZAELZJYEBI2BDB3ouNBEABwE8gAwiCcSYgAKqPdEVAG7scM8BP'; $pear_image .= 'PZ4AIlM+OgjAgpMhRE24OVoBwsIFEGFA7ZkQQBWienWxmRa7XDjKZXhBdAeSmKQwgLuUVLICa6VEKIGcK2mQWoVZHCBXJblJUFkY06yAXlGsPIHBEYdYi'; $pear_image .= 'WHb+WQBgaIJqqoHFNpgMGB7dT5ZQuG/WbBAIAUEEFNfwxAWpokTIXJAWdgoJ9kRFG2g5eDRpXSBpEIF0oEQFaZhDbaSFANRgqcJoEDRARLREtxOQpsPO9'; $pear_image .= '06ZUeJgjQB6dZUPBAdwcF8KLXXRVQaKFcsRRLJ6vMiiCNKxRE8ECZKgUA3Va4arOAAqdGRWO7uMZH5AL05gvsjQbg6y4NCjQ1kw8TVGcbdoKGKx8j3bGH'; $pear_image .= '7nARBArqwi0gkFJBrZiXBQRbHoIgnhSjcEBKfD7c3HMhz+JIQSY3t8GGKW+SUhfUajxGzKd0IoHBNkNQK86ZYEqdzYA8AHQpqXRUm80oHs1CAgMoBxzRq'; $pear_image .= 'vzs9CIKECC1JBp7enUpfXHApwVYNAfo16c4IrYPLVdSAJVob7IAtCBFQGHcs/RRdiUDPHA33oADEAIAOw=='; header('content-type: image/gif'); echo base64_decode($pear_image); } /** * Shows PEAR_Info output * @return void * @access public */ function show() { echo $this->info; } /** * Check if a package is installed */ function packageInstalled($package_name, $version = null, $pear_user_config = null) { if(is_null($pear_user_config)) { $config = new PEAR_Config(); } else { $config = new PEAR_Config($pear_user_config); } $reg = new PEAR_Registry($config->get('php_dir')); if (is_null($version)) { return $reg->packageExists($package_name); } else { $installed = $reg->packageInfo($package_name); return version_compare($version, $installed['version'], '<='); } } } if (isset($_GET['pear_image'])) { PEAR_Info::pearImage(); exit; } ?>
PackageMaintainers
' .htmlentities($i['name']). '' .' (' .$i['role']. ')'; } echo implode(', ',$maintainers); ?>