Example #1
0
function templates($option)
{
    global $mainframe, $mtconf;
    $database =& JFactory::getDBO();
    $templateBaseDir = JPath::clean($mtconf->getjconf('absolute_path') . DS . 'components' . DS . 'com_mtree' . DS . 'templates');
    $rows = array();
    // Read the template dir to find templates
    $templateDirs = JFolder::folders($templateBaseDir, '.');
    $cur_template = $mtconf->get('template');
    $rowid = 0;
    // Check that the directory contains an xml file
    foreach ($templateDirs as $templateDir) {
        if ($templateDir == 'index.html') {
            continue;
        }
        $dirName = JPath::clean($templateBaseDir . DS . $templateDir);
        $xmlFilesInDir = JFolder::files($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 . DS . $xmlfile, false, true)) {
                continue;
            }
            $element =& $xmlDoc->documentElement;
            if ($element->getTagName() != 'mosinstall' && $element->getTagName() != 'install') {
                continue;
            }
            if ($element->getAttribute('type') != 'template') {
                continue;
            }
            $row = new StdClass();
            $row->id = $rowid;
            $row->directory = $templateDir;
            $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() : '';
            $element =& $xmlDoc->getElementsByPath('description', 1);
            $row->description = $element ? $element->getText() : '';
            // Get info from db
            if ($cur_template == $templateDir) {
                $row->default = 1;
            } else {
                $row->default = 0;
            }
            $row->checked_out = 0;
            $row->mosname = strtolower(str_replace(' ', '_', $row->name));
            $rows[] = $row;
            $rowid++;
        }
    }
    HTML_mtree::list_templates($rows, $option);
}