Ejemplo n.º 1
0
 /**
  * Translit username.
  *
  * @param string $username
  * @return string
  */
 protected function translitUsername($username)
 {
     return Inflector::slug(preg_replace('/[\\_\\-]+/iu', '-', $username));
 }
Ejemplo n.º 2
0
 /**
  * @inheritdoc
  */
 protected function getValue($event)
 {
     $isNewSlug = true;
     if ($this->attribute !== null) {
         $attributes = (array) $this->attribute;
         /* @var $owner BaseActiveRecord */
         $owner = $this->owner;
         if (!empty($owner->{$this->slugAttribute})) {
             $isNewSlug = false;
             if (!$this->immutable) {
                 foreach ($attributes as $attribute) {
                     if ($owner->isAttributeChanged($attribute)) {
                         $isNewSlug = true;
                         break;
                     }
                 }
             }
         }
         if ($isNewSlug) {
             $slugParts = [];
             foreach ($attributes as $attribute) {
                 $slugParts[] = $owner->{$attribute};
             }
             $slug = Inflector::slug(implode('-', $slugParts));
         } else {
             $slug = $owner->{$this->slugAttribute};
         }
     } else {
         $slug = parent::getValue($event);
     }
     if ($this->ensureUnique && $isNewSlug) {
         $baseSlug = $slug;
         $iteration = 0;
         while (!$this->validateSlug($slug)) {
             $iteration++;
             $slug = $this->generateUniqueSlug($baseSlug, $iteration);
         }
     }
     return $slug;
 }
Ejemplo n.º 3
0
 /**
  * @inheritdoc
  */
 public function sanitize($input)
 {
     return is_string($input) ? Inflector::slug($input, $this->replacement, $this->lowercase) : $input;
 }