Пример #1
0
 public function actionSetmail()
 {
     $model = new Setting();
     $message = true;
     $query = Setting::find()->one();
     if (Yii::$app->request->post()) {
         $request = Yii::$app->request;
         $password = $request->post('Setting')['password'];
         $username = $request->post('Setting')['username'];
         $sendhost = $request->post('Setting')['sendhost'];
         $sendport = $request->post('Setting')['sendport'];
         $user = $request->post('Setting')['user'];
         $receivehost = $request->post('Setting')['receivehost'];
         $receiveport = $request->post('Setting')['receiveport'];
         $model1 = new Receive();
         $obj = new receiveMail($user, $password, $username, $receivehost, 'imap', '993', 'ture');
         if ($obj->connect()) {
             $query = Setting::find()->one();
             $query->sendhost = $sendhost;
             $query->sendport = $sendport;
             $query->user = $user;
             $query->password = $password;
             $query->username = $username;
             $query->receivehost = $receivehost;
             $query->receiveport = $receiveport;
             $query->save();
             return $this->render('setting', ['model' => $model, 'settingMessage' => $query, 'message' => $message]);
         } else {
             $message = false;
             return $this->render('setting', ['model' => $model, 'settingMessage' => $query, 'message' => $message]);
         }
     } else {
         return $this->render('setting', ['model' => $model, 'settingMessage' => $query, 'message' => $message]);
     }
 }
Пример #2
0
 public function sendEmail($mail)
 {
     $setting = Setting::find()->where(['id' => 1])->one();
     $username = $setting->sendgridUsername;
     $password = $setting->sendgridPassword;
     $mail_admin = $setting->emailAdmin;
     $sendgrid = new \SendGrid($username, $password, array("turn_off_ssl_verification" => true));
     $email = new \SendGrid\Email();
     $subject = 'Registrasi Berhasil';
     $body = 'Thanks ' . $this->username . ',';
     $body .= "\n";
     $body .= "Registrasi anda berhasil, kami akan segera mereview kembali registrasi anda. \n";
     $body .= "Thanks, \n";
     $body .= Yii::$app->name;
     $body_message = $this->template($subject, $body, $logo);
     $email->addTo($mail)->setFrom($mail_admin)->setSubject('Registrasi berhasil')->setHtml($body_message)->addCategory("registrasi");
     $response = $sendgrid->send($email);
     //return $response;
     //send whatsapp
     if ($setting->whatsappNumber && $setting->whatsappPassword) {
         $number = $setting->whatsappNumber;
         $app = Yii::$app->name;
         $password = $setting->whatsappPassword;
         $w = new WhatsApp($number, $app, $password);
         $w->send($setting->whatsappSend, $body);
     }
 }
 public function sendMail()
 {
     /* @var $user User */
     $user = User::findOne(['status' => User::STATUS_ACTIVE, 'email' => $this->email]);
     if ($user) {
         if (!User::isPasswordResetTokenValid($user->password_reset_token)) {
             $user->generatePasswordResetToken();
         }
         if ($user->save()) {
             $setting = Setting::find()->where(['id' => 1])->one();
             $username = $setting->sendgridUsername;
             $password = $setting->sendgridPassword;
             $mail_admin = $setting->emailAdmin;
             $sendgrid = new \SendGrid($username, $password, array("turn_off_ssl_verification" => true));
             $email = new \SendGrid\Email();
             $mail = $user->email;
             //echo $user->email;exit(0);
             $resetLink = \Yii::$app->urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]);
             $body_message = 'Hello ' . Html::encode($user->username) . ', <br>
             Follow the link below to reset your password:  <br>
             ' . Html::a(Html::encode($resetLink), $resetLink);
             $email->addTo($user->email)->setFrom($mail_admin)->setSubject('Password reset for ' . \Yii::$app->name)->setHtml($body_message);
             $response = $sendgrid->send($email);
             //print_r($response); exit(0);
             return $response;
         }
     }
     return false;
 }
Пример #4
0
 /**
  * 显示系统消息列表
  * @author FuRongxin
  * @date    2016-01-12
  * @version 2.0
  * @return  \Illuminate\Http\Response 系统消息列表
  */
 public function index()
 {
     $is_open = config('constants.status.enable') == Setting::find('XK_KG')->value ? '开放' : '关闭';
     $message = '现在' . $is_open . session('year') . '年度' . Term::find(session('term'))->mc . '学期选课';
     $broadcasts = Broadcast::whereId('xt_web')->get();
     $title = '综合管理系统';
     return view('home.index', compact('title', 'broadcasts', 'message'));
 }
