public static function getCurrentTemplate($typePage) { $model = Templates::model()->find(array('select' => 'template, layout', 'condition' => 'group_page = :g AND default_theme = "1"', 'params' => array(':g' => $typePage))); if ($model != null) { return array('template' => $model->template, 'layout' => $model->layout); } }
public function executor() { $usersModel = User::model()->findAllNotificationExecutors(); if (is_array($usersModel)) { foreach ($usersModel as $user) { foreach ($user->zakaz_executor as $zakaz) { if (isset($user->profile)) { $time = explode(':', $user->profile->notification_time); } else { $time[0] = 0; } if (count($time) < 2) { $time[1] = 0; } $date = date('Y-m-d H:i', strtotime($zakaz->author_informed)); $date = strtotime($date) - (int) $time[0] * 60 * 60 - (int) $time[1] * 60; $dateStart = strtotime(date('Y-m-d H:i', $date)) - self::INTERVAL * 60; if (time() > $dateStart && time() <= $date) { echo 'Email zakaz #' . $zakaz->id . "\n"; $templatesModel = Templates::model()->findByAttributes(array('type_id' => '32')); if ($templatesModel) { $email = new Emails(); $email->from_id = 1; $email->to_id = $user->id; $email->name = $user->full_name; $email->sendTo($user->email, $templatesModel->title, $templatesModel->text); } } // Send message executor, when completion of the point foreach ($zakaz->parts as $stage) { if (isset($user->profile)) { $time = explode(':', $user->profile->notification_time); } else { $time[0] = 0; } if (count($time) < 2) { $time[1] = 0; } $date = date('Y-m-d H:i', strtotime($stage->date)); $date = strtotime($date) - (int) $time[0] * 60 * 60 - (int) $time[1] * 60; $dateStart = strtotime(date('Y-m-d H:i', $date)) - self::INTERVAL * 60; if (time() > $dateStart && time() <= $date) { echo 'Email stage zakaz #' . $stage->id . "\n"; $templatesModel = Templates::model()->findByAttributes(array('type_id' => '33')); if ($templatesModel) { $email = new Emails(); $email->from_id = 1; $email->to_id = $user->id; $email->name = $user->full_name; $email->sendTo($user->email, $templatesModel->title, $templatesModel->text); } } } } } } }
public function actionSend() { $model = new Emails(); $this->_prepairJson(); $orderId = $this->_request->getParam('orderId'); $typeId = $this->_request->getParam('typeId'); $back = $this->_request->getParam('back'); $cost = $this->_request->getParam('cost'); $order = Zakaz::model()->findByPk($orderId); $arr_type = array(Emails::TYPE_18, Emails::TYPE_19, Emails::TYPE_20, Emails::TYPE_21, Emails::TYPE_22, Emails::TYPE_23, Emails::TYPE_24); if (in_array($typeId, $arr_type)) { $user = User::model()->findByPk($order->executor); } else { $user = User::model()->findByPk($order->user_id); } $model->to_id = $user->id; $profile = Profile::model()->findAll("`user_id`='{$user->id}'"); $rec = Templates::model()->findAll("`type_id`='{$typeId}'"); $title = $rec[0]->title; $model->name = $profle->firstname; if (strlen($model->name) < 2) { $model->name = $user->username; } $model->login = $user->username; $model->num_order = $orderId; $model->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId; $model->message = $rec[0]->text; $model->price_order = $cost; $this->sum_order = $cost; $model->sendTo($user->email, $rec[0]->text, $typeId); $model->save(); /* if (!isset($back)) $back = 'index'; $this->render($back, [ 'model'=>$model ]); */ }
/** * @var array $types */ ?> <div class="modal-header"> <a class="close" data-dismiss="modal">×</a> <h4><?php echo ProjectModule::t('Please select template'); ?> </h4> </div> <div class="modal-body"> <?php foreach ($types as $type) { $templates = Templates::model()->findAllByAttributes(['type_id' => $type]); $templateNames = []; foreach ($templates as $template) { $name = $template['name']; $template->text = $template->insertVariables($template->text, $orderId); if (in_array($name, $templateNames)) { continue; } $templateNames[] = $name; } ?> <div class="chat_templates_wrapper template_type_<?php echo $type; ?> hidden"> <?php
<br /> <b><?php echo CHtml::encode($data->getAttributeLabel('title')); ?> :</b> <?php echo CHtml::encode($data->title); ?> <br /> <b><?php echo CHtml::encode($data->getAttributeLabel('text')); ?> :</b> <?php echo CHtml::encode($data->text); ?> <br /> <b><?php echo CHtml::encode($data->getAttributeLabel('type')); ?> :</b> <?php echo CHtml::encode(Templates::model()->performType($data->type_id)); ?> <br /> </div>
/** * Registration user */ public static function register($model, $post, $role = 'Customer') { $model->attributes = $post; if (isset($_COOKIE['partner'])) { $model->pid = intval($_COOKIE['partner']); } if ($model->validate()) { $soucePassword = UserModule::generate_password(8); $model->password = UserModule::encrypting($soucePassword); $model->superuser = 0; $model->status = 1; if ($model->save()) { $AuthAssignment = new AuthAssignment(); $AuthAssignment->attributes = array('itemname' => $role, 'userid' => $model->id); $AuthAssignment->save(); if ($role == 'Author') { if ($model->profile == null) { $profile = new Profile(); $profile->user_id = $model->id; $profile->mailing_for_executors = 1; $profile->save(); } } $webmasterlog = new WebmasterLog(); $webmasterlog->pid = $model->pid; $webmasterlog->uid = $model->id; $webmasterlog->date = date("Y-m-d"); $webmasterlog->action = WebmasterLog::REG; $webmasterlog->save(); // новая служба системных сообщений $type_id = Emails::TYPE_11; $email = new Emails(); $criteria = new CDbCriteria(); $criteria->order = 'id DESC'; $criteria->limit = 1; $user = User::model()->findAll($criteria); $user = $user[0]; $email->from_id = 1; $email->to_id = $user->id; $rec = Templates::model()->findAll("`type_id`='{$type_id}'"); $id = Company::getId(); $email->company = Company::getName(); $email->name = $model->full_name; $email->login = $model->email; $email->password = $soucePassword; $email->page_cabinet = 'http://' . $_SERVER['SERVER_NAME'] . '/user/profile/edit'; $email->sendTo($user->email, $rec[0]->title, $rec[0]->text, $type_id); $identity = new UserIdentity($model->email, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); //$this->redirect(Yii::app()->controller->module->returnUrl[0]); return true; //Yii::app()->end(); } else { //Yii::app()->user->setFlash('reg_failed',UserModule::t("Sorry, something wrong... :(")); //$this->refresh(); echo 'Cant save'; Yii::app()->end(); } } else { return false; } }
public function actionSend() { $email = new Emails(); $this->_prepairJson(); $orderId = $this->_request->getParam('orderId'); $typeId = $this->_request->getParam('typeId'); $back = $this->_request->getParam('back'); $cost = $this->_request->getParam('cost'); $order = Zakaz::model()->findByPk($orderId); $arr_type = array(Emails::TYPE_18, Emails::TYPE_19, Emails::TYPE_20, Emails::TYPE_21, Emails::TYPE_22, Emails::TYPE_23, Emails::TYPE_24); if (in_array($typeId, $arr_type)) { $user_id = $order->executor; } else { $user_id = $order->user_id; } if (!$user_id) { Yii::app()->end(); } $user = User::model()->findByPk($user_id); $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->full_name; 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->price_order = $cost; $email->sum_order = $cost; $specials = Catalog::model()->findByPk($order->specials); $email->specialization = $specials->cat_name; $email->name_order = $order->title; $email->subject_order = $order->title; $email->sendTo($user->email, $rec[0]->title, $rec[0]->text, $typeId); }
public function actionView($id) { $template = Templates::model()->findByPk($id); $this->render('view', array('template' => $template)); }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Templates the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Templates::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, Yii::t('site', 'The requested page does not exist.')); } return $model; }
/** * Вывод и добавление сообщений */ public function actionIndex($orderId) { $isGuest = Yii::app()->user->isGuest; Yii::app()->session['project_id'] = $orderId; if (Yii::app()->request->isAjaxRequest) { if (Yii::app()->request->getPost('ProjectMessages')) { $id = (int) $_POST['ProjectMessages']['id']; if ($id > 0) { $model = ProjectMessages::model()->findByPk($id); } else { $model = new ProjectMessages(); $model->sender = Yii::app()->user->id; $model->moderated = 0; $model->order = $orderId; } $post = $_POST['ProjectMessages']['message']; $post = str_replace("\r\n", '<br>', $post); $post = str_replace("\n", '<br>', $post); $_POST['ProjectMessages']['message'] = $post; $model->attributes = Yii::app()->request->getPost('ProjectMessages'); $model->date = date('Y-m-d H:i:s'); switch ($model->recipient) { case 'manager': $model->recipient = 1; break; case 'customer': if (User::model()->isCustomer()) { $model->recipient = Zakaz::model()->resetScope()->findByPk($orderId)->attributes['executor']; $type_id = Emails::TYPE_20; } else { if (User::model()->isAuthor()) { $model->recipient = Zakaz::model()->findByPk($orderId)->attributes['user_id']; $type_id = Emails::TYPE_16; } } $user = User::model()->findByPk($model->recipient); $profile = Profile::model()->findAll("`user_id`='{$model->recipient}'"); $email = new Emails(); $rec = Templates::model()->findAll("`type_id`='{$type_id}'"); $title = $rec[0]->title; $body = $rec[0]->text; $email->name = $user->full_name; if (strlen($email->name) < 2) { $email->name = $user->username; } $email->num_order = $orderId; $email->message = $post; $email->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId; $email->sendTo($user->email, $body, $type_id); break; } //print_r($model); //echo '<br>$model->save()='.$model->save(); EventHelper::addMessage($orderId, $model->message); } $this->renderPartial('chat', array('orderId' => $orderId, 'isGuest' => $isGuest)); Yii::app()->end(); } $order = Zakaz::model()->resetScope()->findByPk($orderId); $parts = ZakazParts::model()->findAll(array('condition' => "`proj_id`='{$orderId}'")); if ($isGuest) { Yii::app()->theme = 'client'; // если гость прошёл по ссылке на неcуществующий // проект, отправляем его на регистрацию $url = 'http://' . $_SERVER['SERVER_NAME'] . '/'; if (!$order) { $this->redirect($url); } $moderate_types = EventHelper::get_moderate_types_string(); $events = Events::model()->findAll(array('condition' => "`event_id`='{$orderId}' AND `type` in ({$moderate_types})", 'order' => 'timestamp DESC'), array(':event_id' => $orderId)); $moderated = count($events) == 0; // если гость прошёл по ссылке на непромодерированный // проект, отправляем его на регистрацию if (!$moderated) { $this->redirect(Yii::app()->createUrl('user/login')); } // Catalog::model()->tableName(); //$EmptyChat = UserModule::t('EmptyChat'); $this->render('index', array('orderId' => $orderId, 'order' => $order, 'executor' => Zakaz::getExecutor($orderId), 'moderated' => $moderated, 'isGuest' => $isGuest, 'parts' => $parts)); Yii::app()->end(); } $moderate_types = EventHelper::get_moderate_types_string(); $events = Events::model()->findAll(array('condition' => "`event_id`='{$orderId}' AND `type` in ({$moderate_types})", 'order' => 'timestamp DESC'), array(':event_id' => $orderId)); $moderated = count($events) == 0; $this->render('index', array('orderId' => $orderId, 'order' => $order, 'executor' => Zakaz::getExecutor($orderId), 'moderated' => $moderated, 'isGuest' => $isGuest, 'parts' => $parts)); }
public function actionView($orderId) { $order = Zakaz::model()->resetScope()->findByPk($orderId); $parts = ZakazParts::model()->findAll(array('condition' => "`proj_id`='{$orderId}'")); $messageForAuthor = Templates::model()->getTemplate(Templates::TYPE_AUTHOR_RESPONSE_PROJECT); //$isGuest = Yii::app()->user->isGuest; $isGuest = Yii::app()->user->isGuest(); if ($isGuest || User::model()->isManager()) { Yii::app()->theme = 'client'; // если гость прошёл по ссылке на неcуществующий // проект, отправляем его на регистрацию $url = 'http://' . $_SERVER['SERVER_NAME'] . '/user/login'; if (!$order) { $this->redirect($url); } /*$moderate_types = EventHelper::get_moderate_types_string(); $events = Events::model()->findAll(array( 'condition' => "`event_id`='$orderId' AND `type` in ($moderate_types)", 'order' => 'timestamp DESC' ), array(':event_id'=> $orderId) ); $moderated = count($events) == 0; // если гость прошёл по ссылке на непромодерированный // проект, отправляем его на регистрацию if (!$moderated) $this->redirect( Yii::app()->createUrl('user/login')); */ } elseif (Yii::app()->user->id == $order->executor) { // Current executor $this->redirect(Yii::app()->createUrl('/project/chat', array('orderId' => $orderId))); } if ($isGuest || User::model()->isAuthor()) { $buttonTemplates = Templates::model()->findAllByAttributes(array('type_id' => $isGuest ? 30 : 29)); } $this->render('view', array('orderId' => $orderId, 'order' => $order, 'isGuest' => $isGuest, 'parts' => $parts, 'messageForAuthor' => $messageForAuthor, 'buttonTemplates' => $buttonTemplates)); //Yii::app()->end(); }
/** * Recovery password */ public function actionRecovery() { $form = new UserRecoveryForm(); Yii::app()->theme = 'client'; if (Yii::app()->user->id) { $this->redirect(Yii::app()->controller->module->returnUrl); } else { $email = isset($_GET['email']) ? $_GET['email'] : ''; $activkey = isset($_GET['activkey']) ? $_GET['activkey'] : ''; if ($email && $activkey) { $form2 = new UserChangePassword(); $find = User::model()->notsafe()->findByAttributes(array('email' => $email)); if (isset($find) && $find->activkey == $activkey) { if (isset($_POST['UserChangePassword'])) { $form2->attributes = $_POST['UserChangePassword']; if ($form2->validate()) { $find->password = Yii::app()->controller->module->encrypting($form2->password); $find->activkey = Yii::app()->controller->module->encrypting(microtime() . $form2->password); if ($find->status == 0) { $find->status = 1; } $find->save(); Yii::app()->user->setFlash('recoveryMessage', UserModule::t("New password is saved.")); $this->redirect(Yii::app()->controller->module->recoveryUrl); } } $this->render('changepassword', array('form' => $form2)); } else { Yii::app()->user->setFlash('recoveryMessage', UserModule::t("Incorrect recovery link.")); $this->redirect(Yii::app()->controller->module->recoveryUrl); } } else { if (isset($_POST['UserRecoveryForm'])) { $form->attributes = $_POST['UserRecoveryForm']; if ($form->validate()) { $user = User::model()->notsafe()->findbyPk($form->user_id); $user->activkey = UserModule::encrypting(microtime() . $user->password); $user->save(); $activation_url = 'http://' . $_SERVER['HTTP_HOST'] . $this->createUrl(implode(Yii::app()->controller->module->recoveryUrl), array("activkey" => $user->activkey, "email" => $user->email)); /* $this->createUrl(implode(Yii::app()->controller->module->recoveryUrl)); $subject = UserModule::t("You have requested the password recovery site {site_name}", array( '{site_name}'=>Yii::app()->name, )); $message = UserModule::t("You have requested the password recovery site {site_name}. To receive a new password, go to <a href=\"{activation_url}\">{activation_url}</a>.", array( '{site_name}'=>Yii::app()->name, '{activation_url}'=>$activation_url, )); UserModule::sendMail($user->email,$subject,$message); */ // новая служба системных сообщений $type_id = Emails::TYPE_10; $email = new Emails(); /*$criteria = new CDbCriteria(); $criteria->order = 'id DESC'; $criteria->limit = 1; $user = User::model()->findAll($criteria); $user = $user[0];*/ $email->from_id = 1; $email->to_id = $form->user_id; // = $user->id; $rec = Templates::model()->findAll("`type_id`='{$type_id}'"); $id = Campaign::getId(); $email->campaign = Campaign::getName(); $email->name = $user->full_name; $email->login = $user->username; $email->password = $soucePassword; $email->page_psw = $activation_url; $email->page_cabinet = 'http://' . $_SERVER['SERVER_NAME'] . '/user/profile/edit'; $email->sendTo($user->email, $rec[0]->title, $rec[0]->text, $type_id); Yii::app()->user->setFlash('recoveryMessage', UserModule::t("Please check your email. An instructions was sent to your email address.")); $this->refresh(); } } $this->render('recovery', array('form' => $form)); } } }
<div class="row" data-role="<?php echo User::model()->isCustomer(); ?> " id="message_send" data-message-send="<?php echo Templates::model()->getTemplate(31); ?> "> <?php //if (!Yii::app()->request->isAjaxRequest){ echo CHtml::form(); ?> <div class="chat-text-area"> <?php echo CHtml::label(ProjectModule::t('Message'), 'message', array('id' => 'msgLabel')); ?> <?php echo CHtml::textArea('message', '', array('rows' => 6, 'class' => 'col-xs-12', 'placeholder' => ProjectModule::t('Enter your message...'))); ?> </div> <div class="chat-edit-text-area" id="div-edit-message" style="display: none;"> <?php echo CHtml::label(ProjectModule::t('Message'), 'edit-message', array('id' => 'msgLabel1')); ?> <?php echo CHtml::textArea('edit-message', '', array('rows' => 6, 'class' => 'col-xs-12', 'placeholder' => ProjectModule::t('Enter your message...'), 'id' => 'edit-message')); ?> </div> <?php if (count($buttonTemplates)) {
public function run() { $statuses = $this->getStatus(); $tips = array(); foreach ($statuses as $item) { $tip = Templates::model()->findByAttributes(['type_id' => 5, 'name' => $item]); if ($tip) { $tips[] = $tip; } } $this->render('view', array('tips' => $tips)); }
public function actionStatus() { $status_id = Yii::app()->request->getPost('status_id'); $id = Yii::app()->request->getPost('id'); if (User::model()->isAuthor() && $status_id == '+1' && $id) { $stage = ZakazParts::model()->findByPk($id); if (User::model()->isExecutor($stage->proj_id) && $stage->status_id == 1) { $stage->status_id = 2; $stage->save(); echo $stage->status->status; EventHelper::stageDoneByExecutor($stage->proj_id, $stage->title); } else { echo 'Wrong base status'; } } elseif (User::model()->isCustomer() && $status_id == '+1' && $id) { $stage = ZakazParts::model()->findByPk($id); if (User::model()->isOwner($stage->proj_id) && $stage->status_id == 3) { $stage->status_id = 4; $stage->save(); //echo $stage->status->status; echo ProjectModule::t('Approved by me'); EventHelper::stageDoneByCustomer($stage->proj_id, $stage->title); } else { echo 'Wrong base status'; } } elseif (User::model()->isManager() && $status_id && $id) { $orderId = Yii::app()->request->getPost('orderId'); $row = array('status_id' => $status_id); $condition = array(); $params = array(); ZakazParts::model()->updateByPk($id, $row, $condition, $params); if ((int) $status_id == 3) { $parts = ZakazParts::model()->findAll("`proj_id` = '{$orderId}' AND `status_id` IN (0,1,2)"); $order = Zakaz::model()->resetScope()->findByPk($orderId); $subject_order = $order->title; $user_id = $order->user_id; $user = User::model()->findByPk($user_id); $order->setCustomerEvents(2); $email = new Emails(); if (count($parts) > 0) { $type_id = Emails::TYPE_14; } else { $type_id = Emails::TYPE_15; } $rec = Templates::model()->findAll("`type_id`='{$type_id}'"); echo count($parts); $title = $rec[0]->title; $body = $rec[0]->text; $email->name = $user->full_name; if (strlen($email->name) < 2) { $email->name = $user->username; } $email->num_order = $orderId; // $model->date = date('Y-m-d H:i:s'); $email->subject_order = $subject_order; $email->num_order = $orderId; $email->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId; $email->sendTo($user->email, $rec[0]->title, $rec[0]->text, $type_id); } } }
<?php /* @var $this TemplatesController */ /* @var $model Templates */ $this->breadcrumbs = array(Yii::t('site', 'Templates') => array('index'), $model->name); $this->menu = array(array('label' => Yii::t('site', 'List Templates'), 'url' => array('index')), array('label' => Yii::t('site', 'Create Templates'), 'url' => array('create')), array('label' => Yii::t('site', 'Update Templates'), 'url' => array('update', 'id' => $model->id)), array('label' => Yii::t('site', 'Delete Templates'), 'url' => '#', 'linkOptions' => array('submit' => array('delete', 'id' => $model->id), 'confirm' => Yii::t('site', 'Are you sure you want to delete this item?'))), array('label' => Yii::t('site', 'Manage Templates'), 'url' => array('admin'))); ?> <h1><?php echo Yii::t('site', 'View Templates') . ' #' . $model->id; ?> </h1> <?php $this->widget('zii.widgets.CDetailView', array('data' => $model, 'attributes' => array('id', 'name', 'title', 'text', array('name' => 'type_id', 'type' => 'raw', 'value' => Templates::model()->performType($data->type_id)))));
<?php /* @var $this TemplatesController */ /* @var $model Templates */ $this->menu = array(array('label' => Yii::t('site', 'Create Templates'), 'url' => array('create'))); Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n\t\$('.search-form').toggle();\n\treturn false;\n});\n\$('.search-form form').submit(function(){\n\t\$('#templates-grid').yiiGridView('update', {\n\t\tdata: \$(this).serialize()\n\t});\n\treturn false;\n});\n"); ?> <h1><?php echo Yii::t('site', 'Manage Templates'); ?> </h1> <p> <?php echo Yii::t('site', 'You may optionally enter a comparison operator (<b><</b>, <b><=</b>, <b>></b>, <b>>=</b>, <b><></b> or <b>=</b>) at the beginning of each of your search values to specify how the comparison should be done.'); ?> </p> <?php echo CHtml::link(Yii::t('site', 'Advanced Search'), '#', array('class' => 'search-button')); ?> <div class="search-form" style="display:none"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'templates-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array('id', 'name', 'title', 'text', array('name' => 'type_id', 'type' => 'raw', 'value' => Templates::model()->performType($data->type_id)), array('class' => 'CButtonColumn'))));
public function yiichat_post($chat_id, $identity, $message, $postdata, $data) { $this->_chat_id = $chat_id; $this->_identity = $identity; $this->_data = $data; $message_filtered = trim($this->acceptMessage($message)); if ($message_filtered != "") { $obj = array("order" => $chat_id, "sender" => $identity, "sender_role" => ProjectMessages::model()->getRoleId(User::model()->getUserRole($identity)), "date" => date('Y-m-d H:i:s'), "message" => $message_filtered); $order = Zakaz::model()->findByPk($chat_id); if (isset($postdata['index']) && $postdata['index'] == 0) { if ($postdata['recipient'] == 'Author') { $obj['recipient'] = $order->attributes['executor']; $obj['recipient_role'] = ProjectMessages::model()->getRoleId('Author'); if ($obj['recipient'] == 0) { $obj['recipient'] = -1; } } elseif ($postdata['recipient'] == 'Customer') { $obj['recipient'] = $order->attributes['user_id']; $obj['recipient_role'] = ProjectMessages::model()->getRoleId('Customer'); /*} elseif (isset($postdata['recipient'])){ $obj['recipient'] = $postdata['recipient'];*/ } elseif ($postdata['recipient'] == 'Corrector') { $obj['recipient_role'] = ProjectMessages::model()->getRoleId('Corrector'); $obj['recipient'] = -2; } else { $obj['recipient'] = 0; } $newid = $this->getDb()->createCommand()->insert($this->getTableName(), $obj); } else { if ($postdata['recipient'] == 'no') { $obj['recipient'] = 0; $newid = $this->getDb()->createCommand()->update($this->getTableName(), $obj, 'id=:id', array('id' => $postdata['index'])); } else { if ($postdata['recipient'] == 'redir') { $sender = ProjectMessages::model()->findByPk($postdata['index'])->senderObject->AuthAssignment['itemname']; $obj['sender'] = ProjectMessages::model()->findByPk($postdata['index'])->attributes['sender']; $obj['moderated'] = 1; if ($sender == 'Customer') { $obj['recipient'] = $order->attributes['executor']; } if ($sender == 'Author') { $obj['recipient'] = $order->attributes['user']; } $newid = $this->getDb()->createCommand()->insert($this->getTableName(), $obj); } else { if ($postdata['recipient'] == 'Customer') { $obj['recipient'] = $order->attributes['user_id']; $obj['recipient_role'] = ProjectMessages::model()->getRoleId('Customer'); } if ($postdata['recipient'] == 'Author') { $obj['recipient'] = $order->attributes['executor']; $obj['recipient_role'] = ProjectMessages::model()->getRoleId('Author'); } if ($postdata['recipient'] == 'Corrector') { $obj['recipient'] = -2; $obj['recipient_role'] = ProjectMessages::model()->getRoleId('Corrector'); } if (is_numeric($postdata['recipient'])) { $obj['recipient'] = $postdata['recipient']; $obj['recipient_role'] = ProjectMessages::model()->findByPk($postdata['index'])->attributes['sender_role']; } $newid = $this->getDb()->createCommand()->insert($this->getTableName(), $obj); } } } // now retrieve the post $obj['recipient'] = User::model()->findByPk($obj['recipient']); if ($obj['recipient']) { $obj['recipient']->superuser = $obj['recipient']->getRelated('AuthAssignment'); } $obj['sender'] = User::model()->findByPk($obj['sender']); $obj['sender']->superuser = $obj['sender']->getRelated('AuthAssignment'); $specials = isset($order->specials) ? $order->specials : $order->specials2; $title = Catalog::model()->findByPk($specials)->cat_name . '. ' . $order->attributes['title'] . '. ' . Yii::t('site', 'You have received a new message.'); $message = CHtml::link(Yii::t('site', 'Link to order page'), Yii::app()->createAbsoluteUrl('/project/chat', array('orderId' => $chat_id))) . '<br />' . $obj['message']; $headers = 'From: no-reply@' . $_SERVER['SERVER_NAME'] . "\r\n" . 'Reply-To: no-reply@' . $_SERVER['SERVER_NAME'] . "\r\n" . 'Content-Type: text/html; charset=utf-8;' . 'X-Mailer: PHP/' . phpversion(); //mail($obj['recipient']->attributes['email'],$title,$message,$headers); /*if (User::model()->getUserRole($obj['recipient']->id)=='Customer') { $type_id = Emails::TYPE_16; $order->setCustomerEvents(1); } else if (User::model()->getUserRole($obj['recipient']->id)=='Author') { $type_id = Emails::TYPE_20; $order->setExecutorEvents(2); } $email = new Emails; $rec = Templates::model()->findAll("`type_id`='$type_id'"); $email->name = $obj['recipient']->full_name; if (strlen($email->name) < 2) $email->name = $obj['recipient']->username; $email->num_order = $chat_id; $email->message = strip_tags($obj['message']); $email->page_order = 'http://'.$_SERVER['SERVER_NAME'].'/project/chat?orderId='.$chat_id; $email->sendTo( $obj['recipient']->email, $rec[0]->title, $rec[0]->text, $type_id);*/ if ($postdata['flags']) { foreach ($postdata['flags'] as $v) { switch ($v) { case 'send_sms': include_once "smsc_api.php"; list($sms_id, $sms_cnt, $cost, $balance) = send_sms(str_replace(['+', '-'], '', $obj['recipient']->attributes['phone_number']), $obj['message']); // list($sms_id, $sms_cnt, $cost, $balance) = send_sms(str_replace(['+','-'],'',$obj['recipient']->profile->attributes['mob_tel']), $obj['message']); break; case 'send_email': if (User::model()->getUserRole($obj['recipient']->id) == 'Customer') { $type_id = Emails::TYPE_16; } else { if (User::model()->getUserRole($obj['recipient']->id) == 'Author') { $type_id = Emails::TYPE_20; } } $email = new Emails(); $rec = Templates::model()->findAll("`type_id`='{$type_id}'"); $email->name = $obj['recipient']->full_name; if (strlen($email->name) < 2) { $email->name = $obj['recipient']->username; } $email->num_order = $chat_id; $email->message = strip_tags($obj['message']); $email->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $chat_id; $email->sendTo($obj['recipient']->email, $rec[0]->title, $rec[0]->text, $type_id); break; } } } $obj['time'] = date_format(date_create($obj['date']), 'd.m.Y H:i:s'); $obj['owner'] = substr($this->getIdentityName(), 0, 20); return $obj; } else { return array(); } }
</p> </div> <?php Yii::app()->getClientScript()->registerScriptFile('/js/tinymce/tinymce.min.js'); $this->beginWidget('application.extensions.booster.widgets.TbModal', array('id' => 'template')); ?> <div class="modal-header"> <a class="close" data-dismiss="modal">×</a> <h4><?php echo Yii::t('project', 'Please select template'); ?> </h4> </div> <div class="modal-body"> <?php echo CHtml::dropDownList('templates', '', CHtml::listData(Templates::model()->findAll(), 'id', 'title')); ?> </div> <div class="modal-footer"> <?php $this->widget('application.extensions.booster.widgets.TbButton', array('buttonType' => 'submit', 'label' => 'Выбрать', 'id' => 'select_template', 'htmlOptions' => array('data-dismiss' => 'modal'))); ?> <?php /* $this->widget('application.extensions.booster.widgets.TbButton', array( 'label' => 'Закрыть', 'htmlOptions' => array('data-dismiss' => 'modal'), ));*/ ?> </div> <?php $this->endWidget();
public function actionStatus() { $row = array('status_id' => Yii::app()->request->getPost('status_id')); $id = Yii::app()->request->getPost('id'); $condition = array(); $params = array(); ZakazParts::model()->updateByPk($id, $row, $condition, $params); if ($row['status_id'] == 3) { $email = new Emails(); $orderId = Yii::app()->request->getPost('id'); $typeId = Emails::TYPE_14; $order = Zakaz::model()->findByPk($orderId); $user = User::model()->findByPk($order->user_id); $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; echo '<br>$user->email=' . $user->email; $email->sendTo($user->email, $rec[0]->text, $typeId); } Yii::app()->end(); }
public function actionSetTechSpec() { $orderId = $_POST['orderId']; $val = $_POST['val']; $order = Zakaz::model()->findByPk($orderId); if (!$order) { throw new CHttpException(500); } $order->technicalspec = $val; $order->save(); if ($val) { $criteria = new CDbCriteria(); if (Company::getId()) { $projectFields = $order->getFields(); if ($projectFields) { foreach ($projectFields as $field) { if ($field->required == ProjectField::REQUIRED_YES_REG_SPAM) { $varname = $field->varname; $value = $order->{$varname}; $criteria->addSearchCondition('profile.' . $varname, $value); } } } } $criteria->addSearchCondition('AuthAssignment.itemname', 'Corrector'); $authors = User::model()->with('profile', 'AuthAssignment')->findAll($criteria); if (!empty($authors)) { /*$link = $this->createAbsoluteUrl('/project/chat/', ['orderId' => $orderId]); $mail = new YiiMailer(); $mail->clearLayout(); $mail->setFrom(Yii::app()->params['supportEmail'], Yii::app()->name); $mail->setSubject('Приглашение в проект'); $link = 'http://'.$_SERVER['SERVER_NAME'].'/project/chat?orderId='.$orderId; $mail->setBody('<a href="'.$link.'">'.$link.'</a>');*/ // новая рассылка $typeId = Emails::TYPE_26; $rec = Templates::model()->findAll("`type_id`='{$typeId}'"); foreach ($authors as $user) { //$specials = explode(',',$user->profile->specials); //if (!in_array($order->specials, $specials)) continue; $email = new Emails(); $email->to_id = $user->id; // to rm ?? $email->name = $user->full_name; 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; $specials = isset($order->specials) ? $order->specials : $order->specials2; $specials = Catalog::model()->findByPk($specials); $email->specialization = $specials->cat_name; $email->name_order = $order->title; $email->subject_order = $order->title; $email->sendTo($user->email, $rec[0]->title, $rec[0]->text, $typeId); } echo 'send_email'; } else { echo 'no_users'; } } Yii::app()->end(); }
/** * Registration user */ public function actionRegistration() { $model = new RegistrationForm(); if (isset($_GET['role']) && $_GET['role'] == 'Customer') { $role = 'Customer'; } elseif (isset($_GET['role']) && $_GET['role'] == 'Author') { $role = 'Author'; } elseif (isset($_GET['role']) && $_GET['role'] == 'Manager') { $role = 'Manager'; } else { $role = 'Customer'; } if (Yii::app()->user->id && (!Yii::app()->user->hasFlash('reg_success') && !Yii::app()->user->hasFlash('reg_failed'))) { $this->redirect(Yii::app()->controller->module->profileUrl); } else { if (isset($_POST['RegistrationForm'])) { $model->attributes = $_POST['RegistrationForm']; if ($model->validate()) { $soucePassword = $this->generate_password(8); $model->password = UserModule::encrypting($soucePassword); $model->superuser = 0; $model->status = 1; $model->username = $model->email; if ($model->save()) { $AuthAssignment = new AuthAssignment(); $AuthAssignment->attributes = array('itemname' => $role, 'userid' => $model->id); $AuthAssignment->save(); //$login_url = '<a href="'.$this->createAbsoluteUrl('/user/login').'">'.Yii::app()->name.'</a>'; //UserModule::sendMail($model->email,UserModule::t("You registered from {site_name}",array('{site_name}'=>Yii::app()->name)),UserModule::t("You have registred from {login_url}<br /><br />Your password: {pass}",array('{login_url}'=>$login_url, '{pass}'=>$soucePassword))); // новая служба системных сообщений $type_id = Emails::TYPE_11; $email = new Emails(); $criteria = new CDbCriteria(); $criteria->order = 'id DESC'; $criteria->limit = 1; $user = User::model()->findAll($criteria); $user = $user[0]; $email->from_id = 1; $email->to_id = $user->id; $rec = Templates::model()->findAll("`type_id`='{$type_id}'"); $title = $rec[0]->title; $body = $rec[0]->text; $id = Campaign::getId(); $email->campaign = Campaign::getName(); $email->name = $model->full_name; $email->login = $model->username; $email->password = $soucePassword; $email->page_cabinet = 'http://' . $_SERVER['SERVER_NAME'] . '/user/profile/edit'; $email->sendTo($user->email, $body, $type_id); $identity = new UserIdentity($model->username, $soucePassword); $identity->authenticate(); Yii::app()->user->login($identity, 0); //$this->redirect(Yii::app()->controller->module->returnUrl); Yii::app()->user->setFlash('reg_success', UserModule::t("Thank you for your registration. Password has been sent to your e-mail. Please check your e-mail ({{email}}) before start.", ['{{email}}' => $model->email])); $this->refresh(); //Yii::app()->end(); } else { Yii::app()->user->setFlash('reg_failed', UserModule::t("Sorry, something wrong... :(")); $this->refresh(); } } } Yii::app()->theme = 'client'; $this->render('/user/registration', array('model' => $model, 'role' => $role)); } }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model=Templates::model()->findByPk((int)$id); if($model===null) throw new CHttpException(404,'The requested page does not exist.'); return $model; }
public function actionApprove($id) { if (!Yii::app()->request->isAjaxRequest) { return false; } $model = $this->loadModel($id); $model->scenario = 'approve'; if (!$model->isAllowedAdd()) { echo CJSON::encode(array('error' => array('text' => array(ProjectModule::t('You are not allowed to change!'))))); Yii::app()->end(); } if (isset($_REQUEST['moderate'])) { $model->moderate = !$model->isModerate() ? '1' : '0'; $model->date_update = date('Y-m-d H:i:s'); if (ProjectChanges::approveAllowed()) { $model->date_moderate = date('Y-m-d H:i:s'); if ($model->moderate) { $orderId = $model->project_id; $order = Zakaz::model()->findByPk($orderId); $user = User::model()->findByPk($order->executor); $type_id = Emails::TYPE_23; $email = new Emails(); $rec = Templates::model()->findAll("`type_id`='{$type_id}'"); $email->name = $user->full_name; if (strlen($email->name) < 2) { $email->name = $user->username; } $email->num_order = $orderId; $email->page_order = 'http://' . $_SERVER['SERVER_NAME'] . '/project/chat?orderId=' . $orderId; $email->sendTo($user->email, $rec[0]->title, $rec[0]->text, $type_id); } } if ($model->save(false)) { if ($model->moderate == 1 && $order) { $order->setExecutorEvents(4); } echo CJSON::encode(array('success' => true, 'approve' => $model->isModerate() ? 'true' : 'false')); Yii::app()->end(); } } echo CJSON::encode(array('error' => array('text' => array('Данные не переданы!')))); Yii::app()->end(); }