Example #1
0
 /**
  * Helper for setting template attributes
  *
  * @param Template $templateEntity
  * @param array    $attributes
  *
  * @return array
  */
 protected function addTemplateAttributes($templateEntity, $attributes)
 {
     foreach ($attributes as $id => $attribute) {
         if (!($attributeEntity = $templateEntity->getAttribute($attribute['name']))) {
             $attributeEntity = new Attribute();
             $templateEntity->addAttribute($attributeEntity);
         }
         $attributeEntity->setValueType($attribute['type'])->setName($attribute['name'])->setDisplayName($attribute['displayName'])->setDescription(isset($attribute['description']) ? $attribute['description'] : '')->setSort($attribute['sort'])->setTemplate($templateEntity);
         if (isset($attribute['options']) && is_array($attribute['options'])) {
             $i = 1;
             foreach ($attribute['options'] as $key => $option) {
                 if (!($optionEntity = $attributeEntity->getOptionByName($key))) {
                     $optionEntity = new Option();
                     $attributeEntity->addOption($optionEntity);
                 }
                 $optionEntity->setName($key)->setDisplayName($option)->setSort($i * 10)->setAttribute($attributeEntity);
                 $attributeEntity->addOption($optionEntity);
                 $this->entityManager->persist($optionEntity);
                 $i++;
             }
         }
         $this->entityManager->persist($attributeEntity);
     }
     $this->entityManager->persist($templateEntity);
     return $templateEntity->getAttributes();
 }