Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 230 → Rev 231

/trunk/services/bibliotheque/ontologie/OntologieFormateur.php
New file
0,0 → 1,89
<?php
class OntologieFormateur {
 
private $termeAFormater = null;
private $decorateurs = array();
private $bdd = null;
private $champsProjet = array();
private $champsRetour = null;
private $detailsHrefTpl = null;
private $langueDemandee = null;
 
public function setTermeAFormater(OntologieDO $ontologieDO) {
$this->termeAFormater = $ontologieDO;
}
 
public function setChampsRetour(Array $champsRetour) {
$this->champsRetour = $champsRetour;
}
 
public function setChampsProjet(Array $champsProjet) {
$this->champsProjet = $champsProjet;
}
 
public function setDetailsHrefTpl($tpl) {
$this->detailsHrefTpl = $tpl;
}
 
public function setLangueDemandee($langue) {
$this->langueDemandee = $langue;
}
 
public function setBdd($bdd) {
$this->bdd = $bdd;
}
 
public function formaterDetails() {
$termeDeco = new OntologieDecorateur($this->termeAFormater, $this->detailsHrefTpl, $this->langueDemandee);
$projetDeco = new OntologieChampsProjetDecorateur($termeDeco, $this->champsProjet);
 
if ($this->avoirDemandeChampsRetour()) {
$this->decorateurs[] = $termeDeco;
$this->decorateurs[] = $projetDeco;
 
$this->traiterChampsRetour();
} else {
$termeDeco->ajouterId();
$termeDeco->ajouterIntitule();
$termeDeco->ajouterDescription();
$termeDeco->ajouterClasseId();
$termeDeco->ajouterClasse();
$termeDeco->ajouterClasseHref();
 
$projetDeco->ajouterChampsSupplementaires();
}
 
return $termeDeco->getTermeFormate();
}
 
public function formaterListe() {
$termeDeco = new OntologieDecorateur($this->termeAFormater, $this->detailsHrefTpl, $this->langueDemandee);
$termeDeco->ajouterId();
$termeDeco->ajouterIntitule();
$termeDeco->ajouterHref();
 
if ($this->avoirDemandeChampsRetour()) {
$this->decorateurs[] = $termeDeco;
$this->decorateurs[] = new OntologieChampsProjetDecorateur($termeDeco, $this->champsProjet);
 
$this->traiterChampsRetour();
}
 
return $termeDeco->getTermeFormate();
}
 
private function avoirDemandeChampsRetour() {
$demande = true;
if ($this->champsRetour === null || count($this->champsRetour) == 0) {
$demande = false;
}
return $demande;
}
 
private function traiterChampsRetour() {
foreach ($this->decorateurs as $deco) {
$deco->traiterChampsRetour($this->champsRetour);
}
}
}
?>