public function actionSlug($slug)
 {
     $model = Place::find()->where(['slug' => $slug])->one();
     if (!is_null($model)) {
         $gps = $model->getLocation($model->id);
         return $this->render('view', ['model' => $model, 'gps' => $gps]);
     } else {
         return $this->redirect('/user-place/index');
     }
 }
Beispiel #2
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Place::find()->joinWith('user_place')->where(['user_id' => Yii::$app->user->getId()]);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'place_type' => $this->place_type, 'status' => $this->status, 'created_by' => $this->created_by, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'google_place_id', $this->google_place_id])->andFilterWhere(['like', 'slug', $this->slug])->andFilterWhere(['like', 'website', $this->website])->andFilterWhere(['like', 'full_address', $this->full_address])->andFilterWhere(['like', 'vicinity', $this->vicinity])->andFilterWhere(['like', 'notes', $this->notes]);
     return $dataProvider;
 }
Beispiel #3
0
 public static function googlePlaceSuggested($form)
 {
     // check if this google place already exists
     if (Place::find()->where(['google_place_id' => $form['google_place_id']])->exists()) {
         $model = Place::find()->where(['google_place_id' => $form['google_place_id']])->one();
         return $model->id;
     } else {
         // otherwise register a new place
         $model = new Place();
         $model->name = $form['name'];
         $model->place_type = self::TYPE_OTHER;
         $model->google_place_id = $form['google_place_id'];
         $model->website = $form['website'];
         $model->vicinity = $form['vicinity'];
         $model->full_address = $form['full_address'];
         $model->created_by = Yii::$app->user->getId();
         if ($model->validate()) {
             // all inputs are valid
             $model->save();
             // add GPS entry in PlaceGeometry
             $model->addGeometry($model, $form['location']);
             return $model->id;
         } else {
             return false;
         }
     }
 }