/** * Création des lignes de jeux de données. * * @param EiDataSet $ds * @param null $parent */ public function createEmptyDataLines($ds = null, $parent = null) { $line = new EiDataLine(); $line->setEiDataSet($ds); $line->setLft($this->getLft()); $line->setRgt($this->getRgt()); $line->setLevel($this->getLevel()); $line->setEiDataLineParent($parent); if ($parent == null) { $ds->setRootStr($line); } }
/** * Créer une nouvelle ligne de données vide pour le block * @param type $ei_data_set_id * @return \EiDataLine */ public function createEiDataLine($ei_data_set_id, $root_id = null) { $ei_data_line = new EiDataLine(); $ei_data_line->setEiDataSetStructureId($this->getId()); $ei_data_line->setEiDataSetId($ei_data_set_id); $ei_data_line->setRootId($root_id); $params = $this->getLeaves(); $ei_data_lines = new Doctrine_Collection('EiDataLine'); foreach ($params as $p => $param) { $param_line = new EiDataLine(); $param_line->setEiDataLineParent($ei_data_line); $param_line->setEiDataSetStructureId($param->getId()); $param_line->setEiDataLineRoot($ei_data_line->getEiDataLineRoot()); $param_line->setEiDataSetId($ei_data_set_id); $param_line->setRootId($root_id); $ei_data_lines->add($param_line); } $ei_data_line->setEiDataLines($ei_data_lines); return $ei_data_line; }
/** * Méthode permettant de vérifier puis compléter un jeu de données s'il manque des attributs. */ public function completeDataSet() { /** @var EiDataSetStructureTable $dsTable */ $dsTable = Doctrine_Core::getTable("EiDataSetStructure"); /** @var EiDataLineTable $dlTable */ $dlTable = Doctrine_Core::getTable("EiDataLine"); // Récupération des éléments manquants. $eltsMqts = $dsTable->findMissingElementsInDataSet($this->getId(), $this->getEiNode()->getEiScenarioNode()->getObjId()); if ($eltsMqts != null && $eltsMqts->count() > 0) { // On parcourt la liste d'éléments manquants. /** @var EiDataSetStructure $elt */ foreach ($eltsMqts as $elt) { // CAS ATTRIBUT. if ($elt->getType() == EiDataSetStructure::$TYPE_LEAF) { $lignesConcernees = $dsTable->getRelatedDataSetLines($this->getId(), $elt->getEiDatasetStructureParentId()); if (count($lignesConcernees) > 0) { foreach ($lignesConcernees as $ligneConcernee) { $parent = $dlTable->find($ligneConcernee["id"]); $ligne = new EiDataLine(); $ligne->setEiDataSetId($this->getId()); $ligne->setEiDataSetStructureId($elt->getId()); $ligne->setRootId($elt->getRootId()); $ligne->save(); $ligne->getNode()->insertAsLastChildOf($parent); } } } } } }