Добрый день.
Заметил предположительно ошибку в методе SaveTvs
if(isset($this->tvNames[$tv])){
$tmplvarid=$this->tvNames[$tv];
if(isset($this->oldTVs[$tv])){
if($this->oldTVs[$tv]==$this->tvNames[$tv]) continue;
$sql="UPDATE $tvc SET value='$value' WHERE tmplvarid=$tmplvarid AND contentid=$id";
}
else
$sql="INSERT INTO $tvc (tmplvarid,value,contentid) VALUES ($tmplvarid,'$value',$id)";
$modx->db->query($sql);
}
Так вот, если старое значение tv будет равно id tv то новое значение tv не запишется. Возможно, строку
if($this->oldTVs[$tv]==$this->tvNames[$tv]) continue;
нужно заменить на
if($this->oldTVs[$tv]==$value) continue;
?
Конечно, может я не до конца разобрался с логикой этого конкретного if, но ошибка есть