/** * Compiles a list of installed, version 4.5+ templates * * Based on xml files found. If no xml file found the template * is ignored */ function viewTemplates($option, $client) { global $database, $mainframe; global $mosConfig_absolute_path, $mosConfig_list_limit; $limit = $mainframe->getUserStateFromRequest('viewlistlimit', 'limit', $mosConfig_list_limit); $limitstart = $mainframe->getUserStateFromRequest("view{$option}limitstart", 'limitstart', 0); if ($client == 'admin') { $templateBaseDir = mosPathName($mosConfig_absolute_path . '/administrator/templates'); } else { $templateBaseDir = mosPathName($mosConfig_absolute_path . '/templates'); } $rows = array(); // Read the template dir to find templates $templateDirs = mosReadDirectory($templateBaseDir); $id = intval($client == 'admin'); if ($client == 'admin') { $database->setQuery("SELECT template FROM #__templates_menu WHERE client_id='1' AND menuid='0'"); } else { $database->setQuery("SELECT template FROM #__templates_menu WHERE client_id='0' AND menuid='0'"); } $cur_template = $database->loadResult(); $rowid = 0; // Check that the directory contains an xml file foreach ($templateDirs as $templateDir) { $dirName = mosPathName($templateBaseDir . $templateDir); $xmlFilesInDir = mosReadDirectory($dirName, '.xml$'); foreach ($xmlFilesInDir as $xmlfile) { // Read the file to see if it's a valid template XML file $parser =& new mosXMLDescription($dirName . $xmlfile); if ($parser->getType() != 'template') { continue; } $row = new StdClass(); $row->id = $rowid; $row->directory = $templateDir; $row->creationdate = $parser->getCreationDate('template'); $row->name = $parser->getName('template'); $row->author = $parser->getAuthor('template'); $row->copyright = $parser->getCopyright('template'); $row->authorEmail = $parser->getAuthorEmail('template'); $row->authorUrl = $parser->getAuthorUrl('template'); $row->version = $parser->getVersion('template'); /* $element = &$xmlDoc->getElementsByPath('name', 1 ); $row->name = $element->getText(); $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() : ''; */ // Get info from db if ($cur_template == $templateDir) { $row->published = 1; } else { $row->published = 0; } $row->checked_out = 0; $row->mosname = strtolower(str_replace(' ', '_', $row->name)); // check if template is assigned $database->setQuery("SELECT count(*) FROM #__templates_menu WHERE client_id='0' AND template='{$row->directory}' AND menuid<>'0'"); $row->assigned = $database->loadResult() ? 1 : 0; $rows[] = $row; $rowid++; } } require_once $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php'; $pageNav = new mosPageNav(count($rows), $limitstart, $limit); $rows = array_slice($rows, $pageNav->limitstart, $pageNav->limit); HTML_templates::showTemplates($rows, $pageNav, $option, $client); }
/** * Compiles a list of installed, version 4.5+ templates * * Based on xml files found. If no xml file found the template * is ignored */ function viewTemplates($option, $client) { global $database, $mainframe; global $mosConfig_absolute_path, $mosConfig_list_limit; $limit = $mainframe->getUserStateFromRequest('viewlistlimit', 'limit', $mosConfig_list_limit); $limitstart = $mainframe->getUserStateFromRequest("view{$option}limitstart", 'limitstart', 0); if ($client == 'admin') { $templateBaseDir = mosPathName($mosConfig_absolute_path . '/administrator/templates'); } else { $templateBaseDir = mosPathName($mosConfig_absolute_path . '/templates'); } $rows = array(); // Read the template dir to find templates $templateDirs = mosReadDirectory($templateBaseDir); $id = intval($client == 'admin'); if ($client == 'admin') { $query = "SELECT template" . "\n FROM #__templates_menu" . "\n WHERE client_id = 1" . "\n AND menuid = 0"; $database->setQuery($query); } else { $query = "SELECT template" . "\n FROM #__templates_menu" . "\n WHERE client_id = 0" . "\n AND menuid = 0"; $database->setQuery($query); } $cur_template = $database->loadResult(); $rowid = 0; // Check that the directory contains an xml file foreach ($templateDirs as $templateDir) { $dirName = mosPathName($templateBaseDir . $templateDir); $xmlFilesInDir = mosReadDirectory($dirName, '.xml$'); foreach ($xmlFilesInDir as $xmlfile) { // Read the file to see if it's a valid template XML file $xmlDoc = new DOMIT_Lite_Document(); $xmlDoc->resolveErrors(true); if (!$xmlDoc->loadXML($dirName . $xmlfile, false, true)) { continue; } $root =& $xmlDoc->documentElement; if ($root->getTagName() != 'mosinstall') { continue; } if ($root->getAttribute('type') != 'template') { continue; } $row = new StdClass(); $row->id = $rowid; $row->directory = $templateDir; $element =& $root->getElementsByPath('name', 1); $row->name = $element->getText(); $element =& $root->getElementsByPath('creationDate', 1); $row->creationdate = $element ? $element->getText() : 'Nenhum'; $element =& $root->getElementsByPath('author', 1); $row->author = $element ? $element->getText() : 'Unknown'; $element =& $root->getElementsByPath('copyright', 1); $row->copyright = $element ? $element->getText() : ''; $element =& $root->getElementsByPath('authorEmail', 1); $row->authorEmail = $element ? $element->getText() : ''; $element =& $root->getElementsByPath('authorUrl', 1); $row->authorUrl = $element ? $element->getText() : ''; $element =& $root->getElementsByPath('version', 1); $row->version = $element ? $element->getText() : ''; // Get info from db if ($cur_template == $templateDir) { $row->published = 1; } else { $row->published = 0; } $row->checked_out = 0; $row->mosname = strtolower(str_replace(' ', '_', $row->name)); // check if template is assigned $query = "SELECT COUNT(*)" . "\n FROM #__templates_menu" . "\n WHERE client_id = 0" . "\n AND template = " . $database->Quote($row->directory) . "\n AND menuid != 0"; $database->setQuery($query); $row->assigned = $database->loadResult() ? 1 : 0; $rows[] = $row; $rowid++; } } require_once $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php'; $pageNav = new mosPageNav(count($rows), $limitstart, $limit); $rows = array_slice($rows, $pageNav->limitstart, $pageNav->limit); HTML_templates::showTemplates($rows, $pageNav, $option, $client); }