Subversion Repositories Applications.gtt

Rev

Rev 10 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 jpm 1
<?php
2
 
11 jpm 3
abstract class aControlleurAction {
4
 
5
    private $suivant;
6
 
7
	public function getRegistre()
10 jpm 8
	{
11 jpm 9
		return Registre::getRegistre();
10 jpm 10
	}
11 jpm 11
 
12
    // Suivant
13
    public function getSuivant()
10 jpm 14
	{
15
		return $this->suivant;
16
	}
17
	public function setSuivant($s)
18
	{
19
		if (is_array($s)){
20
			$this->suivant = $s;
21
		} else {
22
			$this->suivant[] = $s;
23
		}
24
	}
25
 
11 jpm 26
	public function demarrer()
10 jpm 27
    {
11 jpm 28
		if (!is_null($this->getSuivant())) {
29
			// ATTENTION :
30
			// Il est important de laisser "count($this->getSuivant())" $this->getSuivant() peut varier de taille
10 jpm 31
			for ($i = 0; $i < count($this->getSuivant()) ; $i++) {
32
				$liste_actions = $this->getSuivant();
11 jpm 33
				if ($liste_actions[$i] instanceof aControlleurAction) {
10 jpm 34
					$liste_actions[$i]->demarrer();
35
				} else {
36
					if ($liste_actions[$i] == '__defaut__') {
37
						$methode = 'executer';
38
					} else {
39
						$methode = 'executer'.$liste_actions[$i];
40
					}
11 jpm 41
					if (method_exists($this, $methode)) {
42
						$this->$methode();
43
					} else {
44
						$m = "La méthode $methode de la classe ".get_class($this)." est introuvable!";
45
    					trigger_error($m, E_USER_ERROR);
46
					}
10 jpm 47
				}
48
			}
11 jpm 49
		} else {
50
			$m = "Le registre ne  contient aucune action!";
51
    		trigger_error($m, E_USER_ERROR);
10 jpm 52
		}
53
    }
11 jpm 54
 
55
	public function verifier()
56
    {
57
    	// Nous rassemblons les valeurs du tableau _POST contenant des : dans des sous-tableau de _POST.
58
    	foreach ($_POST as $cle => $val) {
59
    		$morceau = array();
60
    		if (preg_match('/^(.+?)(:.+)+$/', $cle, $morceau)) {
61
    			$table = '';
62
    			foreach (explode(':', trim($morceau[2], ':')) as $c) {
63
    				$table .= '['.$c.']';
64
    			}
65
    			eval('$_POST[$morceau[1]]'.$table.' = $val;');
66
    			unset($_POST[$cle]);
67
    		}
68
    	}
69
    }
10 jpm 70
 
11 jpm 71
    abstract protected function executer();
10 jpm 72
}
73
?>