Back to LibraryAdapter class

Method discover

public array
discover
()
Custom discover method
Returns
  • array Extension list of extensions available
Since
  • 3.1

Method discover - Source code

/**
 * Custom discover method
 *
 * @return  array  Extension  list of extensions available
 *
 * @since   3.1
 */
public function discover()
{
    $results = array();
    $mainFolder = JPATH_MANIFESTS . '/libraries';
    $folder = new \RecursiveDirectoryIterator($mainFolder);
    $iterator = new \RegexIterator(new \RecursiveIteratorIterator($folder), '/\\.xml$/i', \RecursiveRegexIterator::GET_MATCH);
    foreach ($iterator as $file => $pattern) {
        $element = str_replace(array($mainFolder . DIRECTORY_SEPARATOR, '.xml'), '', $file);
        $manifestCache = Installer::parseXMLInstallFile($file);
        $extension = Table::getInstance('extension');
        $extension->set('type', 'library');
        $extension->set('client_id', 0);
        $extension->set('element', $element);
        $extension->set('folder', '');
        $extension->set('name', $element);
        $extension->set('state', -1);
        $extension->set('manifest_cache', json_encode($manifestCache));
        $extension->set('params', '{}');
        $results[] = $extension;
    }
    return $results;
}