public function setFromPost($formValues, $entity) { if (isset($formValues['taxonomy'])) { $flatVals = $formValues['taxonomy']; } else { $flatVals = $formValues; } foreach ($flatVals as $field => $values) { if (!is_array($values)) { continue; } foreach ($values as $val) { $order = isset($formValues['taxonomy-order'][$field]) ? $formValues['taxonomy-order'][$field] : 0; if (isset($this->config[$field]['options'][$val])) { $name = $this->config[$field]['options'][$val]; } else { $name = $val; } $taxentity = new Entity\Taxonomy(['name' => $name, 'content_id' => $entity->getId(), 'contenttype' => (string) $entity->getContenttype(), 'taxonomytype' => $field, 'slug' => $val, 'sortorder' => $order]); $this->add($taxentity); } } }