Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Trivial
-
Resolution: Fixed/Completed
-
Affects Version/s: 3.4.5
-
Fix Version/s: 4.1.0
-
Component/s: None
-
Labels:None
Description
CRM_Core_Extensions::grabRemoteKeyList() throws fatal errors in two places -
1. If it is unable to retrieve http://extdir.civicrm.org it throws a fatal error with message "Public directory down or too slow - please contact CiviCRM team on forums."
2. If the returned list of extensions is empty, it throws a fatal error with message "Malformed extensions list on public directory - please contact CiviCRM team on forums."
If those two fatal errors are commented out or replaced with simple warnings and HTTP access is still disabled, then there's a third error (warning only this time):
"warning: Invalid argument supplied for foreach() in /path/to/civicrm/CRM/Core/Extensions.php on line 266."
The current situation means that CiviCRM Extensions functionality is completely disabled in the admin UI if there is a local server configuration preventing HTTP requests, a network issue which prevents outage, downtime at CivICRM.org, etc etc.
IMO a more robust approach would be to simply warn of missing functionality if http://extdir.civicrm.org is not accessible, but retain the ability to manually install, list and enable extensions.