Subversion Repositories eFlore/Archives.eflore-consultation-v2

Rev

Rev 87 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 87 Rev 106
Line 27... Line 27...
27
    function affecterDonnees($donnees)
27
    function affecterDonnees($donnees)
28
    {
28
    {
29
        $this->donnees = $donnees;
29
        $this->donnees = $donnees;
30
    }
30
    }
Line 31... Line 31...
31
    
31
    
32
    function recupererDonnees($bool_descendance = FALSE)
32
    function recupererDonnees()
33
    {
33
    {
-
 
34
        return $this->donnees;
-
 
35
    }
-
 
36
    
-
 
37
    function recupererDonneesRecursivement($tab_chemin, $aso_retour = array())
-
 
38
    {
34
        if ($bool_descendance == TRUE) {
39
        
35
            $aso_donnees = array();
40
        if ($tab_chemin[0] == $this->recupererIdentifiant()) {
-
 
41
            return $aso_retour[$this->recupererIdentifiant()] = $this->donnees;
36
            $aso_donnees[$this->recupererIdentifiant()] = $this->donnees;
42
            
37
            $collections_blocks_fils = $this->recupererCollectionBlockFils();
43
            $collection_block_fils = $this->recupererCollectionBlockFils();
38
            if (is_array($collections_blocks_fils)) {
44
            for($i = 0; $i < count($collection_block_fils); $i++) {
-
 
45
                $collection = $collection_block_fils[$i];
39
                for($i = 0; $i < count($collections_blocks_fils); $i++) {
46
                
40
                    $collection = $collections_blocks_fils[$i];
47
                if ($collection->recupererIdentifiant() == $tab_chemin[1]) {
-
 
48
                    $blocks = $collection->recupererBlocksDeDonnees();
41
                    $blocks_de_donnees = $collection->recupererBlocksDeDonnees();
49
                    
42
                    for($j = 0; $j < count($blocks_de_donnees); $j++) {
50
                    for($j = 0; $j < count($blocks); $j++) {
43
                        $block = $blocks_de_donnees[$j];
-
 
-
 
51
                        $block = $blocks[$j];
44
                        $donnees = $block->recupererDonnees();
52
                        
-
 
53
                        $block->recupererDonneesRecursivement(array_shift($tab_chemin), $aso_retour);
45
                        $aso_donnees[$this->recupererIdentifiant()][$block->recupererIdentifiant()] = $donnees;
54
                        
46
                    }
55
                    }
47
                }
56
                }
48
            }
-
 
49
            return $aso_donnees;
-
 
50
        } else {
-
 
51
            return $this->donnees;
57
            }
-
 
58
        }
52
        }
59
        return $aso_retour;
Line 53... Line 60...
53
    }
60
    }
54
    
61
    
55
    function ajouterDonnee($clef, $valeur)
62
    function ajouterDonnee($clef, $valeur)
Line 75... Line 82...
75
    function recupererCollectionBlockFils()
82
    function recupererCollectionBlockFils()
76
    {
83
    {
77
        return $this->collectionBlocksfils;
84
        return $this->collectionBlocksfils;
78
    }
85
    }
Line 79... Line 86...
79
    
86
    
80
    function afficherPattern($chemin, $nom_fonction, $recuperer_descendance = FALSE, $aso_parametres = array())
87
    function afficherPattern($chemin, $nom_fonction, $aso_parametres = array(), $recuperer_ascendance = FALSE, &$aso_donnees = array())
81
    {
88
    {
-
 
89
        $retour = '';
-
 
90
        if ($recuperer_ascendance == TRUE) {
-
 
91
            $aso_donnees[$this->recupererIdentifiant()] = $this->recupererDonnees();
-
 
92
        }
-
 
93
        
-
 
94
        if ($chemin == $this->recupererIdentifiant() && $recuperer_ascendance == TRUE) {
82
        $retour = '';
95
            $retour .= call_user_func($nom_fonction, $aso_donnees, $aso_parametres);
83
        if($chemin == $this->recupererIdentifiant()) {
96
        } else if ($chemin == $this->recupererIdentifiant()) {
84
            $retour .= call_user_func($nom_fonction, $this->recupererDonnees($recuperer_descendance), $aso_parametres);
97
            $retour .= call_user_func($nom_fonction, $this->recupererDonnees(), $aso_parametres);
85
        } else {
98
        } else {
86
            $etape_chemin = explode('>', $chemin);
99
            $tab_etape_chemin = explode('>', $chemin);
87
            if($this->identifiant == $etape_chemin[0]) {
100
            if($this->recupererIdentifiant() == $tab_etape_chemin[0]) {
88
                $collection_block_fils = $this->recupererCollectionBlockFils();
101
                $collection_block_fils = $this->recupererCollectionBlockFils();
89
                for($i = 0; $i < count($collection_block_fils); $i++) {
102
                for($i = 0; $i < count($collection_block_fils); $i++) {
90
                    $collection = $collection_block_fils[$i];
103
                    $collection = $collection_block_fils[$i];
91
                    if ($collection->recupererIdentifiant() == $etape_chemin[1]) {
104
                    if ($collection->recupererIdentifiant() == $tab_etape_chemin[1]) {
-
 
105
                        array_shift($tab_etape_chemin);
92
                        array_shift($etape_chemin);
106
                        if ($recuperer_ascendance == TRUE) {
-
 
107
                            $retour .= $collection->afficherPattern(implode('>', $tab_etape_chemin), $nom_fonction, $aso_parametres, $recuperer_ascendance, $aso_donnees);
-
 
108
                        } else {
-
 
109
                            $retour .= $collection->afficherPattern(implode('>', $tab_etape_chemin), $nom_fonction, $aso_parametres);
93
                        $retour .= $collection->afficherPattern(implode('>', $etape_chemin), $nom_fonction, $recuperer_descendance, $aso_parametres);
110
                        }
94
                    }
111
                    }
95
                }
112
                }
96
            }
113
            }
97
        }
114
        }
98
        return $retour;
115
        return $retour;
Line 99... Line 116...
99
    }
116
    }
