/**
* Custom discover method
*
* @return array Extension list of extensions available
*
* @since 3.1
*/
public function discover()
{
$results = array();
$site_list = Folder::folders(JPATH_SITE . '/modules');
$admin_list = Folder::folders(JPATH_ADMINISTRATOR . '/modules');
$site_info = ApplicationHelper::getClientInfo('site', true);
$admin_info = ApplicationHelper::getClientInfo('administrator', true);
foreach ($site_list as $module) {
if (file_exists(JPATH_SITE . "/modules/{$module}/{$module}.xml")) {
$manifest_details = Installer::parseXMLInstallFile(JPATH_SITE . "/modules/{$module}/{$module}.xml");
$extension = Table::getInstance('extension');
$extension->set('type', 'module');
$extension->set('client_id', $site_info->id);
$extension->set('element', $module);
$extension->set('folder', '');
$extension->set('name', $module);
$extension->set('state', -1);
$extension->set('manifest_cache', json_encode($manifest_details));
$extension->set('params', '{}');
$results[] = clone $extension;
}
}
foreach ($admin_list as $module) {
if (file_exists(JPATH_ADMINISTRATOR . "/modules/{$module}/{$module}.xml")) {
$manifest_details = Installer::parseXMLInstallFile(JPATH_ADMINISTRATOR . "/modules/{$module}/{$module}.xml");
$extension = Table::getInstance('extension');
$extension->set('type', 'module');
$extension->set('client_id', $admin_info->id);
$extension->set('element', $module);
$extension->set('folder', '');
$extension->set('name', $module);
$extension->set('state', -1);
$extension->set('manifest_cache', json_encode($manifest_details));
$extension->set('params', '{}');
$results[] = clone $extension;
}
}
return $results;
}