管理ページのコンフィグを変更してもDBには保存されますが、管理ページの動作が変更された設定通りに動作していませんでした。
原因 :
・「core/cache/config.cache.php」の内容がDBより優先的にコンフィグとして読み込まれる。
・管理ページからの更新時に「core/cache/config.cache.php」の内容が更新されない。
config以外のキャッシュは更新時と同様の処理をconfig更新時にも追加します。
他のキャッシュ削除は各更新用phpファイルに記述されていましたが、
・configの更新時のみ、他では呼ばれていないreloadConfigを呼んでいる。
・reloadConfigメソッドの内容が_loadConfigを呼んでいるだけである。
ということから本来はreloadConfigで削除されるべきものではないかと推測されます。
修正内容
「core/model/modx/modx.class.php」内の以下の関数にキャッシュクリアを追加します。
/**
* Reload the config settings.
*
* @return array An associative array of configuration key/values
*/
function reloadConfig() {
// clear cache 追加 ここから
$cacheManager= $this->getCacheManager();
$cacheManager->clearCache();
// clear cache ここまで
if (!$this->_loadConfig()) {
$this->_log(MODX_LOG_LEVEL_ERROR, "Could not reload core MODx configuration!");
}
return $this->config;
}
以上の修正は
MODx JIRA : #MODX-166に投稿済みです。