В файле modx \core\xpdo\xpdo.xpdo.class.php
Заменить существующий аналогичный код на:
/**
* Converts a PHP array into a JSON encoded string.
*
* @param array $array The PHP array to convert.
*
return string The JSON representation of the source array.
*/
public function toJSON($array) {
$encoded= '';
if (is_array ($array)) {
if (!function_exists('json_encode')) {
if (@ include_once (XPDO_CORE_PATH . 'json/JSON.php')) {
$json = new Services_JSON();
$encoded= $json->encode($array);
}
} else {
$array = self::arrayEncodeUTF8($array);
$encoded= json_encode($array);
}
}
return $encoded;
}
public static function arrayEncodeUTF8($array){
foreach($array as $key => $value){
if(!is_array($value) && is_string($value)){
json_encode($value);
if(json_last_error() == 5){
$array[$key] = iconv('CP1251', 'UTF-8', $value);
}
} else {
$array[$key] = self::arrayEncodeUTF8($value);
}
}
return $array;
}
У меня заработало
Подробно описано здесь:
https://forums.modx.com/thread/?thread=98775