コード例 #1
0
 /**
  * Checks if the passed combination is compatible with the provided customer configurator
  * selection.
  *
  * @param \Shopware\Bundle\StoreFrontBundle\Struct\Configurator\Group $group
  * @param array $combinations
  * @param $selection
  * @return bool
  */
 private function isCombinationValid(Struct\Configurator\Group $group, $combinations, $selection)
 {
     if (empty($combinations)) {
         return false;
     }
     foreach ($selection as $selectedGroup => $selectedOption) {
         if (!in_array($selectedOption, $combinations) && $selectedGroup !== $group->getId()) {
             return false;
         }
     }
     return true;
 }
コード例 #2
0
 /**
  * Converts a configurator option struct which used for default or selection configurators.
  *
  * @param StoreFrontBundle\Struct\Configurator\Group $group
  * @param StoreFrontBundle\Struct\Configurator\Option $option
  * @return array
  */
 public function convertConfiguratorOptionStruct(StoreFrontBundle\Struct\Configurator\Group $group, StoreFrontBundle\Struct\Configurator\Option $option)
 {
     $data = array('optionID' => $option->getId(), 'groupID' => $group->getId(), 'optionname' => $option->getName(), 'user_selected' => $option->isSelected(), 'selected' => $option->isSelected(), 'selectable' => $option->getActive());
     if ($option->getMedia()) {
         $data['media'] = $this->convertMediaStruct($option->getMedia());
     }
     return $data;
 }
コード例 #3
0
 /**
  * @param array $data
  * @return Struct\Configurator\Group
  */
 private function createGroup($data)
 {
     $group = new Struct\Configurator\Group();
     $translation = $this->getTranslation($data, '__configuratorGroup_translation', '__configuratorGroup_translation_fallback', ['name' => '__configuratorGroup_name', 'description' => '__configuratorGroup_description']);
     $data = array_merge($data, $translation);
     $group->setId((int) $data['__configuratorGroup_id']);
     $group->setName($data['__configuratorGroup_name']);
     $group->setDescription($data['__configuratorGroup_description']);
     return $group;
 }