100
    
117
    
101
    function attribuerContexte($chemin, $cle_contexte, $cle_donnee)
118
    function attribuerContexteSql($chemin, $cle_contexte, $cle_donnee)
102
    {
119
    {
103
        if ($chemin == $this->recupererIdentifiant()) {
120
        if ($chemin == $this->recupererIdentifiant()) {
104
            $donnees = $this->recupererDonnees();
121
            $donnees = $this->recupererDonnees();
Line 110... Line 127...
110
                for($i = 0; $i < count($collection_block_fils); $i++) {
127
                for($i = 0; $i < count($collection_block_fils); $i++) {
111
                    $collection = $collection_block_fils[$i];
128
                    $collection = $collection_block_fils[$i];
112
                    if ($collection->recupererIdentifiant() == $etape_chemin[1]) {
129
                    if ($collection->recupererIdentifiant() == $etape_chemin[1]) {
113
                        array_shift($etape_chemin);
130
                        array_shift($etape_chemin);
114
                        $donnees = null;
131
                        $donnees = null;
115
                        $donnees = $collection->attribuerContexte(implode('>', $etape_chemin), $cle_contexte, $cle_donnee);
132
                        $donnees = $collection->attribuerContexteSql(implode('>', $etape_chemin), $cle_contexte, $cle_donnee);
116
                        if (isset($donnees)) {
133
                        if (isset($donnees)) {
117
                            $i = count($collection_block_fils);
134
                            $i = count($collection_block_fils);
118
                        }
135
                        }
119
                    }
136
                    }
120
                }
137
                }
Line 122... Line 139...
122
        }
139
        }
123
        $this->ajouterDonnee($cle_contexte, $donnees[$cle_donnee]);
140
        $this->ajouterDonnee($cle_contexte, $donnees[$cle_donnee]);
124
        return null;
141
        return null;
125
    }
142
    }
Line -... Line 143...
-
 
143
    
-
 
144
    function attribuerContexteValeur($chemin, $cle_contexte, $valeur = null)
-
 
145
    {
-
 
146
        if ($chemin == $this->recupererIdentifiant()) {
-
 
147
            $this->ajouterDonnee($cle_contexte, $valeur);
-
 
148
            return null;
-
 
149
        } else {
-
 
150
            $etape_chemin = explode('>', $chemin);
-
 
151
            if($this->identifiant == $etape_chemin[0]) {
-
 
152
                $collection_block_fils = $this->recupererCollectionBlockFils();
-
 
153
                for($i = 0; $i < count($collection_block_fils); $i++) {
-
 
154
                    $collection = $collection_block_fils[$i];
-
 
155
                    if ($collection->recupererIdentifiant() == $etape_chemin[1]) {
-
 
156
                        array_shift($etape_chemin);
-
 
157
                        $donnees = null;
-
 
158
                        $donnees = $collection->attribuerContexteValeur(implode('>', $etape_chemin), $cle_contexte, $valeur);
-
 
159
                        if (isset($donnees)) {
-
 
160
                            $i = count($collection_block_fils);
-
 
161
                        }
-
 
162
                    }
-
 
163
                }
-
 
164
            }
-
 
165
        }
-
 
166
        return null;
-
 
167
    }
126
    
168
    
127
    function afficher()
169
    function afficher()
128
    {
170
    {
129
        echo '<ol>';
171
        echo '<ol>';
130
        foreach ($this->donnees as $key => $value) {
172
        foreach ($this->donnees as $key => $value) {