Select Git revision
Categorie.php
ControleurObjet.php 5.93 KiB
<?php
class ControleurObjet
{
/**
* Affiche la page de cration d'un objet et se charge également de sa création.
* @return string
*/
public static function createObject(): string
{
$createdObject = [];
// Si reçoie une requête POST pour créer un objet et qu'on a plus d'une entrée
if (!empty($_POST["objectName"]) && count($_POST) > 1) {
$columns = [];
foreach ($_POST as $index => $value) {
if (!in_array($index, ["action", "objectName"])) {
$columns[$index] = $value;
}
}
$createdObject = Objet::addObject($_POST["objectName"], $columns);
if ($createdObject["status"] === "fail") {
$createdObject["status"] = "danger"; // Pour le style Bootstrap
}
}
return view('formulaire-creation-objet', [
'pageTitle' => 'Créer un objet',
'insertMessage' => $createdObject
]);
}
/**
* Retourne une liste JSON de la description de la table
* @return string
*/
public static function describeTable(): string
{
if (!empty($_GET["tableName"])) {
return json_encode(Objet::describeObject($_GET["tableName"]));
} else {
return json_encode([
"status" => "fail",
"message" => "Veuillez spécifier un nom de table!",
"columns" => []
]);
}
}
public static function modifyObject(): string
{
if (!empty($_GET["tableName"]) && !empty($_GET["idName"]) && !empty($_GET["idValue"])) {
$object = Objet::getObject($_GET["tableName"], ['name' => $_GET["idName"], 'value' => $_GET["idValue"]]);
$ojectTableDesc = Objet::describeObject($_GET["tableName"]);
$sqlToInputType = [
"int" => "number",
"varchar" => "text",
"date" => "date"
];
$properties = [];
foreach ($ojectTableDesc['columns'] as $column) {
// On vérifie que la colonne en question n'est pas une clé primaire
// Et qu'elle ne possède pas l'indicateur d'interdiction de modification "%!update%" en commentaire
if ($column['Key'] !== "PRI" && !in_array("%!update%", explode(',', $column["Comment"]))) {
$input["name"] = $column["Field"];
// Ici on transforme la CamelCase en Camel case
$input["showName"] = ucfirst(