Пример #5
0
 public function actionIndex()
 {
     $message = true;
     $model = new mail();
     if ($model->load(Yii::$app->request->post())) {
         $mailaccount = Setting::find()->one();
         $sendhost = $mailaccount->sendhost;
         $username = $mailaccount->username;
         $user = $mailaccount->user;
         $password = $mailaccount->password;
         error_reporting(E_ALL ^ E_WARNING);
         $request = Yii::$app->request;
         $body = $request->post();
         $to = $model->receiver;
         $subject = $model->subject;
         $model->file = UploadedFile::getInstance($model, 'file');
         if ($model->file != null) {
             $filename = $model->file->name;
             $encode = mb_detect_encoding($filename, array("ASCII", "UTF-8", "GBK", "GB2312"));
             if ($encode == "EUC-CN") {
                 $encode = "GB2312";
             }
             if ($encode != "GBK") {
                 $filename = iconv($encode, "GBK//IGNORE", $filename);
             }
             echo $filename . "before save" . "</br>";
             if ($model->file->saveAs('c:/sendattachment/' . $filename)) {
                 $mail = new sendmail();
                 //新建发送
                 $mail->setServer($sendhost, $user, $password);
                 $mail->setFrom($username);
                 $mail->setReceiver("{$to}");
                 $mail->setMailInfo($subject, $body['body'], 'c:/sendattachment/' . $filename);
                 $message = true;
                 if (!$mail->sendMail()) {
                     $message = false;
                 }
                 return $this->render('index', ['model' => $model, 'message' => $message]);
             }
         } else {
             $mail = new sendmail();
             //新建发送
             $mail->setServer($sendhost, $user, $password);
             $mail->setFrom($username);
             $mail->setReceiver("{$to}");
             $mail->setMailInfo($subject, $body['body'], "");
             if (!$mail->sendMail()) {
                 $message = false;
             }
             return $this->render('index', ['model' => $model, 'message' => $message]);
         }
     } else {
         return $this->render('index', ['model' => $model]);
     }
 }
Пример #6
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Setting::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'userCreate' => $this->userCreate, 'userUpdate' => $this->userUpdate, 'createDate' => $this->createDate, 'updateDate' => $this->updateDate]);
     $query->andFilterWhere(['like', 'emailAdmin', $this->emailAdmin])->andFilterWhere(['like', 'emailSupport', $this->emailSupport])->andFilterWhere(['like', 'emailOrder', $this->emailOrder])->andFilterWhere(['like', 'sendgridUsername', $this->sendgridUsername])->andFilterWhere(['like', 'sendgridPassword', $this->sendgridPassword])->andFilterWhere(['like', 'whatsappNumber', $this->whatsappNumber])->andFilterWhere(['like', 'whatsappPassword', $this->whatsappPassword])->andFilterWhere(['like', 'facebook', $this->facebook])->andFilterWhere(['like', 'instagram', $this->instagram])->andFilterWhere(['like', 'google', $this->google])->andFilterWhere(['like', 'twitter', $this->twitter])->andFilterWhere(['like', 'privacyPolicy', $this->privacyPolicy])->andFilterWhere(['like', 'terms', $this->terms])->andFilterWhere(['like', 'legalNotice', $this->legalNotice]);
     return $dataProvider;
 }
Пример #7
0
 /**
  * Update the specified resource in storage.
  *
  * @param int     $id
  * @return Response
  */
 public function putUpdate(Request $request, $id)
 {
     $input = $request->all();
     $setting = Setting::find($id);
     $setting->is_open = $input['is_open'];
     if ($setting->save()) {
         return redirect('setting/edit')->with('status', '系统设置成功');
     } else {
         return back()->withErrors('系统设置失败');
     }
 }
Пример #8
0
 public function actionTest()
 {
     $setting = \app\models\Setting::find()->where(['id' => 1])->one();
     $number = $setting->whatsappNumber;
     $app = 'Sintret Projects';
     $password = $setting->whatsappPassword;
     $w = new WhatsApp($number, $app, $password);
     $message = 'this is just test again @sintret oke';
     $w = new WhatsApp($number, $app, $password);
     echo $w->send($phone, $message);
 }
Пример #9
0
 /**
  * Handle the event.
  *
  * @param  Login  $event
  * @return void
  */
 public function handle(Login $event)
 {
     if (!Fresh::whereXh(Auth::user()->xh)->exists()) {
         if (!Profile::whereXh(Auth::user()->xh)->whereXjzt(config('constants.school.student'))->exists()) {
             Auth::logout();
             return back()->withInput()->withStatus('不是在校生,请不要登录系统');
         }
     }
     session(['year' => Setting::find('XK_ND')->value, 'term' => Setting::find('XK_XQ')->value, 'campus' => Auth::user()->profile->college->pivot->xq, 'season' => Auth::user()->profile->zsjj, 'grade' => Auth::user()->profile->nj, 'major' => Auth::user()->profile->zy]);
     $log = new Slog();
     $log->ip = request()->ip();
     $log->czlx = 'login';
     $log->save();
 }
