コード例 #1
0
ファイル: PropertyHydrator.php プロジェクト: Goucher/shopware
 /**
  * @param array $data
  * @return Struct\Property\Set
  */
 private function hydrateSet(array $data)
 {
     $set = new Struct\Property\Set();
     $translation = $this->getTranslation($data, '__propertySet_translation', '__propertySet_translation_fallback', ['groupName' => '__propertySet_name']);
     $data = array_merge($data, $translation);
     $set->setId((int) $data['__propertySet_id']);
     $set->setName($data['__propertySet_name']);
     $set->setComparable((bool) $data['__propertySet_comparable']);
     if ($data['__propertySetAttribute_id']) {
         $attribute = $this->extractFields('__propertySetAttribute_', $data);
         $set->addAttribute('core', $this->attributeHydrator->hydrate($attribute));
     }
     return $set;
 }
コード例 #2
0
 /**
  * Example:
  *
  * return [
  *     9 => [
  *         'id' => 9,
  *         'optionID' => 9,
  *         'name' => 'Farbe',
  *         'groupID' => 1,
  *         'groupName' => 'Edelbrände',
  *         'value' => 'goldig',
  *         'values' => [
  *             53 => 'goldig',
  *         ],
  *     ],
  *     2 => [
  *         'id' => 2,
  *         'optionID' => 2,
  *         'name' => 'Flaschengröße',
  *         'groupID' => 1,
  *         'groupName' => 'Edelbrände',
  *         'value' => '0,5 Liter, 0,7 Liter, 1,0 Liter',
  *         'values' => [
  *             23 => '0,5 Liter',
  *             24 => '0,7 Liter',
  *             25 => '1,0 Liter',
  *         ],
  *     ],
  * ];
  *
  * @param StoreFrontBundle\Struct\Property\Set $set
  * @return array
  */
 public function convertPropertySetStruct(StoreFrontBundle\Struct\Property\Set $set)
 {
     $result = [];
     foreach ($set->getGroups() as $group) {
         $values = array_map(function (StoreFrontBundle\Struct\Property\Option $option) {
             return $option->getName();
         }, $group->getOptions());
         $mediaValues = array();
         foreach ($group->getOptions() as $option) {
             /**@var $option StoreFrontBundle\Struct\Property\Option */
             if ($option->getMedia()) {
                 $mediaValues[$option->getId()] = array_merge(array('valueId' => $option->getId()), $this->convertMediaStruct($option->getMedia()));
             }
         }
         $result[$group->getId()] = ['id' => $group->getId(), 'optionID' => $group->getId(), 'name' => $group->getName(), 'groupID' => $set->getId(), 'groupName' => $set->getName(), 'value' => implode(', ', $values), 'values' => $values, 'media' => $mediaValues];
     }
     return $result;
 }