diff --git a/cms/lib/classes/CocoDB.php b/cms/lib/classes/CocoDB.php index 551132d..bd1fe1d 100755 --- a/cms/lib/classes/CocoDB.php +++ b/cms/lib/classes/CocoDB.php @@ -1,6 +1,9 @@ $d, "createdByUserNum" => $user]; + // Anael - Cambio 14/08/2026: Claves base añadidas aquí + $keysBase = ["createdDate" => $d, "createdByUserNum" => $user, "updatedDate" => $d, "updatedByUserNum" => $user]; $keys = [ @@ -313,10 +317,13 @@ class CocoDB_old "multi" => ["dragSortOrder" => $t] ]; - $sqlBase = "$operation $prefix$table SET updatedDate='$d', updatedByUserNum='$user'"; + // Anael - Cambio 14/08/2026: Modificado SQL base, ahora solo setea num dependiendo del update. + $sqlBase = "$operation $prefix$table SET num=" . ($update ? "num" : "NULL"); + //$sqlBase = "$operation $prefix$table SET updatedDate='$d', updatedByUserNum='$user'"; if (!$update) { - $sqlBase .= ", num=NULL"; + // Anael - Cambio 14/08/2026: Ya está arriba, así que debería estar listo así. + //$sqlBase .= ", num=NULL"; foreach ($keysBase as $keyBase => $valueBase) { if (isset($record[$keyBase])) continue; @@ -1414,3 +1421,5 @@ class CocoDB_old return 0; } } + +} diff --git a/cms/lib/classes/CocoDB_alias.php b/cms/lib/classes/CocoDB_alias.php index 996bc6d..e1bc12a 100644 --- a/cms/lib/classes/CocoDB_alias.php +++ b/cms/lib/classes/CocoDB_alias.php @@ -24,6 +24,7 @@ * $result = CocoDB_alias::get('productos', 'visible=1', 'num ASC', 10); */ +if(file_exists(__DIR__ . '/AcaiAPI.php')) { require_once __DIR__ . '/AcaiAPI.php'; class CocoDB { @@ -376,3 +377,5 @@ class CocoDB { trigger_error('CocoDB_alias::getUploadsResultsFromRecord() es un método interno.', E_USER_WARNING); } } + +} diff --git a/cms/lib/classes/CocoEmail.php b/cms/lib/classes/CocoEmail.php index b872fda..a11f8f2 100755 --- a/cms/lib/classes/CocoEmail.php +++ b/cms/lib/classes/CocoEmail.php @@ -163,10 +163,35 @@ class CocoEmail { if (!$subject && $record) $subject = t($record, self::$field_subject); + // El correo sale por dos caminos segun el entorno, y esta era la unica + // divergencia real entre el core de Forge y el de las webs legacy: + // web-base mandaba SIEMPRE por el proxy y core_client SIEMPRE directo, + // asi que el fichero no se podia unificar sin cambiarle el + // comportamiento a media plataforma. Con la condicion delante, el mismo + // fichero vale para los dos canales. + // + // En local/test hace falta el proxy: el envio directo no sale de ahi. + // En produccion se mantiene el directo, que es lo que han hecho siempre + // esas webs. + // + // Mismo criterio de deteccion que header.php:81 — un `.acai` en la raiz + // de la web marca entorno local. Se comprueba en linea a proposito, sin + // depender de que otro fichero haya definido nada (ver el commit + // f81c5a2 de web-base, "el entorno se detecta en linea"). + // Desde cms/lib/classes/ la raiz esta tres niveles arriba. + $esEntornoLocal = is_file(dirname(__FILE__) . '/../../../.acai'); + + // Se devuelve array en los dos caminos. El directo no devolvia nada + // (core_client) y el del proxy si (web-base): unificar hacia el array es + // aditivo — quien ignoraba el retorno lo sigue ignorando. $result = []; foreach ($to as $destinatario) { - $resultString = self::send_email_coco_proxy($destinatario, $subject, $content); - $result[] = @json_decode($resultString,true) ?: ["success" => false, "message" => "Error decoding response", "raw_response" => $resultString]; + if ($esEntornoLocal) { + $resultString = self::send_email_coco_proxy($destinatario, $subject, $content); + $result[] = @json_decode($resultString,true) ?: ["success" => false, "message" => "Error decoding response", "raw_response" => $resultString]; + } else { + $result[] = self::send_email($destinatario, $subject, $content); + } } self::$attach_files = []; return $result;