29,27 → 29,34 |
$this->donnees = $donnees; |
} |
|
function recupererDonnees($bool_descendance = FALSE) |
function recupererDonnees() |
{ |
if ($bool_descendance == TRUE) { |
$aso_donnees = array(); |
$aso_donnees[$this->recupererIdentifiant()] = $this->donnees; |
$collections_blocks_fils = $this->recupererCollectionBlockFils(); |
if (is_array($collections_blocks_fils)) { |
for($i = 0; $i < count($collections_blocks_fils); $i++) { |
$collection = $collections_blocks_fils[$i]; |
$blocks_de_donnees = $collection->recupererBlocksDeDonnees(); |
for($j = 0; $j < count($blocks_de_donnees); $j++) { |
$block = $blocks_de_donnees[$j]; |
$donnees = $block->recupererDonnees(); |
$aso_donnees[$this->recupererIdentifiant()][$block->recupererIdentifiant()] = $donnees; |
return $this->donnees; |
} |
|
function recupererDonneesRecursivement($tab_chemin, $aso_retour = array()) |
{ |
|
if ($tab_chemin[0] == $this->recupererIdentifiant()) { |
return $aso_retour[$this->recupererIdentifiant()] = $this->donnees; |
|
$collection_block_fils = $this->recupererCollectionBlockFils(); |
for($i = 0; $i < count($collection_block_fils); $i++) { |
$collection = $collection_block_fils[$i]; |
|
if ($collection->recupererIdentifiant() == $tab_chemin[1]) { |
$blocks = $collection->recupererBlocksDeDonnees(); |
|
for($j = 0; $j < count($blocks); $j++) { |
$block = $blocks[$j]; |
|
$block->recupererDonneesRecursivement(array_shift($tab_chemin), $aso_retour); |
|
} |
} |
} |
return $aso_donnees; |
} else { |
return $this->donnees; |
} |
return $aso_retour; |
} |
|
function ajouterDonnee($clef, $valeur) |
77,20 → 84,30 |
return $this->collectionBlocksfils; |
} |
|
function afficherPattern($chemin, $nom_fonction, $recuperer_descendance = FALSE, $aso_parametres = array()) |
function afficherPattern($chemin, $nom_fonction, $aso_parametres = array(), $recuperer_ascendance = FALSE, &$aso_donnees = array()) |
{ |
$retour = ''; |
if($chemin == $this->recupererIdentifiant()) { |
$retour .= call_user_func($nom_fonction, $this->recupererDonnees($recuperer_descendance), $aso_parametres); |
if ($recuperer_ascendance == TRUE) { |
$aso_donnees[$this->recupererIdentifiant()] = $this->recupererDonnees(); |
} |
|
if ($chemin == $this->recupererIdentifiant() && $recuperer_ascendance == TRUE) { |
$retour .= call_user_func($nom_fonction, $aso_donnees, $aso_parametres); |
} else if ($chemin == $this->recupererIdentifiant()) { |
$retour .= call_user_func($nom_fonction, $this->recupererDonnees(), $aso_parametres); |
} else { |
$etape_chemin = explode('>', $chemin); |
if($this->identifiant == $etape_chemin[0]) { |
$tab_etape_chemin = explode('>', $chemin); |
if($this->recupererIdentifiant() == $tab_etape_chemin[0]) { |
$collection_block_fils = $this->recupererCollectionBlockFils(); |
for($i = 0; $i < count($collection_block_fils); $i++) { |
$collection = $collection_block_fils[$i]; |
if ($collection->recupererIdentifiant() == $etape_chemin[1]) { |
array_shift($etape_chemin); |
$retour .= $collection->afficherPattern(implode('>', $etape_chemin), $nom_fonction, $recuperer_descendance, $aso_parametres); |
if ($collection->recupererIdentifiant() == $tab_etape_chemin[1]) { |
array_shift($tab_etape_chemin); |
if ($recuperer_ascendance == TRUE) { |
$retour .= $collection->afficherPattern(implode('>', $tab_etape_chemin), $nom_fonction, $aso_parametres, $recuperer_ascendance, $aso_donnees); |
} else { |
$retour .= $collection->afficherPattern(implode('>', $tab_etape_chemin), $nom_fonction, $aso_parametres); |
} |
} |
} |
} |
98,7 → 115,7 |
return $retour; |
} |
|
function attribuerContexte($chemin, $cle_contexte, $cle_donnee) |
function attribuerContexteSql($chemin, $cle_contexte, $cle_donnee) |
{ |
if ($chemin == $this->recupererIdentifiant()) { |
$donnees = $this->recupererDonnees(); |
112,7 → 129,7 |
if ($collection->recupererIdentifiant() == $etape_chemin[1]) { |
array_shift($etape_chemin); |
$donnees = null; |
$donnees = $collection->attribuerContexte(implode('>', $etape_chemin), $cle_contexte, $cle_donnee); |
$donnees = $collection->attribuerContexteSql(implode('>', $etape_chemin), $cle_contexte, $cle_donnee); |
if (isset($donnees)) { |
$i = count($collection_block_fils); |
} |
124,6 → 141,31 |
return null; |
} |
|
function attribuerContexteValeur($chemin, $cle_contexte, $valeur = null) |
{ |
if ($chemin == $this->recupererIdentifiant()) { |
$this->ajouterDonnee($cle_contexte, $valeur); |
return null; |
} else { |
$etape_chemin = explode('>', $chemin); |
if($this->identifiant == $etape_chemin[0]) { |
$collection_block_fils = $this->recupererCollectionBlockFils(); |
for($i = 0; $i < count($collection_block_fils); $i++) { |
$collection = $collection_block_fils[$i]; |
if ($collection->recupererIdentifiant() == $etape_chemin[1]) { |
array_shift($etape_chemin); |
$donnees = null; |
$donnees = $collection->attribuerContexteValeur(implode('>', $etape_chemin), $cle_contexte, $valeur); |
if (isset($donnees)) { |
$i = count($collection_block_fils); |
} |
} |
} |
} |
} |
return null; |
} |
|
function afficher() |
{ |
echo '<ol>'; |