コード例 #1
0
ファイル: SnippetForm.php プロジェクト: jc21/snippets-site
 /**
  * Saves the Form
  *
  * @param  \yii\db\ActiveRecord  $member
  * @return bool
  */
 public function save($member)
 {
     // Find language
     $language = Language::find()->where(['id' => $this->languageId])->limit(1)->one();
     if (!$language) {
         $this->addError('languageId', 'Could not find Language');
         return false;
     }
     $slug = Util::generateUrlSafeSlug($this->name);
     $iteration = 0;
     // Generate a unique slug
     do {
         $exists = Snippet::find()->where(['slug' => $slug])->count();
         if ($exists) {
             $iteration++;
             $slug = Util::generateUrlSafeSlug($this->name . '-' . $iteration);
         }
     } while ($exists);
     // TODO: strip <script tags from description
     $snippet = new Snippet();
     $snippet->memberId = $member->id;
     $snippet->languageId = $language->id;
     $snippet->slug = $slug;
     $snippet->name = $this->name;
     $snippet->description = $this->description;
     $snippet->code = $this->code;
     if ($snippet->save()) {
         return '/snippets/' . $language->slug . '/' . $snippet->slug;
     } else {
         $this->addError('code', 'There was an error saving the Snippet!');
         return false;
     }
 }