Subversion Repositories Applications.gtt

Rev

Rev 11 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 jpm 1
<?php
2
 
3
abstract class aAction {
4
 
5
	private static $resultat = null;
6
	private $suivant = null;
7
 
8
	public function getResultat()
9
	{
10
		if (aAction::$resultat == null) {
11
			aAction::$resultat = new Resultat;
12
		} else {
13
			return aAction::$resultat;
14
		}
15
	}
16
 
17
	public function getSuivant()
18
	{
19
		return $this->suivant;
20
	}
21
	public function setSuivant($s)
22
	{
23
		if (is_array($s)){
24
			$this->suivant = $s;
25
		} else {
26
			$this->suivant[] = $s;
27
		}
28
	}
29
 
30
	public function verifier(Resultat $Resultat)
31
    {
32
    	// Nous rassemblons les valeurs du tableau _POST contenat des : dans sous tableau de _POST.
33
    	foreach ($_POST as $cle => $val) {
34
    		$morceau = array();
35
    		if (preg_match('/^(.+):(.+)$/', $cle, $morceau)) {
36
    			$_POST[$morceau[1]][] = $morceau[2];
37
    			unset($_POST[$cle]);
38
    		}
39
    	}
40
    }
41
 
42
    public function demarrer()
43
    {
44
    	$Resultat = $this->getResultat();
45
    	$this->executer($Resultat);
46
		if ($this->getSuivant() != null) {
47
			for ($i = 0; $i < count($this->getSuivant()) ; $i++) {
48
				$liste_actions = $this->getSuivant();
49
				if ($liste_actions[$i] instanceof aAction) {
50
					$liste_actions[$i]->demarrer();
51
				} else {
52
					if ($liste_actions[$i] == '__defaut__') {
53
						$methode = 'executer';
54
					} else {
55
						$methode = 'executer'.$liste_actions[$i];
56
					}
57
					$this->$methode($Resultat);
58
				}
59
			}
60
		}
61
    }
62
 
63
    abstract protected function executer(Resultat $Resultat);
64
}
65
?>