Back to TemplateAdapter class

Method discover

public array
discover
()
Discover existing but uninstalled templates
Returns
  • array Extension list

Method discover - Source code

/**
 * Discover existing but uninstalled templates
 *
 * @return  array  Extension list
 */
public function discover()
{
    $results = array();
    $site_list = Folder::folders(JPATH_SITE . '/templates');
    $admin_list = Folder::folders(JPATH_ADMINISTRATOR . '/templates');
    $site_info = ApplicationHelper::getClientInfo('site', true);
    $admin_info = ApplicationHelper::getClientInfo('administrator', true);
    foreach ($site_list as $template) {
        if (file_exists(JPATH_SITE . "/templates/{$template}/templateDetails.xml")) {
            if ($template === 'system') {
                // Ignore special system template
                continue;
            }
            $manifest_details = Installer::parseXMLInstallFile(JPATH_SITE . "/templates/{$template}/templateDetails.xml");
            $extension = Table::getInstance('extension');
            $extension->set('type', 'template');
            $extension->set('client_id', $site_info->id);
            $extension->set('element', $template);
            $extension->set('folder', '');
            $extension->set('name', $template);
            $extension->set('state', -1);
            $extension->set('manifest_cache', json_encode($manifest_details));
            $extension->set('params', '{}');
            $results[] = $extension;
        }
    }
    foreach ($admin_list as $template) {
        if (file_exists(JPATH_ADMINISTRATOR . "/templates/{$template}/templateDetails.xml")) {
            if ($template === 'system') {
                // Ignore special system template
                continue;
            }
            $manifest_details = Installer::parseXMLInstallFile(JPATH_ADMINISTRATOR . "/templates/{$template}/templateDetails.xml");
            $extension = Table::getInstance('extension');
            $extension->set('type', 'template');
            $extension->set('client_id', $admin_info->id);
            $extension->set('element', $template);
            $extension->set('folder', '');
            $extension->set('name', $template);
            $extension->set('state', -1);
            $extension->set('manifest_cache', json_encode($manifest_details));
            $extension->set('params', '{}');
            $results[] = $extension;
        }
    }
    return $results;
}