fix(core): converger las clases con core_client, que llevaban meses derivando
El core viaja por dos canales que deberian ser iguales y no lo eran:
core_client -> webs legacy via el CMS, y web-base -> webs de Forge. Nadie los
sincroniza, asi que el mismo arreglo se hacia dos veces, por separado y con
implementaciones distintas.
Medida la deriva: 5 ficheros de classes/ (el resto eran plugins/, que
actualizacion.php se salta a proposito).
CocoDB.php, CocoDB_alias.php <- de core_client
Traen los guards `if (file_exists(...))`: si falta el alias o AcaiAPI,
CocoDB se declara igual con la implementacion legacy. Es degradacion
real para webs viejas y aqui no la teniamos. Se pierde la declaracion de
CocoDB_old, que no referencia NADIE en ninguno de los cuatro arboles.
AcaiAPI.php, CocoParser.php -> ya iban a core_client desde aqui
AcaiAPI resulto ser el MISMO codigo: 9252 tokens en ambos y 0
diferencias al ordenarlos. El bloque de auditoria de updatedDate estaba
colocado antes o despues del if($isInsert), y como ese bloque no escribe
en $record, las dos posiciones son equivalentes.
CocoEmail.php <- fusion, y la unica divergencia REAL
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. Ahora el camino se elige por entorno con el mismo
criterio que header.php:81 (un .acai en la raiz = local), en linea y sin
depender de otro fichero.
Para las webs de Forge NO cambia nada: las 131 tienen .acai salvo dos
directorios abandonados de abril sin index.php ni cms/lib/classes, que no
llegan a ser webs. Verificado en villagrancanaria: home, listado y ficha en
200 sin un solo error PHP, listado renderizando y hook en 54 ms.
Con los dos arboles ya identicos, el paso siguiente es que el CMS legacy se
nutra de web-base y dejar de mantener dos copias a mano.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
f81c5a26e1
commit
ec203bc1e6
@@ -1,6 +1,9 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/CocoDB_alias.php';
|
||||
class CocoDB_old
|
||||
if(file_exists(__DIR__ . '/CocoDB_alias.php')) {
|
||||
require_once __DIR__ . '/CocoDB_alias.php';
|
||||
} else {
|
||||
|
||||
class CocoDB
|
||||
{
|
||||
public static $tableCache = [];
|
||||
public static $uploadColumns = [];
|
||||
@@ -305,7 +308,8 @@ class CocoDB_old
|
||||
$user = @Api::$user["num"] ?: 1;
|
||||
}
|
||||
|
||||
$keysBase = ["createdDate" => $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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user