/** * 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; } }
/** * @param string $code * * @return bool */ public static function setCurrent($code) { $language = Language::find()->where(['code' => $code])->one(); if ($language) { self::$current = $language; return true; } return false; }
/** * /lists/popular * * @return string */ public function actionPopular() { $language = null; $languageSlug = $this->request->getQueryParam('languageSlug'); if ($languageSlug) { $language = Language::find()->where(['isHidden' => 0, 'slug' => $languageSlug])->limit(1)->one(); } return $this->render('popular', ['language' => $language, 'list' => PopularSnippets::get($language)]); }
public function init() { parent::init(); if ($this->currentLanguage === null) { $this->currentLanguage = Language::getCurrent(); } if ($this->allowedLanguages === null) { $this->allowedLanguages = Language::find()->where('`id` != :id', [':id' => $this->currentLanguage->id])->all(); } $this->cssClass .= ' dropdown dropdown-language'; $this->options['class'] = trim($this->cssClass); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Language::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'code', $this->code]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Language::find(); // add conditions that should always apply here $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } // grid filtering conditions $query->andFilterWhere(['id' => $this->id, 'default' => $this->default, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); $query->andFilterWhere(['like', 'url_key', $this->url_key])->andFilterWhere(['like', 'local', $this->local])->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'image', $this->image]); return $dataProvider; }
/** * @param null $url * @return array|null|ActiveRecord */ static function getLangByUrl($url = null) { if ($url === null) { return null; } else { $language = Language::find()->where('url_key = :url_key', [':url_key' => $url])->one(); if ($language === null) { return null; } else { return $language; } } }
/** * Lists all Language models. * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Language::find()]); return $this->render('index', ['dataProvider' => $dataProvider]); }
/** * loadLanguages * * @return bool */ protected function loadLanguages() { $cacheKey = Yii::$app->params['cacheKeys']['languages']; $languages = $this->cache->get($cacheKey); if (!$languages) { $languages = []; $result = Language::find()->where(['isHidden' => 0])->orderBy('name')->all(); foreach ($result as $language) { if (count($language->snippets)) { $languages[$language->id] = $language->attributes; $languages[$language->id]['count'] = count($language->snippets); } } $this->cache->set($cacheKey, $languages, 600); } $this->languages = $languages; }
$this->title = 'Create a Snippet'; ?> <p>Here you can submit your snippets for everyone to see. If this is not your code, please be sure to credit those responsible. All fields are required.</p> <h4>Submission</h4> <?php $form = ActiveForm::begin(['id' => 'snippet-form', 'options' => ['class' => 'form'], 'fieldConfig' => ['inputOptions' => ['class' => 'form-control', 'required' => 'required']]]); ?> <div class="form-group"> <label for="languageId">Language</label> <?php echo Html::activeDropDownList($model, 'languageId', ArrayHelper::map(Language::find()->orderBy('name ASC')->all(), 'id', 'name'), ['class' => 'form-control', 'id' => 'languageId']); ?> </div> <?php echo $form->field($model, 'name', ['inputOptions' => ['type' => 'text', 'required' => 'required', 'placeholder' => 'Title of your Snippet']]); ?> <?php echo $form->field($model, 'description')->textArea(['rows' => '4', 'placeholder' => 'Github style markdown is allowed', 'required' => 'required']); ?> <?php echo $form->field($model, 'code')->textArea(['rows' => '12', 'placeholder' => '', 'required' => 'required']); ?>
/** * @param bool $skipSnippetCheck * @return bool */ protected function parseQueryParams($skipSnippetCheck = false) { $languageSlug = $this->request->getQueryParam('languageSlug'); $snippetSlug = $this->request->getQueryParam('snippetSlug'); // Make sure at least language slug is there if (!$languageSlug) { return $this->goHome(); } // Find the language row $this->language = Language::find()->where(['slug' => $languageSlug])->limit(1)->one(); if (!$this->language) { return false; } // Make sure at least language slug is there if (!$snippetSlug) { if ($skipSnippetCheck) { return true; } return $this->goHome(); } $this->snippet = Snippet::find()->where(['slug' => $snippetSlug, 'languageId' => $this->language->id])->limit(1)->one(); if (!$this->snippet && !$skipSnippetCheck) { return false; } return true; }
public function getAllLanguagesAsMappedArray() { $models = Language::find()->all(); return ArrayHelper::map($models, 'id', 'name'); }
public function init() { $model = Language::find()->where(['publish' => 1])->one(); echo $model->name; }
public static function getLanguages() { return Language::find()->where(['is_active' => 1])->all(); }