diff --git a/common/models/Customer.php b/common/models/Customer.php index dec9cf4..0854a27 100644 --- a/common/models/Customer.php +++ b/common/models/Customer.php @@ -3,7 +3,8 @@ namespace common\models; use Yii; - + use yii\helpers\FileHelper; + /** * This is the model class for table "customer". * @@ -26,6 +27,7 @@ */ class Customer extends \yii\db\ActiveRecord { + public $file; const STATUS_NEW = 2; const STATUS_ACTIVE = 1; const STATUS_NO = 0; @@ -103,7 +105,6 @@ 'organization', 'name', 'secondname', - 'dignity', 'birth', 'citizenship', 'passport', @@ -113,7 +114,7 @@ 'required', ], ['email', 'email'], - ['image', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024*2] + ['file', 'file', 'skipOnEmpty' => false, 'checkExtensionByMimeType'=>false,'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024*2] ]; } @@ -142,4 +143,27 @@ 'gere' => Yii::t('app', 'Gere'), ]; } + + + public function upload($file) + { + /** + * @var \yii\web\UploadedFile $file; + */ + $this->file = $file; + if (!empty($file)) { + if (!file_exists(\Yii::getAlias('@storage/customers/'))) { + FileHelper::createDirectory(\Yii::getAlias('@storage/customers/')); + } + + if ($file->saveAs(\Yii::getAlias('@storage/customers/') . $file->baseName.'_'.Yii::$app->security->generateRandomString(5).'.'.$file->extension)) { + $this->image = $file->baseName.'_'.Yii::$app->security->generateRandomString(5).'.'.$file->extension; + $this->file->name = $file->baseName.'_'.Yii::$app->security->generateRandomString(5).'.'.$file->extension;; + return true; + } + return false; + + } + return true; + } } diff --git a/frontend/assets/AppAsset.php b/frontend/assets/AppAsset.php index 714245c..ade81cf 100755 --- a/frontend/assets/AppAsset.php +++ b/frontend/assets/AppAsset.php @@ -16,6 +16,7 @@ ]; public $js = [ 'js/script.js', + 'js/jquery-ui.min.js' ]; public $depends = [ 'yii\web\YiiAsset', diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php index 502ed4f..abcc9a9 100755 --- a/frontend/controllers/SiteController.php +++ b/frontend/controllers/SiteController.php @@ -2,6 +2,7 @@ namespace frontend\controllers; use artbox\core\models\Feedback; + use common\models\Customer; use common\models\Settings; use common\models\speaker\Speaker; use Yii; @@ -10,7 +11,8 @@ use yii\web\BadRequestHttpException; use yii\web\Controller; use yii\web\Response; - + use yii\web\UploadedFile; + /** * Site controller */ @@ -149,5 +151,18 @@ } } - + public function actionRegister() + { + $model = new Customer(); + if ($model->load(\Yii::$app->request->post())){ + + if ($model->upload(UploadedFile::getInstance($model, 'file')) and $model->save()){ + \Yii::$app->session->setFlash('success', \Yii::t('app', 'Дякуемо за реєстрацію. Підтвердження участі буде відправлено на вказаний email')); + return $this->redirect(['site/index']); + } + } + return $this->render('signup', [ + 'model' => $model + ]); + } } diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php index faffa52..a52965b 100755 --- a/frontend/views/layouts/main.php +++ b/frontend/views/layouts/main.php @@ -65,6 +65,14 @@ ] ); $module = \Yii::$app->getModule('feedback'); + + if (\Yii::$app->session->hasFlash('success')) { + $message = \Yii::$app->session->getFlash('success'); + $js = <<registerJs($js, View::POS_READY); + } ?> beginPage() ?> diff --git a/frontend/views/site/signup.php b/frontend/views/site/signup.php index de9dad6..03f8ebd 100755 --- a/frontend/views/site/signup.php +++ b/frontend/views/site/signup.php @@ -2,34 +2,140 @@ /* @var $this yii\web\View */ /* @var $form yii\bootstrap\ActiveForm */ -/* @var $model \frontend\models\SignupForm */ +/* @var $model \common\models\Customer */ use yii\helpers\Html; -use yii\bootstrap\ActiveForm; + use yii\web\View; + use yii\widgets\ActiveForm; +use common\models\Customer; $this->title = 'Signup'; $this->params['breadcrumbs'][] = $this->title; +$js = <<registerJs($js, View::POS_LOAD) ?> -