public function validate()
{
// page title overwrite is checked
if ($this->frm->getField('page_title_overwrite')->isChecked()) {
$this->frm->getField('page_title')->isFilled(BackendLanguage::err('FieldIsRequired'));
}
// meta description overwrite is checked
if ($this->frm->getField('meta_description_overwrite')->isChecked()) {
$this->frm->getField('meta_description')->isFilled(BackendLanguage::err('FieldIsRequired'));
}
// meta keywords overwrite is checked
if ($this->frm->getField('meta_keywords_overwrite')->isChecked()) {
$this->frm->getField('meta_keywords')->isFilled(BackendLanguage::err('FieldIsRequired'));
}
// URL overwrite is checked
if ($this->frm->getField('url_overwrite')->isChecked()) {
$this->frm->getField('url')->isFilled(BackendLanguage::err('FieldIsRequired'));
$url = \SpoonFilter::htmlspecialcharsDecode($this->frm->getField('url')->getValue());
$generatedUrl = $this->generateURL($url);
// check if urls are different
if (CommonUri::getUrl($url) != $generatedUrl) {
$this->frm->getField('url')->addError(BackendLanguage::err('URLAlreadyExists'));
}
}
// if the form was submitted correctly the data array should be populated
if ($this->frm->isCorrect()) {
// get meta keywords
$keywords = $this->frm->getField('meta_keywords_overwrite')->getActualValue($this->frm->getField('meta_keywords')->getValue(), $this->frm->getField($this->baseFieldName)->getValue());
// get meta description
$description = $this->frm->getField('meta_description_overwrite')->getActualValue($this->frm->getField('meta_description')->getValue(), $this->frm->getField($this->baseFieldName)->getValue());
// get page title
$title = $this->frm->getField('page_title_overwrite')->getActualValue($this->frm->getField('page_title')->getValue(), $this->frm->getField($this->baseFieldName)->getValue());
// get URL
$url = $this->frm->getField('url_overwrite')->getActualValue(\SpoonFilter::htmlspecialcharsDecode($this->frm->getField('url')->getValue()), \SpoonFilter::htmlspecialcharsDecode($this->frm->getField($this->baseFieldName)->getValue()));
// get the real URL
$url = $this->generateURL($url);
// get meta custom
if ($this->custom && $this->frm->getField('meta_custom')->isFilled()) {
$custom = $this->frm->getField('meta_custom')->getValue();
} else {
$custom = null;
}
// set data
$this->data['keywords'] = $keywords;
$this->data['keywords_overwrite'] = $this->frm->getField('meta_keywords_overwrite')->getActualValue();
$this->data['description'] = $description;
$this->data['description_overwrite'] = $this->frm->getField('meta_description_overwrite')->getActualValue();
$this->data['title'] = $title;
$this->data['title_overwrite'] = $this->frm->getField('page_title_overwrite')->getActualValue();
$this->data['url'] = $url;
$this->data['url_overwrite'] = $this->frm->getField('url_overwrite')->getActualValue();
$this->data['custom'] = $custom;
if ($this->frm->getField('seo_index')->getValue() == 'none') {
unset($this->data['data']['seo_index']);
} else {
$this->data['data']['seo_index'] = $this->frm->getField('seo_index')->getValue();
}
if ($this->frm->getField('seo_follow')->getValue() == 'none') {
unset($this->data['data']['seo_follow']);
} else {
$this->data['data']['seo_follow'] = $this->frm->getField('seo_follow')->getValue();
}
}
}