Пример #10
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Setting::find();
     $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;
     }
     $query->andFilterWhere(['id' => $this->id, 'sms' => $this->sms, 'gcm' => $this->gcm, 'userCreate' => $this->userCreate, 'userUpdate' => $this->userUpdate, 'updateDate' => $this->updateDate, 'createDate' => $this->createDate]);
     $query->andFilterWhere(['like', 'applicationName', $this->applicationName])->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'sms_key', $this->sms_key])->andFilterWhere(['like', 'sms_pass', $this->sms_pass])->andFilterWhere(['like', 'gcm_api_key', $this->gcm_api_key])->andFilterWhere(['like', 'gcm_sender', $this->gcm_sender])->andFilterWhere(['like', 'emailAdmin', $this->emailAdmin])->andFilterWhere(['like', 'emailSupport', $this->emailSupport])->andFilterWhere(['like', 'emailOrder', $this->emailOrder])->andFilterWhere(['like', 'sendgridUsername', $this->sendgridUsername])->andFilterWhere(['like', 'sendgridPassword', $this->sendgridPassword])->andFilterWhere(['like', 'whatsappNumber', $this->whatsappNumber])->andFilterWhere(['like', 'whatsappPassword', $this->whatsappPassword])->andFilterWhere(['like', 'whatsappSend', $this->whatsappSend])->andFilterWhere(['like', 'facebook', $this->facebook])->andFilterWhere(['like', 'instagram', $this->instagram])->andFilterWhere(['like', 'google', $this->google])->andFilterWhere(['like', 'twitter', $this->twitter]);
     return $dataProvider;
 }
 /**
  * This command echoes what you have entered as the message.
  * @param string $message the message to be echoed.
  */
 public function actionIndex()
 {
     Yii::info('CronController', 'cronjob');
     /**
      * If cron execute it the default date and time are wrong,
      * this fix it (date_default_timezone_set)
      */
     $settingModel = Setting::find()->where(['name' => 'date_default_timezone'])->one();
     if (isset($settingModel->data) and !empty($settingModel->data)) {
         date_default_timezone_set($settingModel->data);
     }
     $modelCronjob = new Cronjob();
     $modelCronjob->cron();
 }
Пример #12
0
 public function actionMail()
 {
     $this->layout = 'admin';
     // In @app/views/layouts
     $settings = Setting::find()->where(['category' => 'smtp'])->orderBy('id')->all();
     if (Model::loadMultiple($settings, Yii::$app->request->post()) && Model::validateMultiple($settings)) {
         /** @var \app\models\Setting $setting */
         foreach ($settings as $setting) {
             $setting->save(false);
         }
         // Show success alert
         Yii::$app->getSession()->setFlash('success', Yii::t('app', 'The smtp server settings have been successfully updated.'));
     }
     return $this->render('mail', ['settings' => $settings]);
 }
Пример #13
0
 public static function IamReallyAthome()
 {
     $ip_addressen = Setting::find()->select('data')->where(['name' => 'i_am_really_at_home_ip_addressen'])->one();
     $ip_addressen = HelperData::dataExplode($ip_addressen->data);
     $iamathome = false;
     foreach ($ip_addressen as $ip_adres) {
         $command = 'sudo ping  ' . $ip_adres . ' -c 2';
         // -c 2 (two time on linux machine
         exec(escapeshellcmd($command), $output, $return_var);
         if (0 == $return_var) {
             $iamathome = true;
         }
     }
     return HelperData::dataExplode($iamathome);
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Setting::find();
     $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;
     }
     $query->andFilterWhere(['id' => $this->id, 'name' => $this->name, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     //$query->andFilterWhere(['like', 'name', $this->name])
     $query->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'data', $this->data]);
     return $dataProvider;
 }
Пример #15
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id = 1)
 {
     $setting = Setting::find($id);
     $cekinput = Input::file('setheader');
     // Header Website
     if (!empty($cekinput)) {
         $oldfile = Setting::where('id_setting', $id)->first();
         File::delete('upload/logo/' . $oldfile->bg_header);
         $thefile = Input::file('setheader');
         $lokasi_simpan = 'upload/logo';
         $filename = str_random(30) . '.' . $thefile->getClientOriginalExtension();
         $upload_gambar = Input::file('setheader')->move($lokasi_simpan, $filename);
         $setting->bg_header = $filename;
     }
     if ($setting->save()) {
         return redirect()->back()->with('alert', 'Data berhasil di simpan');
     }
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id = 1)
 {
     //
     $setting = Setting::find($id);
     $cekinputlogo = Input::file('file');
     $cekinputicon = Input::file('favicon');
     // Logo Website
     if (!empty($cekinputlogo)) {
         $oldfile = Setting::where('id_setting', $id)->first();
         File::delete('upload/logo/' . $oldfile->logo);
         $thefile = Input::file('file');
         $lokasi_simpan = 'upload/logo';
         $filename = str_random(30) . '.' . $thefile->getClientOriginalExtension();
         $upload_gambar = Input::file('file')->move($lokasi_simpan, $filename);
         $setting->logo = $filename;
     }
     // Favicon Website
     if (!empty($cekinputicon)) {
         $oldfile = Setting::where('id_setting', $id)->first();
         File::delete('upload/logo/' . $oldfile->favicon);
         $thefile = Input::file('favicon');
         $lokasi_simpan = 'upload/logo';
         $filename = str_random(30) . '.' . $thefile->getClientOriginalExtension();
         $upload_gambar = Input::file('favicon')->move($lokasi_simpan, $filename);
         $setting->favicon = $filename;
     }
     $setting->title_web = Input::get('title_web');
     $setting->desc_web = Input::get('desc_web');
     $setting->key_web = Input::get('key_web');
     $setting->peta_latitude = Input::get('peta_latitude');
     $setting->peta_longitude = Input::get('peta_longitude');
     $setting->facebook = Input::get('facebook');
     $setting->twitter = Input::get('twitter');
     $setting->gplus = Input::get('gplus');
     $setting->alamat = Input::get('alamat');
     $setting->no_telp = Input::get('no_telp');
     $setting->no_fax = Input::get('no_fax');
     $setting->email = Input::get('email');
     if ($setting->save()) {
         return redirect()->back()->with('alert', 'Data berhasil di simpan');
     }
 }
 /**
  * Update a specified setting in the dashboard.
  *
  * @return Response
  */
 public function update(Request $request)
 {
     $setting = Setting::find($request->get('id'));
     if (isset($setting)) {
         $type = $request->get('type');
         $value = $request->get('value');
         if (isset($type) && $type == 'boolean') {
             $setting->value = isset($value) ? true : false;
         } else {
             if (isset($type) && $type == 'integer') {
                 $setting->value = intval($value);
             } else {
                 $setting->value = $value;
             }
         }
         $setting->save();
         return Redirect::route('admin::settings')->with('success', 'The setting has been successfully updated');
     }
     return Redirect::route('admin::settings')->with('error', "The setting you tried to edit wasn't registered in the database");
 }
