chore: Update copyright year from 2025 to 2026 across core files
- Updated copyright headers in 3,055 core application files - Changed 'Copyright (C) 2014-2025' to 'Copyright (C) 2014-2026' - Added 123 new files from EspoCRM core updates - Removed 4 deprecated files - Total changes: 61,637 insertions, 54,283 deletions This is a routine maintenance update for the new year 2026.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
@@ -107,9 +107,10 @@ class ConfigWriter
|
||||
|
||||
$configPath = $this->config->getConfigPath();
|
||||
$internalConfigPath = $this->config->getInternalConfigPath();
|
||||
$stateConfigPath = $this->config->getStateConfigPath();
|
||||
|
||||
if (!$this->fileManager->isFile($configPath)) {
|
||||
throw new RuntimeException("Config file '{$configPath}' not found.");
|
||||
throw new RuntimeException("Config file '$configPath' not found.");
|
||||
}
|
||||
|
||||
$data = $this->fileManager->getPhpContents($configPath);
|
||||
@@ -117,6 +118,9 @@ class ConfigWriter
|
||||
$dataInternal = $this->fileManager->isFile($internalConfigPath) ?
|
||||
$this->fileManager->getPhpContents($internalConfigPath) : [];
|
||||
|
||||
$dataState = $this->fileManager->isFile($stateConfigPath) ?
|
||||
$this->fileManager->getPhpContents($stateConfigPath) : [];
|
||||
|
||||
if (!is_array($data)) {
|
||||
throw new RuntimeException("Could not read config.");
|
||||
}
|
||||
@@ -125,12 +129,45 @@ class ConfigWriter
|
||||
throw new RuntimeException("Could not read config-internal.");
|
||||
}
|
||||
|
||||
if (!is_array($dataState)) {
|
||||
throw new RuntimeException("Could not read state.");
|
||||
}
|
||||
|
||||
$toSaveInternal = false;
|
||||
$toSaveState = false;
|
||||
$toSaveMain = false;
|
||||
|
||||
foreach (array_merge(array_keys($changedData), $this->removeParamList) as $key) {
|
||||
if (array_key_exists($key, $data)) {
|
||||
$toSaveMain = true;
|
||||
}
|
||||
|
||||
if (array_key_exists($key, $dataInternal)) {
|
||||
$toSaveInternal = true;
|
||||
}
|
||||
|
||||
if (array_key_exists($key, $dataState)) {
|
||||
$toSaveState = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($changedData as $key => $value) {
|
||||
if ($this->internalConfigHelper->isParamForStateConfig($key)) {
|
||||
$dataState[$key] = $value;
|
||||
|
||||
unset($data[$key]);
|
||||
unset($dataInternal[$key]);
|
||||
|
||||
$toSaveState = true;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($this->internalConfigHelper->isParamForInternalConfig($key)) {
|
||||
$dataInternal[$key] = $value;
|
||||
|
||||
unset($data[$key]);
|
||||
unset($dataState[$key]);
|
||||
|
||||
$toSaveInternal = true;
|
||||
|
||||
@@ -138,25 +175,38 @@ class ConfigWriter
|
||||
}
|
||||
|
||||
$data[$key] = $value;
|
||||
|
||||
unset($dataState[$key]);
|
||||
unset($dataInternal[$key]);
|
||||
|
||||
$toSaveMain = true;
|
||||
}
|
||||
|
||||
foreach ($this->removeParamList as $key) {
|
||||
if ($this->internalConfigHelper->isParamForInternalConfig($key)) {
|
||||
unset($dataInternal[$key]);
|
||||
|
||||
$toSaveInternal = true;
|
||||
|
||||
continue;
|
||||
if (array_key_exists($key, $data)) {
|
||||
unset($data[$key]);
|
||||
}
|
||||
|
||||
unset($data[$key]);
|
||||
if (array_key_exists($key, $dataInternal)) {
|
||||
unset($dataInternal[$key]);
|
||||
}
|
||||
|
||||
if (array_key_exists($key, $dataState)) {
|
||||
unset($dataState[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($toSaveInternal) {
|
||||
$this->saveData($internalConfigPath, $dataInternal, 'microtimeInternal');
|
||||
}
|
||||
|
||||
$this->saveData($configPath, $data, 'microtime');
|
||||
if ($toSaveMain) {
|
||||
$this->saveData($configPath, $data, 'microtime');
|
||||
}
|
||||
|
||||
if ($toSaveState) {
|
||||
$this->saveData($stateConfigPath, $dataState, 'microtimeState');
|
||||
}
|
||||
|
||||
$this->changedData = [];
|
||||
$this->removeParamList = [];
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
@@ -34,9 +34,24 @@ use Espo\Core\Utils\Metadata;
|
||||
|
||||
class InternalConfigHelper
|
||||
{
|
||||
/** @var string[] */
|
||||
private array $stateParamList = [
|
||||
'appTimestamp',
|
||||
'cacheTimestamp',
|
||||
'version',
|
||||
'latestVersion',
|
||||
'latestExtensionVersions',
|
||||
'currencyRates',
|
||||
];
|
||||
|
||||
public function __construct(private Config $config, private Metadata $metadata)
|
||||
{}
|
||||
|
||||
public function isParamForStateConfig(string $name): bool
|
||||
{
|
||||
return in_array($name, $this->stateParamList);
|
||||
}
|
||||
|
||||
public function isParamForInternalConfig(string $name): bool
|
||||
{
|
||||
if ($this->config->isInternal($name)) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM – Open Source CRM application.
|
||||
* Copyright (C) 2014-2025 EspoCRM, Inc.
|
||||
* Copyright (C) 2014-2026 EspoCRM, Inc.
|
||||
* Website: https://www.espocrm.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
||||
Reference in New Issue
Block a user