modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2024-06-20 04:43:08 +04:00
parent 5490c78458
commit b6a3011fef
1 changed files with 30 additions and 5 deletions

View File

@ -2,6 +2,7 @@
namespace nur\sery\db; namespace nur\sery\db;
use nur\sery\cl; use nur\sery\cl;
use nur\sery\file\_File;
use nur\sery\php\func; use nur\sery\php\func;
use nur\sery\ValueException; use nur\sery\ValueException;
@ -69,12 +70,10 @@ abstract class CapacitorStorage {
$row[$sumCol] = $sum[$sumCol]; $row[$sumCol] = $sum[$sumCol];
} }
} }
} else { } elseif (array_key_exists($key, $values)) {
if (array_key_exists($key, $values)) {
$row[$col] = $values[$key]; $row[$col] = $values[$key];
} }
} }
}
return $row; return $row;
} }
@ -318,13 +317,39 @@ EOT;
return $this->_discharge($this->getChannel($channel), $reset); return $this->_discharge($this->getChannel($channel), $reset);
} }
protected function _convertValue2row(CapacitorChannel $channel, array $filter, array $cols): array {
$index = 0;
$fixed = [];
foreach ($filter as $key => $value) {
if ($key === $index) {
$index++;
if (is_array($value)) {
$value = $this->_convertValue2row($channel, $value, $cols);
}
$fixed[] = $value;
} else {
$col = "${key}__";
if (array_key_exists($col, $cols)) {
# colonne sérialisée
$fixed[$col] = $channel->serialize($value);
} else {
$fixed[$key] = $value;
}
}
}
return $fixed;
}
protected function verifixFilter(CapacitorChannel $channel, &$filter): void { protected function verifixFilter(CapacitorChannel $channel, &$filter): void {
if ($filter !== null && !is_array($filter)) { if ($filter !== null && !is_array($filter)) {
$id = $filter; $id = $filter;
$channel->verifixId($id); $channel->verifixId($id);
$filter = ["id_" => $id]; $filter = ["id_" => $id];
} }
$filter = $this->serialize($channel, $filter); $cols = $this->ColumnDefinitions($channel);
if ($filter !== null) {
$filter = $this->_convertValue2row($channel, $filter, $cols);
}
} }
/** indiquer le nombre d'éléments du canal spécifié */ /** indiquer le nombre d'éléments du canal spécifié */