Пример #18
0
 public function actionIndex()
 {
     $settings = Setting::find()->indexBy('id')->all();
     if (Model::loadMultiple($settings, Yii::$app->getRequest()->post()) && Model::validateMultiple($settings)) {
         foreach ($settings as $key => $setting) {
             if ($setting->key == 'timezone' && !self::checkTimeZone($setting->value)) {
                 $setting->value = date_default_timezone_get();
                 continue;
             } else {
                 if ($setting->value_type == 'integer') {
                     $setting->value = intval($setting->value);
                 }
             }
             $setting->save(false);
         }
         $this->createConfigFile(ArrayHelper::map($settings, 'key', 'value'));
     }
     $newSettings = ArrayHelper::map($settings, 'id', function ($item) {
         return $item;
     }, 'block');
     return $this->render('update', ['settings' => $newSettings]);
 }
Пример #19
0
 public function saveSettings()
 {
     $settings = [];
     foreach (Setting::findAll($this->attributes()) as $setting) {
         $settings[$setting->name] = $setting;
     }
     foreach ($this->attributes() as $attribute) {
         if (!empty($settings[$attribute])) {
             if ($settings[$attribute]->value != $this->{$attribute}) {
                 $settings[$attribute]->value = $this->{$attribute};
                 $settings[$attribute]->save();
             }
         } else {
             $setting = new Setting();
             $setting->name = $attribute;
             $setting->value = $this->{$attribute};
             $setting->save();
         }
     }
     // GC
     foreach (Setting::find()->where(['not in', 'name', $this->attributes()])->all() as $setting) {
         $setting->delete();
     }
 }
