63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace manager\repo;
|
||
|
use \manager\Database;
|
||
|
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( !Database::check('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;
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
?>
|