/** * Constructeur d'un administrateur en fonction de son login * @param login de l'administrateur * @return une instance d'administrateur sinon renvoi null */ public static function createFromLogin($login) { self::startSession(); if (strlen($login) == 8) { $pdo = myPDO::getInstance(); $rq1 = $pdo->prepare(<<<SQL \t\t\t\tSELECT numAdmin AS 'id' \t\t\t\tFROM Administrateur \t\t\t\tWHERE numAdmin = ? SQL ); $rq1->execute(array($login)); $rq1->setFetchMode(PDO::FETCH_CLASS, __CLASS__); if (($admin = $rq1->fetch()) !== false) { $_SESSION[self::session_key]['connected'] = true; //$admin->convention | crée une list de convention avec la class convention $admin->_convention = Convention::createFromAdmin($admin->getId()); //$admin->enseignant | Recupérer tous les ensignant en crée une methode Enseignant::getAll() dans la class enseignant $admin->enseignant = Enseignant::getAll(); $admin->saveIntoSession(); return $admin; } else { return null; } } else { throw new AuthenticationException("C'est pas un login de l'URCA!"); } }
/** * buildUrl * * @param array $url Url to build * * @return string */ public function buildUrl(array $url) { if (isset($url['controller'])) { // search & replace $urlRule = array_flip(explode('/', $this->rule)); foreach ($url as $rule => $data) { $urlRule[$rule] = Convention::toUrl(implode('/', (array) $data)); } return implode('/', array_intersect_key($urlRule, $url)); } else { $rule = key($url); $params = $url[$rule]; $ruleUrl = $this->routes[$rule]['path']; if ($params) { foreach ($params as $param => $paramValue) { $ruleUrl = str_replace(":{$param}", $paramValue, $ruleUrl); } } return $ruleUrl; } }