Пример #20
0
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     view()->composer('app', function ($view) {
         // 是否新生
         if ($is_fresh = Fresh::whereXh(Auth::user()->xh)->exists()) {
             $user = Fresh::find(Auth::user()->xh);
         }
         // 是否在校生
         if ($is_student = Profile::whereXh(Auth::user()->xh)->whereXjzt(config('constants.school.student'))->exists()) {
             $user = Profile::find(Auth::user()->xh);
         }
         // 是否新入校未足一年的学生
         $is_newer = Profile::isFresh(Auth::user())->exists();
         // 是否允许选课
         $allowed_select = Setting::find('XK_KG')->value;
         // 是否允许选通识素质课
         $allowed_general = Setting::find('XK_TS')->value;
         // 是否允许选其他课程
         $allowed_others = Setting::find('XK_QT')->value;
         // 是否允许公体选课
         $allowed_pubsport = Setting::find('XK_GT')->value;
         $view->withIsFresh($is_fresh)->withIsStudent($is_student)->withUser($user)->withIsNewer($is_newer)->withAllowedSelect($allowed_select)->withAllowedGeneral($allowed_general)->withAllowedOthers($allowed_others)->withAllowedPubsport($allowed_pubsport);
     });
 }
 public function actionSample()
 {
     //$objPHPExcel = new \PHPExcel();
     $template = Util::templateExcel();
     $model = new Setting();
     $date = date('YmdHis');
     $name = $date . 'Setting';
     //$attributes = $model->attributeLabels();
     $models = Setting::find()->all();
     $excelChar = Util::excelChar();
     $not = Util::excelNot();
     foreach ($model->attributeLabels() as $k => $v) {
         if (!in_array($k, $not)) {
             $attributes[$k] = $v;
         }
     }
     $objReader = \PHPExcel_IOFactory::createReader('Excel5');
     $objPHPExcel = $objReader->load(Yii::getAlias($template));
     return $this->render('sample', ['models' => $models, 'attributes' => $attributes, 'excelChar' => $excelChar, 'not' => $not, 'name' => $name, 'objPHPExcel' => $objPHPExcel]);
 }
 public function actionDetail($id = null, $check_status = null, $dealername = null, $foreignid = null, $email_id)
 {
     $model = new VerifyMessage();
     $session = Yii::$app->session;
     //得到这份邮件
     if (isset($_POST['message'])) {
         $message = $_POST['message'];
         $check_status = $_POST['check_status'];
         //            $foreignid=$_POST['foreignid'];
         $check = new Check();
         $check = Check::find()->where(['id' => $foreignid])->one();
         $check->check_status = $check_status;
         $check->check_advise = $message;
         $check->save();
         $session['count'] = $session['count'] - 1;
         $email = SentEmail::find()->where(['id' => $id])->asArray()->one();
         if ($check_status == 1 && $email_id != NULL && $email_id != 0) {
             $email_d = SentEmail::find()->where(['id' => $email_id])->asArray()->one();
             $model = new Mail();
             $mailaccount = Setting::find()->one();
             $sendhost = $mailaccount->sendhost;
             $username = $mailaccount->username;
             $user = $mailaccount->user;
             $password = $mailaccount->password;
             error_reporting(E_ALL ^ E_WARNING);
             //$email=SentEmail::find()->where(['id'=>$id])->asArray()->one();
             $body = $email_d['text'];
             $to = $email_d['receiver'];
             $subject = $email_d['subject'];
             $mail = new sendmail();
             //新建发送
             if ($email['attachment'] != null) {
                 $filename = basename($email['attachment']);
                 $encode = mb_detect_encoding($filename, array("ASCII", "UTF-8", "GBK", "GB2312"));
                 if ($encode == "EUC-CN") {
                     $encode = "GB2312";
                 }
                 if ($encode != "GBK") {
                     $filename = iconv($encode, "GBK//IGNORE", $filename);
                 }
                 //echo $filename."before save"."</br>";
                 $mail->setServer($sendhost, $user, $password);
                 $mail->setFrom($username);
                 $mail->setReceiver("{$to}");
                 $mail->setMailInfo($subject, $body['body'], '../attachment/sendattachment/' . $filename);
                 //判断部分
             } else {
                 $mail->setServer($sendhost, $user, $password);
                 $mail->setFrom($username);
                 $mail->setReceiver("{$to}");
                 $mail->setMailInfo($subject, $body, "");
             }
             $mail->sendMail();
         }
         return $this->redirect('?r=site/login');
     } else {
         $email = SentEmail::find()->where(['id' => $id])->asArray()->one();
         $email['check_status'] = $check_status;
         //var_dump($email);
         //审核通过,邮件发送出去
         $email['dealername'] = $dealername;
         $email['foreignid'] = $foreignid;
         if ($check_status == 1 && $email_id != NULL && $email_id != 0) {
             $model = new Mail();
             $email_d = SentEmail::find()->where(['id' => $email_id])->asArray()->one();
             $mailaccount = Setting::find()->one();
             $sendhost = $mailaccount->sendhost;
             $username = $mailaccount->username;
             $user = $mailaccount->user;
             $password = $mailaccount->password;
             error_reporting(E_ALL ^ E_WARNING);
             //$email=SentEmail::find()->where(['id'=>$id])->asArray()->one();
             $body = $email_d['text'];
             $to = $email_d['receiver'];
             $subject = $email_d['subject'];
             $mail = new sendmail();
             //新建发送
             if ($email['attachment'] != null) {
                 $filename = basename($email['attachment']);
                 $encode = mb_detect_encoding($filename, array("ASCII", "UTF-8", "GBK", "GB2312"));
                 if ($encode == "EUC-CN") {
                     $encode = "GB2312";
                 }
                 if ($encode != "GBK") {
                     $filename = iconv($encode, "GBK//IGNORE", $filename);
                 }
                 //echo $filename."before save"."</br>";
                 $mail->setServer($sendhost, $user, $password);
                 $mail->setFrom($username);
                 $mail->setReceiver("{$to}");
                 $mail->setMailInfo($subject, $body, '../attachment/sendattachment/' . $filename);
                 //判断部分
             } else {
                 $mail->setServer($sendhost, $user, $password);
                 $mail->setFrom($username);
                 $mail->setReceiver("{$to}");
                 $mail->setMailInfo($subject, $body, "");
             }
             $mail->sendMail();
         }
         return $this->render('detail', ['model' => $model, 'email' => $email]);
     }
 }
Пример #23
0
 /**
  * 是否允许新生填报信息
  * @author FuRongxin
  * @date    2016-02-15
  * @version 2.0
  * @return  boolean true为允许,false为禁止
  */
 private function allowUpdate()
 {
     return Fresh::whereXh(Auth::user()->xh)->exists() && config('constants.status.enable') == Setting::find('XS_XSXX_KG')->value;
 }
