В версии 17 и некоторых более ранних при включенном в config.ini выводе ошибок появляется множество предупреждений и преобразовании массива в строку в def_module.php:
Array to string conversion on def_module in line 1044
Этого мало кто замечает ,потому что полный вывод ошибок обычно выключен (похоже, у самих юмисофтов тоже, хотя мне это не кажется правильным). Проблема в том, что иногда при отладке приходится включать вывод всех ошибок и это бессмысленное предупреждение затрудняет поиск своих ошибок.
Ошибка возникает на этом участке кода
$res .= is_array($t_res) ? implode('', $t_res) : $t_res;
Дело в том, что $t_res может быть многомерным массивом, на что и жалуется implode. Вывод - преобразовать $t_res в одномерный массив:
if (is_array($t_res)) {
$temp = [];
array_walk_recursive($t_res, function($v) use (&$temp) {
$temp[] = $v;
});
$t_res = implode('', $temp);
}
$res .= $t_res;