Closed kovaroman closed 7 years ago
Менять нужно именно в локальном или админке
Так массивы сливаются и если в локальном 2 элемента, а в основном 3, тогда только эти 2 элемента апдейтятся... приходится комментировать в основном конфиге блоки
нужно привести пример конкретных значений, которые переопределяются
Выше есть пример со стандартного девелопер шаблона, справа на главной выводятся три блока, хочу убрать Блоги, копирую с основного конфига application/config/config.php в config.local.php код блока, в нем комментирую строку с Блогами, в итоге у меня все равно есть Блоги на главной. Причина в сливании конфигов, у вас конфиги заменяют значения в массивах, только если в них числоввые ключи, а если ассоциативные, тогда за основу берутся значения из основного массива, а в нем апдейтятся значения из локального... Т.е. проблемма у всех значениях конфигов с конечными ассоциативными ключами! Значения основного Конфига можно только изменить, но не убрать.
Сейчас можно вот так прописать в локальном конфиге:
Config::Set('block.rule_index_blog.blocks.right',array(
'activityRecent' => array('priority' => 100),
'topicsTags' => array('priority' => 50),
));
Такой подход не очень рекомендуется, но задачу свою решает. А после этого фикса https://github.com/livestreet/livestreet-framework/commit/480e1643ef686657616bb92792656c9e34d51c48 можно вот так:
$config['block']['rule_index_blog']['blocks']['right']=array(
'blogs' => false
);
Проблемма в том, что ассоциативные массивы в конфигах сливаються и если, например, убрать блоки в локальном конфиге, то они все ровно отображаються, потому что в основном конфиге они есть.
как быть с ассоциативными масивами в локальных конфигах? может доделать func_array_merge_assoc чтобы к нужным разделам конфига она перезаписывала целие разделы с ассоциативными масивами?