Пример #24
0
 /**
  * 显示可选课程列表
  * @author FuRongxin
  * @date    2016-02-23
  * @version 2.0
  * @param   string $type 课程类型
  * @return  \Illuminate\Http\Response 可选课程列表
  */
 public function show($type)
 {
     if ('pubsport' == $type) {
         if (config('constants.status.disable') == Setting::find('XK_GT')->value) {
             abort(403, '现在未开放公体选课,不允许公体选课');
         }
     } elseif (config('constants.status.disable') == Setting::find('XK_KG')->value) {
         abort(403, '现在未开放选课,不允许选课');
     }
     if (Unpaid::whereXh(Auth::user()->xh)->exists()) {
         abort(403, '请交清费用再进行选课');
     }
     if ('pubsport' != $type) {
         if (config('constants.status.enable') == Setting::find('XK_SJXZ')->value) {
             $profile = Profile::whereXh(Auth::user()->xh)->select('nj', 'xz')->firstOrFail();
             // 未在时间限制表中配置,默认不允许选课
             $now = Carbon::now();
             $exists = Lmttime::whereNj($profile->nj)->whereXz($profile->xz)->where('kssj', '<', $now)->where('jssj', '>', $now)->exists();
             if (!$exists) {
                 abort(403, '现在未到选课时间,不允许选课');
             }
         }
     }
     if (in_array($type, array_keys(config('constants.course.general')))) {
         if (config('constants.stauts.disable') == Setting::find('XK_TS')->value) {
             abort(403, '现在未开放通识素质课选课,不允许选课');
         }
         if (config('constants.status.enable') == Setting::find('XK_TSXZ')->value) {
             $profile = Profile::whereXh(Auth::user()->xh)->select('nj', 'xz')->firstOrFail();
             // 未在时间限制表中配置,默认不允许选通识素质课
             $now = Carbon::now();
             $exists = Lmtgeneral::whereNj($profile->nj)->whereXz($profile->xz)->where('kssj', '<', $now)->where('jssj', '>', $now)->exists();
             if (!$exists) {
                 abort(403, '现在未到通识素质课选课时间,不允许选课');
             }
         }
         $type_name = config('constants.course.general.' . $type . '.name');
     }
     $type_name = isset($type_name) ? $type_name : config('constants.course.' . $type . '.name');
     $campuses = Campus::all()->each(function ($course) {
         if (empty($course->dm)) {
             $course->dm = 'unknown';
             $course->mc = '未知';
         }
     });
     return view('selcourse.show')->withTitle($type_name . '选课表')->withType($type)->withCampuses($campuses);
 }
Пример #25
0
 /**
  * 是否允许上传照片
  * @author FuRongxin
  * @date    2016-02-14
  * @version 2.0
  * @return  boolean true为允许,false为禁止
  */
 private function allowUploadFile()
 {
     return config('constants.status.enable') == Setting::find('KS_PHOTO_UP')->value;
 }
Пример #26
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id, SettingsRequest $request)
 {
     $setting = Setting::find($id);
     if (is_array($request->setting_value)) {
         $new_setting_value = implode(',', $request->setting_value);
         $setting->fill($request->except('setting_value'));
         $setting->setting_value = $new_setting_value;
         $setting->save();
     } else {
         $setting->fill($request->all())->save();
     }
     return Redirect::route('settings.index')->with('okmessage', 'Settings updated');
 }
Пример #27
0
 public static function transmitter($from_device_id, $to_device_id, $action_id, $retry = 3, $delay = 3)
 {
     $modelSetting = Setting::find()->select('data')->where(['name' => 'path_script_task'])->one();
     for ($try = 1; $try <= $retry; $try++) {
         // sudo visudo
         // add www-data ALL=(ALL) NOPASSWD: ALL
         // to grant execute right python
         $command = 'sudo ' . $modelSetting->data . ' --fr ' . $from_device_id . ' --to ' . $to_device_id . ' --ac ' . $action_id;
         Yii::info('$command: ' . $command, 'task-transmitter');
         exec(escapeshellcmd($command), $output, $return_var);
         foreach ($output as $line) {
             Yii::info('$line: ' . $line, 'task-transmitter');
         }
         Yii::info('$return_var: ' . $return_var, 'task-transmitter');
         if (0 != $return_var) {
             if ($try < $retry) {
                 Yii::info('!return_var, retry and delay', 'task-transmitter');
                 sleep($delay);
                 continue;
             } else {
                 Yii::error('!return_var, failed exec', 'task-transmitter');
                 return 'err:failed exec';
             }
         }
         $return = Task::sscanfOutput($output);
         if (!$return) {
             Yii::info('sscanfOutput, !return', 'task-transmitter');
             if ($try < $retry) {
                 Yii::info('!return, retry and delay', 'task-transmitter');
                 sleep($delay);
                 continue;
             } else {
                 Yii::error('!return, no output', 'task-transmitter');
                 return 'err:no output';
             }
         }
         Yii::info('sscanfOutput, return', 'task-transmitter');
         // from and to are exchanged
         $from = 0;
         $to = 0;
         $action = 0;
         $message = '';
         list($from, $to, $action, $message) = $return;
         if ($from == $from_device_id and $to == $to_device_id and $action == $action_id) {
             Yii::info('$message: ' . $message, 'task-transmitter');
             return $message;
         } else {
             Yii::info('transmitter function to receiver function', 'task-transmitter');
             // there is output but not for this task-transmitter
             Task::receiver($output);
             $try--;
         }
         if ($try >= $retry) {
             Yii::error('!retry, failed trying', 'task-transmitter');
             return 'err:failed trying';
         } else {
             Yii::info('retry', 'task-transmitter');
             sleep($delay);
         }
     }
     Yii::error('end, failed return', 'task-transmitter');
     return 'err:failed return';
 }
