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);