public function createEvent()
 {
     $event = new Event();
     $event->attributes = ['user_id' => Yii::$app->user->id, 'city' => $this->city, 'theme' => $this->theme, 'description' => $this->description, 'urgent' => $this->urgent, 'occur_at' => $this->occur_at];
     $event->save();
     $this->_event = $event;
 }
示例#2
0
 /**
 * Creates data provider instance with search query applied
 *
 * @param array $params
 *
 * @return ActiveDataProvider
 */
 public function search($params)
 {
     $query = Event::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, 'user_id' => $this->user_id, 'is_finished' => $this->is_finished, 'occur_at' => $this->occur_at, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'theme', $this->theme])->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'urgent', $this->urgent]);
     return $dataProvider;
 }
示例#3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getEvent()
 {
     return $this->hasOne(\common\models\event\Event::className(), ['id' => 'event_id']);
 }
 /**
  * Finds the Event model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Event the loaded model
  * @throws HttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Event::findOne($id)) !== null) {
         return $model;
     } else {
         throw new HttpException(404, 'The requested page does not exist.');
     }
 }
 /**
  * @return null|Event
  */
 public function getEvent()
 {
     if (!$this->_event) {
         $this->_event = Event::findOne($this->event_id);
     }
     return $this->_event;
 }
 /**
  * @return Event|null
  */
 protected function getEvent()
 {
     if ($this->_event === null) {
         $this->_event = Event::findOne($this->event_id);
     }
     return $this->_event;
 }
    /**
     * @param $event_id
     * @return bool
     */
    public static function updateMap($event_id)
    {
        /** @var Event $event */
        $event = Event::find()->with(['locationCurrents' => function ($query) {
            $query->orderBy('occur_at ASC');
        }])->where('id=:event_id and is_finished=:is_finished', ['event_id' => $event_id, 'is_finished' => 0])->one();
        if (!$event || !isset($event->locationCurrents[0])) {
            return false;
        }
        $content = '
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
    <title>' . $event->theme . '</title>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=gZUugrfkf5TKwsGQmxEsliqL"></script>
    <script type="text/javascript" src="http://api.map.baidu.com/library/CurveLine/1.5/src/CurveLine.min.js"></script>
    <style type="text/css">
        html, body {
            width: 100%;
            height: 100%;
            margin: 0;
            overflow: hidden;
            font-family: Microsoft YaHei, monospace
        }
    </style>
</head>
<body>
<div style="width:100%;height:100%;border:1px solid gray" id="container"></div>
</body>
</html>';
        $content .= '
<script type="text/javascript">
    // 百度地图API功能
    var map = new BMap.Map("container");
    map.centerAndZoom(new BMap.Point(' . $event->locationCurrents[0]->longitude . ',' . $event->locationCurrents[0]->latitude . '), 14);
    map.enableScrollWheelZoom();
    var points = [';
        $first = true;
        foreach ($event->locationCurrents as $current) {
            if ($first) {
                $first = false;
            } else {
                $content .= ',';
            }
            $content .= 'new BMap.Point(' . $current->longitude . ', ' . $current->latitude . ')';
        }
        $content .= '
];
    var curve = new BMapLib.CurveLine(points, {strokeColor: "blue", strokeWeight: 3, strokeOpacity: 0.5}); //创建弧线对象
    map.addOverlay(curve); //添加到地图中
    curve.enableEditing(); //开启编辑功能
</script>';
        $name = substr(hash('md5', $event_id), 0, 10);
        $createMap = file_put_contents("/alidata/www/default/maps/{$name}.html", $content);
        if (!$createMap) {
            return false;
        }
        return true;
    }
示例#8
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getEvents()
 {
     return $this->hasMany(\common\models\event\Event::className(), ['user_id' => 'id']);
 }
 /**
  **显示针对该事件将要发送短信所需信息的表单,表单中已有信息,在确认发送短信前可以对某些信息进行调整,其中针对涉事儿童个人信息的修改,可以同时更新数据库中该涉事儿童的个人信息.
  * @param $id
  * @return string
  * @throws HttpException
  */
 public function actionPreSendMessage($id)
 {
     /** @var Event $event */
     $event = Event::find()->where('id=:id', [':id' => $id])->with(['locationCurrents' => function ($query) {
         $query->orderBy('occur_at DESC')->limit(1);
     }, 'profiles'])->one();
     if (!$event) {
         throw new HttpException(404, 'The resource you requested does not exist');
     }
     if ($event->is_finished) {
         throw new HttpException(405, 'The resource you requested has expired');
     }
     $csrf = Yii::$app->request->csrfToken;
     return $this->render('send_message', ['event' => $event, 'current' => $event->locationCurrents[0], 'profile' => $event->profiles[0], 'csrf' => $csrf]);
 }