/** * @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; }
/** * @return array */ public function getPlaceholderValues() { if (is_null($this->placeholder_values)) { $this->placeholder_values = srCertificatePlaceholderValue::where(array('definition_id' => $this->getId()))->orderBy('placeholder_id')->get(); } return $this->placeholder_values; }
public function delete() { // By deleting a placeholder, all placeholder values of existing definitions are deleted as well! foreach (srCertificatePlaceholderValue::where(array('placeholder_id' => $this->getId()))->get() as $value) { /** @var $value srCertificatePlaceholderValue */ $value->delete(); } parent::delete(); }