/**
* Custom discover method
* Finds language files
*
* @return \Joomla\CMS\Table\Extension[] Array of discovered extensions.
*
* @since 3.1
*/
public function discover()
{
$results = [];
$clients = [0 => JPATH_SITE, 1 => JPATH_ADMINISTRATOR, 3 => JPATH_API];
foreach ($clients as $clientId => $basePath) {
$languages = Folder::folders($basePath . '/language');
foreach ($languages as $language) {
$manifestfile = $basePath . '/language/' . $language . '/langmetadata.xml';
if (!is_file($manifestfile)) {
$manifestfile = $basePath . '/language/' . $language . '/' . $language . '.xml';
if (!is_file($manifestfile)) {
continue;
}
}
$manifest_details = Installer::parseXMLInstallFile($manifestfile);
$extension = Table::getInstance('extension');
$extension->set('type', 'language');
$extension->set('client_id', $clientId);
$extension->set('element', $language);
$extension->set('folder', '');
$extension->set('name', $language);
$extension->set('state', -1);
$extension->set('manifest_cache', json_encode($manifest_details));
$extension->set('params', '{}');
$results[] = $extension;
}
}
return $results;
}