Subversion Repositories eFlore/Archives.eflore-consultation-v2

Rev

Rev 106 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php

class collectionblockdedonnees{
    
    protected $identifiant;
    protected $collection;
    protected $erreur;
    
    function __construct($identifiant)
    {
        $this->identifiant = $identifiant;
        $this->collection = array();
    }
   
   function affecterIdentifiant($identifiant)
    {
        $this->identifiant = $identifiant;
    }
    
    function ajouterDonnees($donnees, $identifiant = null)
    {
        if (is_null($identifiant)) {
            $block = new blockdedonnees($this->identifiant);
        } else {
            $block = new blockdedonnees($identifiant);
        }
        $block->affecterDonnees($donnees);
        $this->affecterBlockDeDonnees($block);
    }
    
    function affecterBlockDeDonnees($block_donnees)
    {
        array_push($this->collection,$block_donnees);
    }
    
    function recupererBlocksDeDonnees()
    {
        return $this->collection;
    }
    
    function recupererIdentifiant()
    {
        return $this->identifiant;
    }
    
    function recupererErreur()
    {
        return $this->erreur;
    }
    
    function afficherPattern($chemin, $nom_fonction, $aso_parametres = array(), $recuperer_ascendance = FALSE, &$aso_donnees = array())
    {
        $retour = '';
        $collection = $this->recupererBlocksDeDonnees();
        for($i = 0; $i < count($collection); $i++) {
            $block = $collection[$i];
            if ($recuperer_ascendance == TRUE) {
                $retour .= $block->afficherPattern($chemin, $nom_fonction, $aso_parametres, $recuperer_ascendance, $aso_donnees);
            } else {
                $retour .= $block->afficherPattern($chemin, $nom_fonction, $aso_parametres);
            }
        }
        return $retour;
    }
    
    function attribuerContexteSql($chemin, $cle_contexte, $cle_donnee)
    {
        for($i = 0; $i < count($this->collection); $i++) {
            $block_donnees = $this->collection[$i];
            $donnees = null;
            $donnees = $block_donnees->attribuerContexteSql($chemin, $cle_contexte, $cle_donnee);
            if (isset($donnees)) {
                return $donnees;
            }
        }
        return null;
    }
    
    function attribuerContexteValeur($chemin, $cle_contexte, $valeur = null)
    {
        for($i = 0; $i < count($this->collection); $i++) {
            $block_donnees = $this->collection[$i];
            $donnees = null;
            $donnees = $block_donnees->attribuerContexteValeur($chemin, $cle_contexte, $valeur);
            if (isset($donnees)) {
                return $donnees;
            }
        }
        return null;
    }
    
    function afficher()
    {
        echo '<li><b>'.$this->identifiant.'</b></li>';
        for($i = 0; $i < count($this->collection); $i++) {
            $une_collection = $this->collection[$i];
            $une_collection->afficher();
        }
    }
}
?>