예제 #1
0
 public function perform()
 {
     if (!$this->canPerform()) {
         return;
     }
     $news = $this->getNews();
     if (empty($news)) {
         return;
     }
     $urls = array();
     foreach ($news as $news) {
         if (!empty($news->url)) {
             $urls[$news->buildUrl(array(), false)][] = $news;
         }
     }
     $c = new Connection(array(CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_NOBODY => true, CURLOPT_MAXREDIRS => 1));
     foreach ($urls as $url => $news) {
         $c->addRequest(new ConnectionRequest($url));
     }
     $requests = $c->run();
     foreach ($requests as $i => $request) {
         foreach ($urls[$request->url] as $news) {
             $result = $request->reply->result == 0 ? $request->reply->info['http_code'] : $request->reply->result;
             /** @var News $news */
             if ($news->url_status != $result) {
                 $news->updateByPk($news->id, array('url_status' => $result));
                 if ($result !== 200) {
                     SMail::sendMail(Yii::app()->params->notifyEmail, 'Новость "' . $news->name . '" не доступна.', 'NewsUrlCheckError', array('news' => $news, 'request' => $request));
                 }
             }
         }
     }
 }
예제 #2
0
 public function actionSigninPlatform()
 {
     if (!Yii::app()->user->isGuest) {
         $this->redirect('/');
     }
     $user = new Users('signin');
     if (isset($_POST['Users'])) {
         $user->attributes = $_POST['Users'];
     }
     $user->role = Users::ROLE_PLATFORM;
     $user->status = Users::STATUS_MODERATION;
     $platform = new Platforms('signin');
     if (isset($_POST['Platforms'])) {
         $platform->attributes = $_POST['Platforms'];
     }
     $platform->is_active = 0;
     if (isset($_POST['Users']) && isset($_POST['Platforms'])) {
         $user->validate();
         $platform->validate();
         if (!$user->hasErrors() && !$platform->hasErrors()) {
             $transaction = $user->getDbConnection()->beginTransaction();
             if ($user->save(false)) {
                 $platform->user_id = $user->id;
                 if ($platform->save(false)) {
                     SMail::sendMail(Yii::app()->params['registrationEmail'], 'Регистрация пользователя ' . $user->email, 'SignInRequest', array('user' => $user));
                     $transaction->commit();
                     $this->redirect(array('users/signinSuccess'));
                 }
             }
             $transaction->rollback();
         }
     }
     $this->render('signin_platform', array('user' => $user, 'platform' => $platform));
 }