diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index fd658e57e91..cf902ffd2dd 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -1298,7 +1298,11 @@ if ($mode == 'marketplace') { print ''; print ''; if (!getDolGlobalString('MAIN_DISABLE_EXTERNALMODULES_COMMUNITY') && getDolGlobalInt('MAIN_ENABLE_EXTERNALMODULES_COMMUNITY')) { - $messagetoadd = '

Content of the repository index file '.$remotestore->file_source_url.' is in the local cache file '.$remotestore->cache_file.' (Date: '.dol_print_date(dol_filemtime($remotestore->cache_file), 'dayhour', 'tzuserrel').')'; + $messagetoadd = '

Content of the repository index file '.$remotestore->file_source_url.' should be in the local cache file '.$remotestore->cache_file; + $messagetoadd .= ' (Date: '.dol_print_date(dol_filemtime($remotestore->cache_file), 'dayhour', 'tzuserrel').')'; + if ($remotestore->githubFileError) { + $messagetoadd .= '
'.$remotestore->githubFileError.''; + } print $remotestore->libStatus($remotestore->githubFileStatus, 2, $messagetoadd); } print ''; diff --git a/htdocs/admin/remotestore/class/externalModules.class.php b/htdocs/admin/remotestore/class/externalModules.class.php index 0ed11cb77a9..410b1912238 100644 --- a/htdocs/admin/remotestore/class/externalModules.class.php +++ b/htdocs/admin/remotestore/class/externalModules.class.php @@ -100,6 +100,11 @@ class ExternalModules */ public $githubFileStatus; + /** + * @var string + */ + public $githubFileError; + /** * @var int // number of online providers */ @@ -169,6 +174,7 @@ class ExternalModules $this->getRemoteYamlFile($this->file_source_url, $cachedelayforgithubrepo); + $this->githubFileError = $this->error; $this->githubFileStatus = dol_is_file($this->cache_file) ? 1 : 0; } @@ -891,7 +897,10 @@ class ExternalModules $result = getURLContent($file_source_url, 'GET', '', 1, $addheaders); // TODO Force timeout to 5 s on both connect and response. if (!empty($result) && $result['http_code'] == 200) { $yaml = $result['content']; - file_put_contents($cache_file, $yaml); + $result = file_put_contents($cache_file, $yaml); + if ($result === false) { + $this->error = 'Failed to create cache file: ' . $cache_file; + } } } else { $yaml = file_get_contents($cache_file);