Как избежать дублирование блока ?

Проблема следующая. В стандартном config.php LS 1.0.1 есть правило для блока:
$config['block']['rule_people'] = array(
	'action'  => array( 'people' ),
	'blocks'  => array( 'right' => array('actions/ActionPeople/sidebar.tpl') ),
);

Переписываю его в config.local.php таким образом:
$config['block']['rule_people'] = array(
	'action'  => array( 'people' ),
	'blocks'  => array( 'right' => array('actions/ActionPeople/sidebar.tpl'=>array('priority'=>300) ),
);

Т.е. все что мне нужно — повысить приоритет. Но в результате блок на странице появляется два раза.

Печаль.

Как сделать, не меняя непосредственно config.php?

Заранее спасибо.

9 комментариев

avatar
Не буду разбирать чем вызвано такое поведение, ведь по сути настройка должна перезаписаться.
Можно попытаться самостоятельно перезаписать используя данный код —

Config::Set('block.rule_people', array(
        'action'  => array( 'people' ),
        'blocks'  => array( 'right' => array('actions/ActionPeople/sidebar.tpl'=>array('priority'=>300) )
));

Когда речь идет о плагинах именно так происходит перезапись внутренних конфигураций
avatar
Я в плагинах такой код видел и всё гадал зачем… Выходит, это всё же мелкий баг. Спасибо, это решение, конечно.
avatar
В плагинах желательно использовать
$config['$root$']['key_name']='value';
для перезаписи корневых элементов конфига
avatar
А в config.local.php так можно?
avatar
нет, в config.local.php и так корневой контекст
avatar
Не буду разбирать чем вызвано такое поведение, ведь по сути настройка должна перезаписаться.
при слиянии конфигов используется рекурсивный мерж по ключам. А здесь мы получаем как раз два разных ключа, первый вариант(из config.php) имеет числовой ключ «0», а второй уже строковый «actions/ActionPeople/sidebar.tpl» — в результате и получаем два элемента массива на выходе и два блока.
avatar
Т.е. это осознанно задуманное поведение? Я просто уточняю :)
avatar
да, просто в текущем примере оно вылезло «боком»
avatar
Действительно, спасибо за разъяснения!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.