Ошибка при сохранении настроек в админке

InstantCMS 2.X
#1 29 октября 2017 в 23:15
Версия 2.8.2 из компонентов стоит парочка того что я делал… плюс магазин… все компоненты отключены.
Версия пхп 7.0
При сохранении параметров в настройках (/admin/settings) получаю вот такую ошибку

Warning: str_repeat(): Second argument has to be greater than or equal to 0 in *******\system\core\config.php on line 186


в файле config.php ругается на вот этот участок кода в методе save
  1.  
  2. foreach($values as $key=>$value){
  3.  
  4. if (in_array($key, $this->dynamic)){ continue; }
  5.  
  6. $value = var_export($value, true);
  7.  
  8. $tabs = 7 - ceil((mb_strlen($key)+3)/4);
  9.  
  10. var_dump($tabs);
  11. var_dump($key);
  12. var_dump($value);
  13.  
  14. $dump .= "\t'{$key}'";
  15. $dump .= str_repeat("\t", $tabs);
  16. $dump .= "=> $value,\n";
  17.  
  18. }
  19.  
я посмотрел в каком именно ключе возникает ошибка


\system\core\config.php:182:float -1
\system\core\config.php:183:string 'controllers_without_widgets' (length=27)
\system\core\config.php:184:string 'array (
0 => 'admin',
)' (length=25)

как видим в какой то момент переменная $tabs принимает отрицательно значение..

произошло это потому что ключе 'controllers_without_widgets' 27 символов… и вот это выражение ceil((mb_strlen($key)+3)/4) возвращает число 8… вот и вылазит отрицательное число..
предлагаю в следующем релизе пофиксить это)
#2 29 октября 2017 в 23:29
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.