diff options
| author | Silvio <s1lv10@uol.com.br> | 2010-09-21 16:32:06 -0300 | 
|---|---|---|
| committer | Silvio <s1lv10@uol.com.br> | 2010-09-21 16:32:06 -0300 | 
| commit | bb31ca3127470a2abf15b5110e8b80f9fdc6e4a3 (patch) | |
| tree | b9eaff14ed704a2e6f8e1239f111b277ee052bd3 /lib | |
| parent | 504341d67c0887d4d496465ab0ed052be46c6390 (diff) | |
| download | sf_isis_importer_plugin-bb31ca3127470a2abf15b5110e8b80f9fdc6e4a3.tar.gz sf_isis_importer_plugin-bb31ca3127470a2abf15b5110e8b80f9fdc6e4a3.tar.bz2 | |
Adding method addOneToManySubfields
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sfIsisImporterRelations.class.php | 37 | 
1 files changed, 34 insertions, 3 deletions
| diff --git a/lib/sfIsisImporterRelations.class.php b/lib/sfIsisImporterRelations.class.php index 956d287..bf41120 100644 --- a/lib/sfIsisImporterRelations.class.php +++ b/lib/sfIsisImporterRelations.class.php @@ -44,10 +44,12 @@ class sfIsisImporterRelations extends sfIsisImporterEntities {    }    /** -   * Add simple entities data into the model. +   * Add simple entities data into the model using main item data.     * -   * @param object $model Model -   * @param array  $field Field data from ISIS database schema +   * @param object $model  Model +   * @param array  $field  Field data from ISIS database schema +   * @param string $entity Entity name +   * @param string $key    Optional data key     */      public function addOneToManyMain(&$model, array $field, $entity, $key = 'name')    { @@ -61,6 +63,35 @@ class sfIsisImporterRelations extends sfIsisImporterEntities {    }    /** +   * Add simple entities data into the model using subfield data. +   * +   * @param object $model Model +   * @param array  $field Field data from ISIS database schema +   * @param string $entity Entity name +   */   +  public function addOneToManySubfields(&$model, array $field, $entity) +  { +    $relations = array(); + +    foreach (new IsisSubfieldIterator($this->isis, $field) as $row => $subfield) +    { +      if (!isset($relations[$row])) +      { +        // Initialize a new relation. +        $relations[$row] = $this->addOneToMany($model, $entity); +      } + +      $relations[$row]->{$subfield} = $this->isis->getSubfield($field, $subfield, $row); +    } + +    // Save all relations. +    foreach($relations as $relation) +    { +      $relation->save(); +    }     +  } + +  /**     * Import a single value to a many to many data model.     *     * @param object $model    Model | 
