64 lines
1.8 KiB
PHP
64 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace manager\repo;
|
|
use \manager\Database;
|
|
use \manager\Checker;
|
|
use \manager\sessionManager;
|
|
|
|
class category extends parentRepo{
|
|
|
|
protected static function table_name(){ static $table_name = 'categories'; return $table_name; }
|
|
|
|
|
|
/* CREATION D'UNE NOUVELLE CATEGORIE SI AUCUNE AVEC CE NOM N'EXISTE DEJA, SINON RENVOIE L'ID
|
|
*
|
|
* @intitule<String> Nom de la catégorie
|
|
*
|
|
* @return id<int> Retourne l'id de la catégorie crée, FALSE si erreur
|
|
*
|
|
*/
|
|
public static function getOrCreate($intitule){
|
|
/* [0] Vérification des INPUT
|
|
=========================================================*/
|
|
// Si erreur de type de paramètre, on retourne FALSE
|
|
if( !Checker::run('varchar(0,40)', $intitule) )
|
|
return false;
|
|
|
|
/* [1] Vérification qu'aucune n'a cet intitulé
|
|
=========================================================*/
|
|
$existing = self::getByIntitule($intitule);
|
|
|
|
/* (1) Si existe déja avec cet intitulé, on récupère l'id */
|
|
if( is_array($existing) && count($existing) > 0 )
|
|
return $existing[0]['idCategorie'];
|
|
|
|
|
|
/* [2] Création si l'intitulé n'est pas déja utilisé
|
|
=========================================================*/
|
|
$create_r = Database::getPDO()->prepare("INSERT INTO categories(idCategorie, intitule)
|
|
VALUES(DEFAULT, :intitule)");
|
|
$create_r_status = $create_r->execute( array( ':intitule' => $intitule ) );
|
|
|
|
// Si erreur de requête
|
|
if( $create_r_status === false )
|
|
return false;
|
|
|
|
|
|
/* [3] On vérifie et renvoie l'id
|
|
=========================================================*/
|
|
$created = self::getByIntitule($intitule);
|
|
|
|
/* (1) Si existe déja avec cet intitulé, on récupère l'id */
|
|
if( is_array($created) && count($created) > 0 )
|
|
return $created[0]['idCategorie'];
|
|
|
|
// Sinon, c'est qu'il y a une erreur
|
|
return false;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
?>
|