/** * @param string The URL option */ function showInstalledComponents($option) { global $database, $mosConfig_absolute_path; $database->setQuery("SELECT *" . "\n FROM #__components" . "\n WHERE parent = 0 AND iscore = 0" . "\n ORDER BY name"); $rows = $database->loadObjectList(); // Read the component dir to find components $componentBaseDir = mosPathName($mosConfig_absolute_path . '/administrator/components'); $componentDirs = mosReadDirectory($componentBaseDir); $n = count($rows); for ($i = 0; $i < $n; $i++) { $row =& $rows[$i]; $dirName = mosPathName($componentBaseDir . $row->option); $xmlFilesInDir = mosReadDirectory($dirName, '.xml$'); foreach ($xmlFilesInDir as $xmlfile) { // Read the file to see if it's a valid component XML file $parser =& new mosXMLDescription($dirName . $xmlfile); if ($parser->getType() != 'component') { continue; } $row->creationdate = $parser->getCreationDate('component'); $row->author = $parser->getAuthor('component'); $row->copyright = $parser->getCopyright('component'); $row->authorEmail = $parser->getAuthorEmail('component'); $row->authorUrl = $parser->getAuthorUrl('component'); $row->version = $parser->getVersion('component'); $row->mosname = strtolower(str_replace(" ", "_", $row->name)); } } HTML_component::showInstalledComponents($rows, $option); }
/** * @param string The URL option */ function showInstalledComponents($option) { global $database, $mosConfig_absolute_path; $database->setQuery("SELECT *" . "\n FROM #__components" . "\n WHERE parent = 0 AND iscore = 0" . "\n ORDER BY name"); $rows = $database->loadObjectList(); // Read the component dir to find components $componentBaseDir = mosPathName($mosConfig_absolute_path . '/administrator/components'); $componentDirs = mosReadDirectory($componentBaseDir); $id = 0; foreach ($rows as $row) { $dirName = $componentBaseDir . $row->option; $xmlFilesInDir = mosReadDirectory($dirName, '.xml'); foreach ($xmlFilesInDir as $xmlfile) { // Read the file to see if it's a valid component XML file $xmlDoc =& new DOMIT_Lite_Document(); $xmlDoc->resolveErrors(true); if (!$xmlDoc->loadXML($dirName . '/' . $xmlfile, false, true)) { continue; } $element =& $xmlDoc->documentElement; if ($element->getTagName() != 'mosinstall') { continue; } if ($element->getAttribute("type") != "component") { continue; } $element =& $xmlDoc->getElementsByPath('creationDate', 1); $row->creationdate = $element ? $element->getText() : 'Unknown'; $element =& $xmlDoc->getElementsByPath('author', 1); $row->author = $element ? $element->getText() : 'Unknown'; $element =& $xmlDoc->getElementsByPath('copyright', 1); $row->copyright = $element ? $element->getText() : ''; $element =& $xmlDoc->getElementsByPath('authorEmail', 1); $row->authorEmail = $element ? $element->getText() : ''; $element =& $xmlDoc->getElementsByPath('authorUrl', 1); $row->authorUrl = $element ? $element->getText() : ''; $element =& $xmlDoc->getElementsByPath('version', 1); $row->version = $element ? $element->getText() : ''; $row->mosname = strtolower(str_replace(" ", "_", $row->name)); $rows[$id] = $row; } $id++; } HTML_component::showInstalledComponents($rows, $option); }