Пример #28
0
 public function updateSubject($id, Subject $subject, Setting $setting, Request $request)
 {
     $title = $request->input('title');
     $sub = $subject->find($id);
     $sub->title = $title;
     $sub->save();
     session(array('subject_id' => $id));
     $old_setting = $setting->find($id);
     $uploads_path = realpath(__DIR__ . '/../../../uploads');
     if ($request->session()->has('uploads')) {
         if ($old_setting->lec_xlsx) {
             unlink($uploads_path . '/' . $old_setting->lec_xlsx);
         }
         if ($old_setting->lab_xlsx) {
             unlink($uploads_path . '/' . $old_setting->lab_xlsx);
         }
     }
     $sheet_number = $request->input('sheet_number');
     $name_cell = $request->input('name_cell');
     $grade_cell = $request->input('grade_cell');
     $cell_range = $request->input('cell_range');
     $header_row = $request->input('header_row');
     $start_row = $request->input('start_row');
     $end_row = $request->input('end_row');
     $new_setting = array('sheet_number' => $sheet_number, 'name_cell' => $name_cell, 'grade_cell' => $grade_cell, 'cell_range' => $cell_range, 'header_row' => $header_row, 'start_row' => $start_row, 'end_row' => $end_row);
     if ($request->session()->has('uploads')) {
         $new_setting['lec_xlsx'] = session('uploads')[0];
         $new_setting['lab_xlsx'] = session('uploads')[1];
     }
     $setting = DB::table('settings')->where('subject_id', '=', $id)->update($new_setting);
     return redirect("activities/{$id}/add");
 }
Пример #29
0
 public function actionRewrite($email_id, $subject, $receiver, $text, $check_user)
 {
     $model = new Mail();
     $message = true;
     $session = Yii::$app->session;
     //$check_users=Users::find()->where(['permission'=>2])->asArray()->all();
     // print_r($check_users);
     if ($model->load(Yii::$app->request->post())) {
         //粘贴部分
         $mailaccount = Setting::find()->one();
         $sendhost = $mailaccount->sendhost;
         $username = $mailaccount->username;
         $user = $mailaccount->user;
         $password = $mailaccount->password;
         error_reporting(E_ALL ^ E_WARNING);
         $request = Yii::$app->request;
         $body = $request->post();
         $to = $model->receiver;
         $subject = $model->subject;
         $model->file = UploadedFile::getInstance($model, 'file');
         //error_reporting(E_ALL^E_WARNING);
         // $request = Yii::$app->request;
         //$body = $request->post();
         //$to=$model->receiver;
         //            $text=$model->text;
         // $subject=$model->subject;
         //            $body = $model->body;
         //print_r($model);
         //粘贴部分
         if ($model->file != null) {
             $filename = $model->file->name;
             $encode = mb_detect_encoding($filename, array("ASCII", "UTF-8", "GBK", "GB2312"));
             if ($encode == "EUC-CN") {
                 $encode = "GB2312";
             }
             if ($encode != "GBK") {
                 $filename = iconv($encode, "GBK//IGNORE", $filename);
             }
             //echo $filename."before save"."</br>";
             if ($model->file->saveAs('../attachment/sendattachment/' . $filename)) {
                 $mail = new sendmail();
                 //新建发送
                 $mail->setServer($sendhost, $user, $password);
                 $mail->setFrom($username);
                 $mail->setReceiver("{$to}");
                 $mail->setMailInfo($subject, $body['body'], '../attachment/sendattachment/' . $filename);
                 $message = true;
                 //插入check表
                 //$check_user=$_POST['check_user'];
                 if ($check_user != NULL) {
                     //更新sent邮件列表
                     $sent_email = SentEmail::findOne($email_id);
                     $sent_email->subject = $subject;
                     $sent_email->receiver = $to;
                     $sent_email->text = $body['body'];
                     $sent_email->attachment = '../attachment/sendattachment/' . $filename . ';';
                     //$sent_email->sender=$username;
                     //$sent_email->user_id=$session['user_id'];
                     $sent_email->save();
                     $ck = Check::find()->where(['email_id' => $email_id])->one();
                     //$check->user_id=$session['user_id'];
                     $ck->check_status = 0;
                     $ck->save();
                     return $this->redirect('?r=site/checkself&user_id=' . $session['user_id'] . '&check_status=0');
                 } else {
                     if (!$mail->sendMail()) {
                         $message = false;
                         return $this->render('rewrite', ['model' => $model, 'subject' => $subject, 'receiver' => $receiver, 'text' => $text, 'check_users' => $check_users]);
                     }
                     //$time=date("Y-m-d H:i:s",time());
                     $session = Yii::$app->session;
                     $sent_email = new SentEmail();
                     $sent_email->subject = $subject;
                     $sent_email->receiver = $to;
                     $sent_email->text = $body['body'];
                     $sent_email->attachment = '../attachment/sendattachment/' . $filename . ';';
                     $sent_email->sender = $username;
                     $sent_email->user_id = $session['user_id'];
                     $sent_email->save();
                     return $this->redirect('?r=site/sent&user_id=' . $session['user_id']);
                 }
             }
         } else {
             $mail = new sendmail();
             //新建发送
             $mail->setServer($sendhost, $user, $password);
             $mail->setFrom($username);
             $mail->setReceiver("{$to}");
             $mail->setMailInfo($subject, $body['body'], "");
             //插入已发送列表
             //插入check表
             //$check_user=$_POST['check_user'];
             if ($check_user != NULL) {
                 //$time=date("Y-m-d H:i:s",time());
                 $sent_email = SentEmail::findOne($email_id);
                 $sent_email->subject = $subject;
                 $sent_email->receiver = $to;
                 $sent_email->text = $body['body'];
                 //$sent_email->attachment='../attachment/sendattachment/'.$filename.';';
                 //$sent_email->sender=$username;
                 //$sent_email->user_id=$session['user_id'];
                 $sent_email->save();
                 $ck = Check::find()->where(['email_id' => $email_id])->one();
                 //$check->user_id=$session['user_id'];
                 $ck->check_status = 0;
                 $ck->save();
                 //print_r($check['user_id']);
                 return $this->redirect('?r=site/checkself&user_id=' . $session['user_id'] . '&check_status=0');
             } else {
                 if (!$mail->sendMail()) {
                     $message = false;
                     return $this->render('rewrite', ['model' => $model, 'subject' => $subject, 'receiver' => $receiver, 'text' => $text, 'check_user' => $check_user]);
                 }
                 //$time=date("Y-m-d H:i:s",time());
                 $session = Yii::$app->session;
                 $sent_email = new SentEmail();
                 $sent_email->subject = $subject;
                 $sent_email->receiver = $to;
                 $sent_email->text = $body['body'];
                 //$sent_email->attachment='../attachment/sendattachment/'.$filename.';';
                 $sent_email->sender = $username;
                 $sent_email->user_id = $session['user_id'];
                 $sent_email->save();
                 return $this->redirect('?r=site/sent&user_id=' . $session['user_id']);
             }
         }
     } else {
         return $this->render('rewrite', ['model' => $model, 'subject' => $subject, 'receiver' => $receiver, 'text' => $text, 'check_user' => $check_user]);
     }
 }
