public function register() { $user = new Users(); $user->attributes = $this->attributes; $salt = md5(uniqid() . time()); $user->email = $this->email; $user->salt = $salt; $user->pass = crypt(trim($this->pass) . $salt); if ($user->validate() && $user->save()) { if (!Settings::model()->getValue('mail_confirm')) { $user->status = 1; $user->save(); return 1; } Yii::import('ext.YiiMailer.YiiMailer'); $code = md5(md5($user->pass . $user->email)); $mail = new YiiMailer(); $mail->setFrom(Settings::model()->getValue('register')); $mail->setTo($user->email); $mail->setSubject(Yii::t('register', 'Account activation')); $mail->setBody(Yii::t('register', "Hello {nick},<br/><br/>Your activation code: {code}<br/>{link}", array('{nick}' => $user->nick, '{code}' => $code, '{link}' => Yii::app()->createAbsoluteUrl('site/confirm', array('user' => $user->nick, 'code' => $code))))); $mail->send(); return 1; } }
public function actionUusi_tuote() { $model = new Viivakoodi(); $this->performAjaxValidation($model); if (isset($_POST['Viivakoodi'])) { $model->attributes = $_POST['Viivakoodi']; if (isset($_POST['tuoteen_tyyppi'])) { $model->tuoteen_tyyppi = implode("//", $_POST['tuoteen_tyyppi']); } if ($model->save()) { Yii::app()->user->setState('UusiEsikatselu', null); $sahkopostinSisalto = ' Hyväksymällä tuotteen se näytetään kaikille. <br> <p><a href="' . Yii::app()->request->baseUrl . '/index.php/viivakoodi/update?id=' . $model->id . '">Muokkaa</a></p>'; if (!$this->onkoSuperAdmin()) { $mail = new YiiMailer(); $asetukset = Asetukset::model()->findbypk(1); //$mail->clearLayout();//if layout is already set in config $mail->setFrom('*****@*****.**', 'MIINUS.FI'); $mail->setTo($asetukset->admin_mail); $mail->setSubject('Uusi tuote on lisätty. ID-' . $model->id); $mail->setBody($sahkopostinSisalto); $mail->send(); } $this->redirect(array('/site/ruoka_paivakirja')); } else { var_dump($model->getErrors()); } } $this->render('uusi_tuote', array('model' => $model, 'state' => Yii::app()->user->UusiEsikatselu)); }
/** * Updates a particular model. * If update is successful, the browser will be redirected to the 'view' page. */ public function actionEdit() { $model = $this->loadUser(); $profile = $model->profile; // ajax validator if (isset($_POST['ajax']) && $_POST['ajax'] === 'profile-form') { echo UActiveForm::validate(array($model, $profile)); Yii::app()->end(); } if (isset($_POST['User'])) { // Uusi myyja if (isset(Yii::app()->user->myyja) and $model->hyvaksy_hylka_kirje == 0) { $message = 'Uusi myyjä on rekisteröitynyt sähköposti osoitteella ' . $model->email . ':<br> <a href="http://' . $_SERVER['HTTP_HOST'] . '/index.php/site/uusi_myyja?tila=1&id=' . $model->id . '&code=' . $model->myyja_vahvistus . '">Hyväksy myyjä</a> <a href="http://' . $_SERVER['HTTP_HOST'] . '/index.php/site/uusi_myyja?tila=0&id=' . $model->id . '&code=' . $model->myyja_vahvistus . '">Hylkää myyjä</a>'; $asetukset = Asetukset::model()->findbypk(1); $mail = new YiiMailer(); $mail->setFrom('*****@*****.**', 'MIINUS.FI'); $mail->setTo($asetukset->admin_mail); $mail->setSubject('Uusi myyjä'); $mail->setBody($message); $mail->send(); $model->hyvaksy_hylka_kirje = 1; } // Uusi myyja if (isset(Yii::app()->user->myyja)) { $_POST['Profile']['sukupuoli'] = 1; $_POST['Profile']['muokkaa_energia_suositusta'] = 1; $_POST['Profile']['ppkkvvvv'] = '---'; $_POST['Profile']['tavoitepaino'] = '---'; } else { $_POST['Profile']['pankkitilinumero'] = '---'; $_POST['Profile']['nayttonimi'] = '---'; $_POST['Profile']['bic_koodi'] = '---'; $_POST['Profile']['alv_velvollinen'] = 1; } $model->attributes = $_POST['User']; $profile->attributes = $_POST['Profile']; if ($model->validate() && $profile->validate()) { $model->save(); $profile->save(); Yii::app()->user->updateSession(); //Yii::app()->user->setFlash('profileMessage',UserModule::t("Changes is saved.")); if (isset(Yii::app()->user->myyja)) { $this->redirect(Yii::app()->request->baseUrl . '/index.php/site/myyja'); } else { $this->redirect(Yii::app()->request->baseUrl . '/index.php/site/ruoka_paivakirja'); } } else { $profile->validate(); } } if (isset(Yii::app()->user->myyja)) { $this->render('edit_myyja', array('model' => $model, 'profile' => $profile)); } else { $this->render('edit', array('model' => $model, 'profile' => $profile)); } }
public function send() { $mailer = new YiiMailer(); $maildata = $this->args; if ($this->view) { $mailer->setView($this->view); } $mailer->setData($maildata); $mailer->setFrom($this->from, $this->fromUser); $mailer->setTo($this->to); $mailer->setSubject($this->subject); $mailer->setBody($this->body); $sent = $mailer->send(); if ($sent) { return array('status' => true, 'error' => ''); } else { return array('status' => false, 'error' => $mailer->getError()); } }
$criteria->order = " id DESC "; $criteria->condition = " \n\t\tstatus=1\n\t\tAND (stop - INTERVAL 7 DAY) < NOW()\n\t\tAND ilmoitus_kayttoajasta=0\n\t\tAND koodi!='ilmainen'\n\t"; $model = Orders::model()->findAll($criteria); foreach ($model as $data) { $user = User::model()->findbypk($data->user_id); if (isset($user->email) and !empty($user->email)) { $message = ' Hei. Käyttöaikasi miinus.fi ohjelmaan päättyy 7 päivän kuluttua. Voit ostaa lisää aikaa menemällä osoitteeseen miinus.fi. Voit ostaa lisää aikaa vaikka heti ja se alkaa vasta sitten, kun vanha käyttöaika on päättynyt. '; $mail = new YiiMailer(); $mail->setFrom('*****@*****.**', 'MIINUS.FI'); $mail->setTo($user->email); $mail->setSubject('Käyttöaika loppumassa'); $mail->setBody(str_replace("\n", "<br>", $message)); if ($mail->send()) { Orders::model()->updatebypk($data->id, array('ilmoitus_kayttoajasta' => 1)); } } } } //Maksun varaus poistaminen jos kavija ei maksettu $criteria = new CDbCriteria(); $criteria->order = " id DESC "; $criteria->condition = " \n\t\tstatus=0 AND authcode!='99999'\n\t\tAND (NOW() - INTERVAL 30 MINUTE) > time \n\t"; $model = Orders::model()->deleteAll($criteria); Yii::app()->user->setState('tarkistukset', true); //echo $curpage; if (!Yii::app()->user->isGuest and !$site[0]->onkoSuperAdmin() and ($curpage == 'site/ruoka_paivakirja' or $curpage == 'site/liikunta_paivakirja' or $curpage == 'site/mittaus_paivakirja' or $curpage == 'blog/index' or $curpage == 'profile/profile' or $curpage == 'profile/edit')) { $criteria = new CDbCriteria();
/** * Displays the login page * Handles processing of the login form and forgot password form */ public function actionLogin() { $UserLogin = new UserLogin(); $this->layout = false; // redirect if user already logged in //if (!Yii::app()->user->isGuest) { // $this->redirect($this->createUrl('/site/dashboard')); //} // process login form submission if (isset($_POST['UserLogin'])) { if (isset($_POST['UserLogin']['LoginEmail'])) { // user login // set model scenario $UserLogin->scenario = 'formLogin'; // collect user input data $UserLogin->attributes = $_POST['UserLogin']; // validate user input and redirect to the dashboard if ($UserLogin->validate() && $UserLogin->authenticate()) { // redirect to relevant dashboard based on role $authRoles = Yii::app()->authManager->getRoles(Yii::app()->user->id); foreach (array_keys($authRoles) as $authRole) { switch ($authRole) { case 'superAdministrator': $this->redirect($this->createUrl('admin/index')); break; case 'testimonialReviewer': case 'testimonialApprover': $this->redirect($this->createUrl('testimonial/dashboard')); break; } } // do redirect if (UserLogin::model()->findByPk(Yii::app()->user->id)->IsPasswordReset) { // change password form $this->redirect($this->createUrl('user/profilepasswordupdate')); } else { // default dashboard // echo ":TEST:"; // echo(UserLogin::model()->findByPk(Yii::app()->user->id)->AgreetoTerms); //die(':TEST'); $this->redirect($this->createUrl('company/index')); } } } elseif (isset($_POST['UserLogin']['ResetEmail'])) { // password reset // email of account for password reset $resetEmail = $_POST['UserLogin']['ResetEmail']; // check for record matching entered email if (!($UserLogin = UserLogin::model()->findByAttributes(array('LoginEmail' => $resetEmail)))) { $UserLogin = new UserLogin(); } // set model scenario $UserLogin->scenario = 'formReset'; // generate a new password $newPassword = $UserLogin->generatePassword(); // set reset attributes $UserLogin->UserPassword = md5($newPassword); $UserLogin->ResetEmail = $resetEmail; $UserLogin->IsPasswordReset = 1; // save password change if ($UserLogin->save()) { // build message with temporary password $mail = new YiiMailer(); $mail->clearLayout(); // no layout, plain text email $mail->setFrom(Yii::app()->params['adminEmail'], Yii::app()->params['adminName']); $mail->setTo($UserLogin->ResetEmail); $mail->setSubject('ITR | Password Reset'); $mail->setBody('Your password has been reset, you may now log in with the following temporary password: '******'success', 'An email with a temporary password has been sent to your email address.'); } else { // set failure message for user Yii::app()->user->setFlash('failure', 'There was an error when trying to send your temporary password. Please try again in a few minutes or contact web support.'); } // reload view, clears post variables $this->redirect($this->createUrl('user/login')); } // clear generated password so it doesn't display on the login form $UserLogin->UserPassword = ''; } } // display the login form $this->render('login', array('UserLogin' => $UserLogin)); }
public function actionRecovery() { if (isset($_POST['pass']) && isset($_POST['pass2'])) { if (empty($_POST['pass']) || empty($_POST['pass2'])) { $code = 5; } elseif ($_POST['pass'] !== $_POST['pass2']) { $code = 4; } else { $user = Users::model()->findByAttributes(array('nick' => $_GET['user'])); if (!$user) { $code = 1; } else { $userCode = md5(md5($user->pass . $user->email)); if ($_GET['code'] != $userCode) { $code = 2; } else { $code = 6; $user->pass = crypt($_POST['pass'] . $user->salt); $user->save(); } } } $this->render('recovery', array('code' => $code)); } elseif (isset($_GET['user']) && isset($_GET['code'])) { $user = Users::model()->findByAttributes(array('nick' => $_GET['user'])); if (!$user) { $code = 1; } else { $userCode = md5(md5($user->pass . $user->email)); if ($_GET['code'] != $userCode) { $code = 2; } else { $code = 3; } } $this->render('recovery', array('code' => $code)); } elseif (!isset($_POST['nick']) || !isset($_POST['email'])) { $this->render('recovery', array('result' => '')); } else { $answer = Yii::t('register', 'There is no such user'); if (isset($_POST['nick']) && !empty($_POST['nick'])) { $user = Users::model()->findByAttributes(array('nick' => $_POST['nick'])); if (!$user) { $answer = Yii::t('register', 'There is no such user'); } else { $mail = 1; $answer = Yii::t('register', 'Letter for password recovery was sended to your email'); } } elseif (isset($_POST['email']) && !empty($_POST['email'])) { $user = Users::model()->findByAttributes(array('email' => $_POST['email'])); if (!$user) { $answer = Yii::t('register', 'There is no such user'); } else { $mail = 1; $answer = Yii::t('register', 'Letter for password recovery was sended to your email'); } } if (isset($mail) && $mail) { Yii::import('ext.YiiMailer.YiiMailer'); $code = md5(md5($user->pass . $user->email)); $mail = new YiiMailer(); $mail->setFrom(Settings::model()->getValue('recovery')); $mail->setTo($user->email); $mail->setSubject(Yii::t('register', 'Password recovery')); $mail->setBody(Yii::t('register', "Recovery link: {link}", array('{link}' => Yii::app()->createAbsoluteUrl('site/recovery', array('user' => $user->nick, 'code' => $code))))); $mail->send(); } $this->render('recovery', array('result' => $answer)); } }
public function actionSpam($order_id) { header('Content-type: application/json'); $zakaz = Zakaz::model()->findByPk($order_id); if (!$zakaz) { throw new CHttpException(500); } $criteria = new CDbCriteria(); if (Campaign::getId()) { $projectFields = $zakaz->getFields(); if ($projectFields) { foreach ($projectFields as $field) { if ($field->required == ProjectField::REQUIRED_YES_REG_SPAM) { $varname = $field->varname; $value = $zakaz->{$varname}; $criteria->addSearchCondition('profile.' . $varname, $value); //$criteria->addCondition('profile.'.$varname.' REGEXP \'(^|[[:punct:]])'.$value.'($|[[:punct:]])\''); } } } //echo json_encode(array('error'=>$tmp)); //Yii::app()->end(); } /* else { $job = $zakaz->job_id; $discipline = $zakaz->category_id; $criteria->addSearchCondition('profile.discipline',$discipline); $criteria->addSearchCondition('profile.job_type',$job, true, 'OR'); }*/ $authors = User::model()->with('profile')->findAll($criteria); if (!empty($authors)) { $link = $this->createAbsoluteUrl('/project/chat/', ['orderId' => $order_id]); $mail = new YiiMailer(); $mail->clearLayout(); $mail->setFrom(Yii::app()->params['supportEmail'], Yii::app()->name); $mail->setSubject('Приглашение в проект'); $link = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $order_id; $mail->setBody('<a href="' . $link . '">' . $link . '</a>'); foreach ($authors as $author) { $mail->setTo($author->email); if ($author->getUserRole($author->id) == 'Author') { $mail->send(); } } echo 'ok =)'; $email = new Emails(); // новая рассылка $orderId = $order_id; $typeId = Emails::TYPE_14; $order = Zakaz::model()->findByPk($orderId); $user = User::model()->findByPk($order->user_id); $type_id = Emails::TYPE_18; $email->to_id = $user->id; $profile = Profile::model()->findAll("`user_id`='{$user->id}'"); $rec = Templates::model()->findAll("`type_id`='{$typeId}'"); $title = $rec[0]->title; $email->name = $profle->firstname; if (strlen($email->name) < 2) { $email->name = $user->username; } $email->login = $user->username; $email->num_order = $orderId; $email->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId; $email->message = $rec[0]->text; $email->sendTo($user->email, $rec[0]->text, $typeId); } else { echo json_encode(array('error' => 'Нет авторов')); } Yii::app()->end(); }
public function actionMainos() { if (isset($_POST['mainos_otsikko']) and !empty($_POST['mainos_text'])) { $criteria = new CDbCriteria(); $criteria->condition = " mainosten_lahetys=1 "; $profiili = Profile::model()->findAll($criteria); foreach ($profiili as $val) { $user = User::model()->findbypk($val->user_id); $send = true; if (isset($_POST['kenelle']) and $_POST['kenelle'] == 'aktiiviselle') { $criteria = new CDbCriteria(); $criteria->order = " id DESC "; $criteria->condition = " \n\t\t\t\t\tuser_id='" . $val->user_id . "'\n\t\t\t\t\tAND status=1\n\t\t\t\t\tAND NOW() < stop \n\t\t\t\t"; $orders = Orders::model()->find($criteria); if (!isset($orders->id)) { $send = false; } } elseif (isset($_POST['kenelle']) and $_POST['kenelle'] == 'rekisteroityneille') { $criteria = new CDbCriteria(); $criteria->order = " id DESC "; $criteria->condition = " \n\t\t\t\t\tuser_id='" . $val->user_id . "'\n\t\t\t\t\tAND status=1\n\t\t\t\t\tAND NOW() < stop \n\t\t\t\t"; $orders = Orders::model()->find($criteria); if (isset($orders->id)) { $send = false; } } if (isset($user->email) and !empty($user->email) and $send == true) { //echo 'kayttaja: '.$user->id.'. Lahetys pitaa tapahtua postille: '.$user->email.'<br>'; $message = $_POST['mainos_text'] . "<br>"; $message .= '<p> Jos et halua, että lähetämme sinulle sähköpostia tulevaisuudessa, voit lopettaa sähköpostien vastaanottamisen painamalla <a href="' . Yii::app()->getBaseUrl(true) . '/index.php/site/lopeta?id=' . $user->id . '">lopeta</a></p>'; $mail = new YiiMailer(); $mail->setFrom('*****@*****.**', 'MIINUS.FI'); $mail->setTo($user->email); $mail->setSubject($_POST['mainos_otsikko']); $mail->setBody(str_replace("\n", "<br>", $message)); $mail->send(); } } $this->redirect(array('mainos', 'ok' => true)); //exit; } $this->render('mainos'); }
$html2pdf->setDefaultFont('Arial'); $html2pdf->WriteHTML($this->renderPartial('kuitti_pdf', array('id' => $model->id), true)); $content_PDF = $html2pdf->Output('kuitti.pdf', EYiiPdf::OUTPUT_TO_STRING); //$html2pdf->Output(); //exit; $file = $model->id . '_' . date("Y_m_d", $_GET['TIMESTAMP']) . '.pdf'; file_put_contents('kuitit/' . $file, $content_PDF); $maksettu_pvm = date("Y-m-d H:i:s", $_GET['TIMESTAMP']); Orders::model()->updatebypk($model->id, array('status' => 1, 'maksettu_pvm' => $maksettu_pvm)); $message = "\n\t\tHei. Kiitos ostoksestasi miinus.fi ohjelmaan.<br>\n\t\tHinta sis.alv: " . $model->hinta . "<br>\n\t\tAikavali: " . date("d.m.Y", strtotime($model->start)) . " - " . date("d.m.Y", strtotime($model->stop)) . ".<br>\n\t\tKuitti on liitenä.\n\t\t<br><br>\n\t\t<b>Terveisin Miinus.fi</b>\n\t "; $mail = new YiiMailer(); //$mail->clearLayout();//if layout is already set in config $mail->setFrom('*****@*****.**', 'MIINUS.FI'); $mail->setTo($model->sahkoposti); $mail->setSubject("Maksaminen onnistui."); $mail->setBody($message); $mail->setAttachment('kuitit/' . $file); if ($mail->send()) { echo ' <div class="alert alert-info"> <h1> Maksaminen onnistui.<br> <meta http-equiv="refresh" content="3;url=' . Yii::app()->request->baseUrl . '/index.php/site/ruoka_paivakirja" /> <h2>Sinut ohjataan ruokapäiväkirjaan.<br> Jos mitään ei tapahdu paina <a href="' . Yii::app()->request->baseUrl . '/index.php/site/ruoka_paivakirja">tästä</a>.</h2> </h1> </div> ';