/** * Displays the contact page */ public function actionContact() { $model = new ContactForm(); if (isset($_POST['ContactForm'])) { $model->attributes = $_POST['ContactForm']; if ($model->validate()) { $headers = "From: {$model->email}\r\nReply-To: {$model->email}"; if (!Yii::app()->user->isGuest) { $message = 'Пользователь # ' . Yii::app()->user->id . "\n"; } $message .= $model->body; $deps = ContactForm::getDepartments(); $message .= "\n\nСообщение отправлено в " . $deps[$model->departament]; $message .= "\n\nОбратная связь сайта " . $_SERVER['HTTP_HOST']; mail(Yii::app()->params['adminEmail'], $model->subject, $message, $headers); Yii::app()->user->setFlash('contact', 'Спасибо за обращение. Мы ответим Вам в ближайшее время.'); $this->refresh(); } } else { if (!Yii::app()->user->isGuest) { $anketa = Anketa::model()->findByPk(Yii::app()->user->id); $model->email = $anketa->email; $model->name = $anketa->name; } } $this->render('contact', array('model' => $model)); }
/** * @return Anketa */ public function getMe() { if ($this->me === null) { $this->me = Anketa::model()->findByPk($this->id); } return $this->me; }
public function actionIndex() { $count['total'] = Anketa::model()->count(); $count['active'] = Anketa::model()->count(); $count['woman'] = Anketa::model()->count('gender=0'); $count['man'] = Anketa::model()->count('gender=1'); $count['premium'] = Anketa::model()->count('flags & 2'); $this->render('index', compact('count')); }
public function authenticate() { //ищем пользователя по номеру(!) $record = Anketa::model()->findByPk($this->username); if ($record === null) { // второй вход по email $record = Anketa::model()->findByAttributes(array('email' => $this->username, 'isdeleted' => '0')); if ($record === null) { $this->errorCode = self::ERROR_USERNAME_INVALID; } else { if ($record->password !== $this->password) { // пароль = ID $this->errorCode = self::ERROR_PASSWORD_INVALID; } else { $this->_id = $record->id; //$this->_gender = $record->gender; $this->setState('gender', $record->gender); $this->setState('name', $record->name); // $record->last_visit = time(); $record->last_site = preg_replace('#^www\\.#i', '', $_SERVER['HTTP_HOST']); $record->saveAttributes(array('last_visit', 'last_site')); $record->checkClone(); $this->errorCode = self::ERROR_NONE; } } } else { if ($record->id !== $this->password) { // пароль = ID $this->errorCode = self::ERROR_PASSWORD_INVALID; } else { $this->_gender = $record->gender; $this->_id = $record->id; $this->setState('gender', $record->gender); $this->setState('name', $record->name); // $record->last_visit = time(); $record->last_site = preg_replace('#^www\\.#i', '', $_SERVER['HTTP_HOST']); $record->saveAttributes(array('last_visit', 'last_site')); $record->checkClone(); $this->errorCode = self::ERROR_NONE; } } return !$this->errorCode; }
public function actionGhosts() { $model = new Anketa('search'); $model->unsetAttributes(); // clear any default values $model->setPremium(null); if (isset($_GET['Anketa'])) { $model->attributes = $_GET['Anketa']; $model->setPremium($_GET['Anketa']['premium']); } $criteria = new CDbCriteria(array('condition' => 'id NOT IN (SELECT DISTINCT id_anketa FROM `anketa_fingerprint` ) AND first_visit > 1370265543')); $dataProvider = $model->search(); $dataProvider->criteria->mergeWith($criteria); $this->render('ghosts', array('dataProvider' => $dataProvider, 'model' => $model)); }
<?php echo $form->labelEx($model,'phone'); ?> <?php echo $form->textField($model,'phone'); ?> <?php echo $form->error($model,'phone'); ?> </div> */ ?> <div class="row"> <?php echo $form->labelEx($model,'isinactive'); ?> <?php echo $form->checkBox($model,'isinactive'); ?> <?php echo $form->error($model,'isinactive'); ?> </div> <div class="row"> <?php $model->description = explode ("\n",$model->description); ?> <?php echo $form->labelEx($model,'description'); ?> <?php echo $form->checkBoxList($model,'description',array_combine(Anketa::goalsArray(),Anketa::goalsArray())); ?> <?php echo $form->error($model,'description'); ?> </div> <div class="row"> <?php echo $form->labelEx($model,'about'); ?> <?php echo $form->textArea($model,'about',array('rows'=>'10','cols'=>80,)); ?> <?php echo $form->error($model,'about'); ?> </div> <div class="row buttons"> <?php echo CHtml::submitButton('Сохранить'); ?> </div>
public function actionDeleteUserMessages($id) { if (!($anketa = Anketa::model()->findByPk($id))) { throw new CHttpException('404', 'Пользователь не найден'); } Yii::app()->db->createCommand('DELETE FROM message WHERE id_from=:id or id_to=:id')->execute(array(':id' => $anketa->id)); Yii::app()->db->createCommand('DELETE FROM `message_count` WHERE id1=:id or id2=:id')->execute(array(':id' => $anketa->id)); Yii::app()->user->setFlash('success', 'Переписка пользователя удалена'); $url = $_SERVER['HTTP_REFERER'] ? $_SERVER['HTTP_REFERER'] : '/cp/message'; $this->redirect($url); }
/** * 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 = Anketa::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
/** * Запуск задачи на исполнение.. взаимодействует с моделью пользователей.. * пока лежит здесь */ public function goTask() { if ($this->type == 'untop') { if ($anketa = Anketa::model()->findByPk($this->id_user)) { $anketa->setTop(0); $anketa->savePriority(); $this->status = 0; $this->saveAttributes(array('status')); } } else { if ($this->type == 'unpremium') { if ($anketa = Anketa::model()->findByPk($this->id_user)) { $anketa->setPremium(0); $anketa->savePriority(); $this->status = 0; $this->saveAttributes(array('status')); } } } }
<b class="hd">Возраст</b> <?php echo $form->dropDownList($model, 'agefrom', $ages, array('empty' => 'не указан')); ?> </div> <div class="item item-rht"> <b class="hd"> </b> <?php echo $form->dropDownList($model, 'ageto', $ages, array('empty' => 'не указан')); ?> </div> </div> <div class="row big-sel nuclear"> <b class="hd">Откуда</b> <?php echo $form->dropDownList($model, 'location', Anketa::getCities(), array('empty' => 'выберите город', 'class' => 'mainselect')); ?> </div> </div> <div class="row nucelar"> <input type="submit" value="Искать!" class="but" /> </div> <?php $this->endWidget(); ?> </div> <div class="search enter"> <div class="headline">Вход на сайт</div> <?php $model = new LoginForm(); ?>
<input type="submit" name="delete" value="Izbrisi anketu" form="forma" class="graybtn"> <input type="submit" name="edit" value="Aktiviraj anketu" form="forma" class="graybtn"> </div> <table id="tabela"> <thead> <tr> <th>ID</th> <th>Status</th> <th>Naslov</th> <th>Izbrisi</th> <th>Aktiviraj</th> </tr> </thead> <form action="anketa_process.php" method="post" id="forma"> <?php $ankete = Anketa::getAll(); foreach ($ankete as $anketa) { if ($anketa->status == 1) { $anketa->status = "aktivna"; } else { $anketa->status = "neaktivna"; } ?> <tr> <td><?php echo $anketa->pitanje_id; ?> </td> <td><?php echo $anketa->status; ?>
/** * рандомное обновление даты посещения у старых анкет */ public function actionFakeVisit($city = '') { Anketa::model()->reFakeVisit($city); }
$clones = Anketa::model()->findAllByPk($anketas); foreach ($clones as $zombie) { if ($zombie->id == $model->id) continue; echo CHtml::link($zombie->name.", {$zombie->age}, {$zombie->city}",$zombie->link,array('target'=>'_blank')); echo ($zombie->isBad() ? " / ".Anketa::$bad_statuses[$zombie->status_bad] : ''); echo " | "; } ?> <br/><br/> <? } ?> <?php $etag = Yii::app()->db->createCommand('SELECT cookie FROM anketa2etag WHERE id =:id')->queryScalar(array(':id' => $model->id)); if ($etag) { $ids = explode(':',$etag); if ($etagClones = Anketa::model()->findAllByPk($ids)) { echo "<h3>100% клоны (Etag):</h3>"; foreach ($etagClones as $zombie) { if ($zombie->id == $model->id) continue; echo CHtml::link($zombie->name.", {$zombie->age}, {$zombie->city}",$zombie->link,array('target'=>'_blank')); echo ($zombie->isBad() ? " / ".Anketa::$bad_statuses[$zombie->status_bad] : ''); echo " | "; } echo '<br/><br/>'; } } ?> <h3>Подозрения (ip):</h3> <table style="width:660px;"> <?php foreach ($iparray as $ipdata) {
/** * Аццкий говнокод * */ public function actionOrderService() { $service = Yii::app()->request->getPost('service'); $model = Anketa::model()->findByPk(Yii::app()->user->id); $transaction = new Btransaction(); $transaction->id_user = $model->id; $transaction->time_end = $transaction->time_start = time(); $transaction->info = array('ip' => $_SERVER['REMOTE_ADDR']); $time_task = $time_top = $time_premium = 0; switch ($service) { case 1: // подъем анкеты if (Btransaction::model()->count('id_user = :id_user AND time_start > :delta AND description = :description', array(':id_user' => $transaction->id_user, ':delta' => time() - 60 * 5, ':description' => 'Поднятие анкеты'))) { //Yii::app()->end(); $this->redirect(Yii::app()->request->getUrlReferrer()); } // если чаще, чем в 5 минут - не списываем $transaction->amount = -100; $transaction->description = 'Поднятие анкеты'; $transaction->status = 1; $model->setUp(); break; case 2: $transaction->amount = -250; $transaction->description = 'ТОП на 2 недели'; $transaction->status = 1; $time_top = 14 * 24 * 3600; break; case 3: $transaction->amount = -400; $transaction->description = 'ТОП на 30 дней '; $transaction->status = 1; $time_top = 30 * 24 * 3600; break; case 4: $transaction->amount = -ServiceManager::getPrice(4); $transaction->description = 'ПРЕМИУМ 2 недели'; $transaction->status = 1; $time_premium = 14 * 24 * 3600; break; case 5: $transaction->amount = -ServiceManager::getPrice(5); $transaction->description = 'ПРЕМИУМ на 30 дней'; $transaction->status = 1; $time_premium = 30 * 24 * 3600; break; case 6: $transaction->amount = -ServiceManager::getPrice(6); $transaction->description = 'ПРЕМИУМ на 3 дня'; $transaction->status = 1; $time_premium = 3 * 24 * 3600; break; default: Yii::app()->user->setFlash('error', 'Неверная операция'); $this->redirect(Yii::app()->request->getUrlReferrer()); } if ($time_top) { $model->top = 1; $time_task = $time_top; $task = 'untop'; } if ($time_premium) { /** * Если человек с пробным аккаунтом проплачивает прем – неизрасходованный пробник в двойном размере * прибавляется к прему. Т.е. человек, мгновенно оплативший прем после регистрации получит 72 часа к прему. */ $bonus_time = 0; if ($model->getAccountType() == Anketa::ACCOUNT_TRIAL) { $bonus_time = ($model->trial_end - time()) * 2; } if ($bonus_time <= 0) { $bonus_time = 0; } $model->setPremium(1); $time_task = $time_premium + $bonus_time; $task = 'unpremium'; } if ($model->balance + $transaction->amount < 0) { Yii::app()->user->setFlash('error', 'Недостаточно средств'); $this->redirect(Yii::app()->request->getUrlReferrer()); } if ($time_task) { $q = 'INSERT INTO `task` (id_user, `type`,time_task,`data`,status) VALUES (:id_user,:type,:time_task+UNIX_TIMESTAMP(),:data,:status) ON DUPLICATE KEY UPDATE time_task = GREATEST(time_task,UNIX_TIMESTAMP()) + :time_task,status=:status;'; Yii::app()->db->createCommand($q)->execute(array(':id_user' => $transaction->id_user, ':type' => $task, ':time_task' => $time_task, ':data' => '', ':status' => 1)); } $transaction->info = serialize($transaction->info); if ($transaction->save(false)) { // без валидации.. $model->addBalance($transaction->amount); $model->savePriority(); } Yii::app()->user->setFlash('success', 'Услуга «' . $transaction->description . '» успешно активирована'); $this->checkUnBadStatus($model, $service); $this->redirect(Yii::app()->request->getUrlReferrer()); }
public function actionCities() { $cities = Anketa::getCities(); $cities = $cities['Города России:']; //$cities = $cities['Две столицы:']; $cmd = Yii::app()->db->createCommand('SELECT count(id) FROM anketa where location LIKE :city'); // $delCmd = Yii::app()->db->createCommand('DELETE FROM anketa WHERE sexual_orientation = 1 AND id < 503777 AND location LIKE :city LIMIT :limit'); // $cmdcity = Yii::app()->db->createCommand('INSERT IGNORE INTO anketa_in_city SELECT id FROM anketa where location LIKE :city'); $result = array(); $sum = 0; foreach ($cities as $city) { $result[$city] = $cmd->queryScalar(array(':city' => "%{$city}%")); // $cmdcity->execute(array(':city'=>"%$city%")); // if ($result[$city] > 70) { // $delCmd->bindValue(':limit', intval($result[$city] * 0.7), PDO::PARAM_INT); // $delCmd->bindValue(':city',"%$city%" , PDO::PARAM_STR); // $delCmd->execute(); // echo $city; // } $sum += $result[$city]; } array_multisort($result); // foreach ($result as $k=>$v) { // if ($v<15) $q[] = "UPDATE anketa SET location = '$k' WHERE location LIKE '%Саратов%' LIMIT 13;"; // } // echo implode('<br>',$q); die(); print_r($result); echo '<br>Total: ' . $sum; exit; }
public function actionUntop($id = 0) { $id = (int) $id; if ($anketa = Anketa::model()->findByPk($id)) { $anketa->setTop(0); // print_r ($anketa->attributes); $anketa->savePriority(); echo 1; } }
public function getLastClone() { if ($this->a2cookie) { $anketas = explode('_', trim($this->a2cookie->cookie, '_')); $anketas = array_diff($anketas, array(Yii::app()->user->id)); $clones = Anketa::model()->findByPk($anketas, array('order' => 'first_visit DESC', 'limit' => 1)); return $clones; } }
/** * Declares the validation rules. */ public function rules() { return array(array('mygender,agefrom,ageto,gender,location,goals,heigthfrom,heigthto,weightfrom,weightto', 'safe'), array('goals', 'in', 'range' => Anketa::goalsArray()), array('last_visit', 'in', 'range' => array_keys(self::getLastVisitValues()), 'allowEmpty' => true)); }
public function actionRegister() { if (!Yii::app()->user->isGuest) { $this->redirect(array('ok')); } $model = new Anketa('register'); // uncomment the following code to enable ajax-based validation /* if(isset($_POST['ajax']) && $_POST['ajax']==='anketa-register-form') { echo CActiveForm::validate($model); Yii::app()->end(); } */ if (isset($_POST['Anketa'])) { $model->attributes = $_POST['Anketa']; if (!empty($model->description)) { $model->description = implode("\n", $model->description); } if (!empty($model->sex_role)) { if (is_array($model->sex_role)) { $model->sex_role = implode(",", array_intersect($model->sex_role, array_keys(Anketa::$getSexRoles))); } } $model->last_site = preg_replace('#^www\\.#i', '', $_SERVER['HTTP_HOST']); // если загружен файл - сохраняем во временный каталог if ($image = CUploadedFile::getInstance($model, 'file')) { $model->file = CUploadedFile::getInstance($model, 'file'); if ($model->validate(array('file'))) { if (Yii::app()->user->hasState('registerPhoto')) { // delete old uploaded file unlink($model->getRegisterPhotoFile()); } $fileName = $image->getName(); $pi = pathinfo($fileName); $tmpname = time() . '.' . $pi['extension']; $image->saveAs($model->getRegisterPhotoFile($tmpname)); Yii::app()->user->setState('registerPhoto', $tmpname); } // echo "IMAGE DETECTED:".$image->getName(); // echo "tmp:".$image->getTempName(); // Yii::app()->end(); //die(); } // файл уже был загружен - заполним file if (Yii::app()->user->hasState('registerPhoto')) { $model->file = Yii::app()->user->getState('registerPhoto'); } $model->priority = $model->first_visit = time(); // Базовый аккаунт действует 36 часов. И 15 контактов для мужчин. И 25 для девушек. $model->trial_end = time() + 36 * 3600; $model->contact_count = $model->gender == Anketa::GENDER_WOMAN ? 25 : 15; $model->trial_end = 1701647178; // лет так на 10 $model->contact_count = 100; // тоже много $model->id_sess = Yii::app()->session->itemAt('id_stat'); if ($model->validate()) { // form inputs are valid, do something here if ($model->save(false)) { //Photo Save (!)only when was uploaded if (Yii::app()->user->hasState('registerPhoto')) { $photo = new Photo(); $photo->id_photo = $photo->getMaxIdPhoto($model->id); $photo->id_user = $model->id; $photo->path = $photo->getLargeImagePath(); // в модель $photo->intim = $model->intimPhoto; if (!$photo->saveFullImage($model->getRegisterPhotoFile())) { throw new CHttpException('500', 'Ошибка сохранения фотографии'); } $photo->saveSmallPictures(); $photo->save(false); //not validate //update anketa mainphoto $model->mainphoto = $photo->id_photo; $model->saveAttributes(array('mainphoto')); /* //$file_name = '/p/9000/'.$model->id.'_'.$photo->id_photo.'_l.JPG'; $file_name = $photo->getFullImagePath(); if (!copy($model->getRegisterPhotoFile(),$_SERVER['DOCUMENT_ROOT'].$file_name)) { throw new Exception('Ошибка сохранения фотографии'); } */ /* $image = Yii::app()->image->load($_SERVER['DOCUMENT_ROOT'].$file_name); $file_name = '/p/6000/'.$model->id.'_'.$photo->id_photo.'_l.JPG'; if ($imginfo[0] > Photo::$sizes['full'][0] || $imginfo[1] > Photo::$sizes['full'][1]) { $image->resize(Photo::$sizes['full'][0], Photo::$sizes['full'][1]); $image->quality(100)->save(); } if ($imginfo[0] > Photo::$sizes['large'][0] || $imginfo[1] > Photo::$sizes['large'][1]) $image->resize(Photo::$sizes['large'][0], Photo::$sizes['large'][1]); $image->save($_SERVER['DOCUMENT_ROOT'].$file_name); TmpHelper::addLogo($_SERVER['DOCUMENT_ROOT'].'/'.$file_name); $photo->path = '/p/6000/'.$model->id.'_'.$photo->id_photo.'_l.JPG';*/ unlink($model->getRegisterPhotoFile()); Yii::app()->user->setState('registerPhoto', null); } //Send Email $email = Yii::app()->email; $email->view = 'register'; $email->viewVars = array('model' => $model); $email->subject = 'Регистрация на ' . Yii::app()->name; $email->from = Yii::app()->params['noreplyEmail']; $email->to = $model->email; $email->send(); Yii::app()->user->setFlash('registered', 'Вы успешно зарегистрированы'); // add like|dislike from cookie to likes if (Yii::app()->user->hasState('guestlikes')) { $models = Anketa::model()->findAllByPk(Yii::app()->user->guestlikes['dislike']); foreach ($models as $anketa) { $model->adddislike($anketa->id); } $likes = array_diff(Yii::app()->user->guestlikes['like'], Yii::app()->user->guestlikes['dislike']); $models = Anketa::model()->findAllByPk($likes); foreach ($models as $anketa) { $model->addlike($anketa->id); } Yii::app()->user->setState('guestlikes', null); // чистим сессию Yii::app()->user->clearGuestLikes(); // и куки (!) незарегистрированного пользователя } $loginform = new LoginForm(); $loginform->attributes = array('username' => $model->email, 'password' => $model->password, 'rememberMe' => 1); $loginform->login(); //Yii::app()->user->setFlash('profile',''); $this->redirect(array('/register/ok')); } else { throw new CHttpException(500, 'Ошибка при сохранении.' . $model->getErrors(), true); } return; } } $this->render('register', array('model' => $model)); }