Backend\Core\Engine\Meta::validate PHP Method

validate() public method

Validates the form It checks if there is a value when a checkbox is checked
public validate ( )
    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();
            }
        }
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Checks if the form is valid
  *
  * @return bool
  */
 private function isValid()
 {
     $fields = $this->form->getFields();
     $fields['name']->isFilled(Language::err('FieldIsRequired'));
     $fields['description']->isFilled(Language::err('FieldIsRequired'));
     $this->meta->validate();
     return $this->form->isCorrect();
 }