Beispiel #1
0
 public function setNameField($data, $value)
 {
     if ($data->get(self::SLUG) == null) {
         $data->set(self::SLUG, Slug::create($value));
     }
     return $value;
 }
Beispiel #2
0
 public function actionUpdate($id)
 {
     $page = $this->loadModel($id);
     if (isset($_POST['Page'])) {
         if (Settings::get('SEO', 'slugs_enabled')) {
             if (isset($page->slug)) {
                 if (isset($page->slug->slug) && $_POST['Page']['slug'] != $page->slug->slug) {
                     if ($_POST['Page']['slug'] == '') {
                         $page->slug->delete();
                         $page->slug = NULL;
                     } else {
                         $page->slug->change($_POST['Page']['slug']);
                     }
                 }
             } else {
                 $page->slug = Slug::create($_POST['Page']['slug'], array('view', 'id' => $id));
                 $page->save();
             }
         }
         try {
             if ($page->save()) {
                 $this->redirect(array('view', 'id' => $page->id));
             }
         } catch (Exception $e) {
             $page->addError('', $e->getMessage());
         }
     }
     $this->render('update', array('page' => $page));
 }
Beispiel #3
0
 /**
  * When the model boots, register a created event listener that will create a slug,
  * using the model's id as the salt value for the generation of thee slug.
  */
 public static function boot()
 {
     parent::boot();
     static::created(function ($model) {
         $model->slug = Slug::create($model->id);
         $model->save();
     });
 }
Beispiel #4
0
 public function afterSave($event)
 {
     //slug for pages are handled in PageController, to prevent infinite loop
     if (get_class($this->owner) == 'Page') {
         return;
     }
     $page = $this->owner->page;
     if (Settings::get('SEO', 'slugs_enabled') && isset($_POST['Page']['slug']) && $_POST['Page']['slug'] != '') {
         if ($this->owner->scenario == 'insert' || $this->owner->scenario == 'update' && !isset($page->slug)) {
             //get the page
             $page = Page::model()->findByPk($page->id);
             //save the slug
             $page->slug = Slug::create($_POST['Page']['slug'], array('view', 'id' => $this->owner->id));
             $page->save();
         }
     }
 }