Пример #30
0
 /**
  * 学生考试报名
  * @author FuRongxin
  * @date    2016-02-22
  * @version 2.0
  * @param   \Illuminate\Http\Request $request 报名请求
  * @param   string $kslx 考试类型代码
  * @return  \Illuminate\Http\Response 报名列表
  */
 public function update(Request $request, $kslx)
 {
     $exam = Extype::find($kslx);
     $registered = Exregister::whereNd($exam->nd)->whereXh(Auth::user()->xh)->whereKslx($kslx)->exists();
     // 检测是否已经报过名
     if (!$registered) {
         // 检测是否CET4
         if (in_array($exam->kslx, Helper::getCet4())) {
             // 检测是否允许新生报考CET4
             if (config('constants.status.enable') == Setting::find('KS_CET4_XS')) {
                 // 不允许新生报考CET4
                 if (Profile::isFresh(Auth::user())->exists()) {
                     abort(403, '不允许新生报考CET4');
                 }
             }
         }
         // 检测是否CET6
         if (config('constants.exam.type.cet6') == $exam->kslx) {
             // 检测是否允许新生报考CET6
             if (config('constants.status.enable') == Setting::find('KS_CET6_XS')) {
                 // 不允许新生报考CET6
                 if (Profile::isFresh(Auth::user())->exists()) {
                     abort(403, '不允许新生报考CET6');
                 }
             }
             // 检测CET6是否具有过往成绩或者CET4是否及格
             if (!Exscore::whereC_xh(Auth::user()->xh)->whereC_kslx(config('constants.exam.type.cet6'))->exists() && !Exscore::isPassed(Auth::user(), Helper::getCet4())->exists()) {
                 abort(403, '四级成绩不达标,不能参加CET6考试');
             }
         }
         // 检测是否已经报过CET考试
         if (config('constants.exam.type.cet') == $exam->ksdl) {
             $registered = Exregister::with('type')->whereNd($exam->nd)->whereXh(Auth::user()->xh);
             foreach ($registered as $cet) {
                 if (config('constants.exam.type.cet') == $cet->type->ksdl) {
                     abort(403, '已经报名本次' . $cet . '考试,' . $cet . '和' . $exam->ksmc . '不能同时报名');
                 }
             }
         }
     }
     $register = new Exregister();
     $register->xh = Auth::user()->xh;
     $register->xq = Auth::user()->profile->college->pivot->xq;
     $register->kslx = $kslx;
     $register->bklb = '00';
     $register->kssj = $exam->sj;
     $register->clbz = config('constants.exam.status.register');
     $register->bmsj = date('Y-m-d H:i:s');
     $register->nd = $exam->nd;
     $register->save();
     return redirect('exam')->withStatus('考试报名成功,请交费!');
 }