/** * @return bool */ public function saveObject() { if (!$this->fillObject()) { return false; } if ($this->placeholder->getId()) { $this->placeholder->update(); } else { $this->placeholder->create(); if ($this->getInput('update_definitions')) { $type = $this->placeholder->getCertificateType(); $definitions = srCertificateDefinition::where(array('type_id' => $type->getId()))->get(); /** @var $def srCertificateDefinition */ foreach ($definitions as $def) { $phv = srCertificatePlaceholderValue::where(array('definition_id' => $def->getId(), 'placeholder_id' => $this->placeholder->getId()))->first(); if (!is_null($phv)) { continue; // Extra check... should never be the case } $phv = new srCertificatePlaceholderValue(); $phv->setDefinitionId($def->getId()); $phv->setPlaceholderId($this->placeholder->getId()); foreach ($type->getLanguages() as $lang_code) { $phv->setValue($this->getInput("default_value_{$lang_code}"), $lang_code); } $phv->create(); } } } return true; }
/** * Create the values for the placeholders defined in the type * Each placeholder value inherits the default value defined in the type, per language * */ protected function createPlaceholderValues() { $placeholders = $this->type->getPlaceholders(); /** @var $placeholder srCertificatePlaceholder */ foreach ($placeholders as $placeholder) { $placeholder_value = new srCertificatePlaceholderValue(); $placeholder_value->setPlaceholderId($placeholder->getId()); $placeholder_value->setDefinitionId($this->getId()); $placeholder_value->setValue($placeholder->getDefaultValues()); $placeholder_value->create(); $this->placeholder_values[] = $placeholder_value; } }