skeeks\cms\models\behaviors\SeoPageName::getValue PHP Method

getValue() public method

public getValue ( Event $event ) : mixed
$event yii\base\Event
return mixed the value of the user.
    public function getValue($event)
    {
        if (!$this->value) {
            $filter = new FilterSeoPageName();
            $filter->maxLength = $this->maxLength;
            if ($this->owner->{$this->generatedAttribute}) {
                $seoPageName = $filter->filter($this->owner->{$this->generatedAttribute});
            } else {
                $seoPageName = $filter->filter($this->owner->{$this->fromAttribute});
            }
            //Нужно чтобы поле было уникальным
            if ($this->uniqeue) {
                if (!$this->owner->isNewRecord) {
                    //Значит неуникально
                    if ($founded = $this->owner->find()->where([$this->generatedAttribute => $seoPageName])->andWhere(["!=", "id", $this->owner->id])->one()) {
                        if ($last = $this->owner->find()->orderBy('id DESC')->one()) {
                            $seoPageName = $seoPageName . '-' . $last->id;
                            return $filter->filter($seoPageName);
                        }
                    }
                } else {
                    //Значит неуникально
                    if ($founded = $this->owner->find()->where([$this->generatedAttribute => $seoPageName])->one()) {
                        if ($last = $this->owner->find()->orderBy('id DESC')->one()) {
                            $seoPageName = $seoPageName . '-' . $last->id;
                            return $filter->filter($seoPageName);
                        }
                    }
                }
            }
            return $seoPageName;
        } else {
            return call_user_func($this->value, $event);
        }
    }
SeoPageName