public function actionIndex()
 {
     $rr = new RequestResponse();
     $classComponent = \Yii::$app->request->get('component');
     $classComponentSettings = (string) \Yii::$app->request->get('settings');
     if ($classComponentSettings) {
         $classComponentSettings = unserialize(StringHelper::base64DecodeUrl($classComponentSettings));
     }
     /**
      * @var $component \skeeks\cms\relatedProperties\PropertyType;
      */
     $component = new $classComponent();
     try {
         $component->attributes = $classComponentSettings;
     } catch (\Exception $e) {
     }
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         return $rr->ajaxValidateForm($component);
     }
     $forSave = "";
     if ($rr->isRequestPjaxPost()) {
         if ($component->load(\Yii::$app->request->post())) {
             \Yii::$app->session->setFlash('success', 'Сохранено');
             $forSave = StringHelper::base64EncodeUrl(serialize($component->attributes));
         } else {
             \Yii::$app->session->setFlash('error', 'Ошибка');
         }
     }
     return $this->render($this->action->id, ["component" => $component, "forSave" => $forSave]);
 }
Exemplo n.º 2
0
 public function run()
 {
     $modelClassName = $this->controller->modelClassName;
     $model = new $modelClassName();
     $scenarios = $model->scenarios();
     if ($scenarios && $this->modelScenario) {
         if (isset($scenarios[$this->modelScenario])) {
             $model->scenario = $this->modelScenario;
         }
     }
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         return $rr->ajaxValidateForm($model);
     }
     if ($rr->isRequestPjaxPost()) {
         if ($model->load(\Yii::$app->request->post()) && $model->save($this->modelValidate)) {
             \Yii::$app->getSession()->setFlash('success', \Yii::t('app', 'Saved'));
             if (\Yii::$app->request->post('submit-btn') == 'apply') {
                 return $this->controller->redirect(UrlHelper::constructCurrent()->setCurrentRef()->enableAdmin()->setRoute($this->controller->modelDefaultAction)->normalizeCurrentRoute()->addData([$this->controller->requestPkParamName => $model->{$this->controller->modelPkAttribute}])->toString());
             } else {
                 return $this->controller->redirect($this->controller->indexUrl);
             }
         } else {
             \Yii::$app->getSession()->setFlash('error', \Yii::t('app', 'Could not save'));
         }
     }
     $this->viewParams = ['model' => $model];
     return parent::run();
 }
Exemplo n.º 3
0
 public function run()
 {
     $model = $this->controller->model;
     $scenarios = $model->scenarios();
     if ($scenarios && $this->modelScenario) {
         if (isset($scenarios[$this->modelScenario])) {
             $model->scenario = $this->modelScenario;
         }
     }
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         return $rr->ajaxValidateForm($model);
     }
     if ($rr->isRequestPjaxPost()) {
         if ($model->load(\Yii::$app->request->post()) && $model->save($this->modelValidate)) {
             \Yii::$app->getSession()->setFlash('success', \Yii::t('app', 'Saved'));
             if (\Yii::$app->request->post('submit-btn') == 'apply') {
             } else {
                 return $this->controller->redirect($this->controller->indexUrl);
             }
             $model->refresh();
         } else {
             \Yii::$app->getSession()->setFlash('error', \Yii::t('app', 'Could not save'));
         }
     }
     $this->viewParams = ['model' => $model];
     return parent::run();
 }
 public function run()
 {
     /**
      * @var $contentElement CmsContentElement
      */
     $contentElement = $this->controller->model;
     $model = ShopProduct::find()->where(['id' => $contentElement->id])->one();
     $productPrices = [];
     if (!$model) {
         $model = new ShopProduct(['id' => $contentElement->id]);
     } else {
         if ($typePrices = ShopTypePrice::find()->where(['!=', 'def', Cms::BOOL_Y])->all()) {
             foreach ($typePrices as $typePrice) {
                 $productPrice = ShopProductPrice::find()->where(['product_id' => $model->id, 'type_price_id' => $typePrice->id])->one();
                 if (!$productPrice) {
                     $productPrice = new ShopProductPrice(['product_id' => $model->id, 'type_price_id' => $typePrice->id]);
                 }
                 if ($post = \Yii::$app->request->post()) {
                     $data = ArrayHelper::getValue($post, 'prices.' . $typePrice->id);
                     $productPrice->load($data, "");
                 }
                 $productPrices[] = $productPrice;
             }
         }
     }
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         return $rr->ajaxValidateForm($model);
     }
     if ($rr->isRequestPjaxPost()) {
         /**
          * @var $productPrice ShopProductPrice
          */
         foreach ($productPrices as $productPrice) {
             if ($productPrice->save()) {
             } else {
                 \Yii::$app->getSession()->setFlash('error', \skeeks\cms\shop\Module::t('app', 'Check the correctness of the prices'));
             }
         }
         if ($model->load(\Yii::$app->request->post()) && $model->save()) {
             \Yii::$app->getSession()->setFlash('success', 'Saved');
             if (\Yii::$app->request->post('submit-btn') == 'apply') {
             } else {
                 return $this->controller->redirect($this->controller->indexUrl);
             }
             $model->refresh();
         } else {
             \Yii::$app->getSession()->setFlash('error', \skeeks\cms\shop\Module::t('app', 'Failed to save'));
         }
     }
     $this->viewParams = ['model' => $model, 'productPrices' => $productPrices];
     return parent::run();
 }
Exemplo n.º 5
0
 /**
  * Updates an existing Game model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionChangePassword()
 {
     $model = $this->model;
     $modelForm = new PasswordChangeForm(['user' => $model]);
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         return $rr->ajaxValidateForm($modelForm);
     }
     if ($modelForm->load(\Yii::$app->request->post()) && $modelForm->changePassword()) {
         \Yii::$app->getSession()->setFlash('success', 'Успешно сохранено');
     } else {
         if (\Yii::$app->request->isPost) {
             \Yii::$app->getSession()->setFlash('error', 'Не удалось изменить пароль');
         }
     }
     return $this->render($this->action->id, ['model' => $modelForm]);
 }
Exemplo n.º 6
0
 /**
  * Валидация данных с формы
  * @return array
  */
 public function actionShopPersonTypeValidate()
 {
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         if (\Yii::$app->request->post('shop_person_type_id')) {
             $shop_person_type_id = \Yii::$app->request->post('shop_person_type_id');
             /**
              * @var $shopPersonType ShopPersonType
              */
             $shopPersonType = ShopPersonType::find()->active()->andWhere(['id' => $shop_person_type_id])->one();
             if (!$shopPersonType) {
                 $rr->message = \skeeks\cms\shop\Module::t('app', 'This payer is disabled or deleted. Refresh the page.');
                 $rr->success = false;
                 return $rr;
             }
             $modelHasRelatedProperties = $shopPersonType->createModelShopBuyer();
             if (method_exists($modelHasRelatedProperties, "createPropertiesValidateModel")) {
                 $model = $modelHasRelatedProperties->createPropertiesValidateModel();
             } else {
                 $model = $modelHasRelatedProperties->getRelatedPropertiesModel();
             }
             return $rr->ajaxValidateForm($model);
         }
     }
 }
Exemplo n.º 7
0
 /**
  * @return RequestResponse
  */
 public function actionFormValidate()
 {
     $v3toysMessage = new V3toysMessage();
     $v3toysMessage->loadDefaultValues();
     if ($elementId = \Yii::$app->request->post('element_id')) {
         $v3toysMessage->addProduct($elementId);
     }
     $rr = new RequestResponse();
     return $rr->ajaxValidateForm($v3toysMessage);
 }
 public function actionSubmit()
 {
     $rr = new RequestResponse();
     $model = new Comments2Message();
     if ($rr->isRequestOnValidateAjaxForm()) {
         return $rr->ajaxValidateForm($model);
     }
     if ($rr->isRequestAjaxPost()) {
         $model->scenario = Comments2Message::SCENARIO_SITE_INSERT;
         $model->page_url = \Yii::$app->request->referrer;
         if ($model->load(\Yii::$app->request->post())) {
             //Проверка на максимальное количество комментариев к одному посту от одного пользователя.
             $messagesFind = Comments2Message::find();
             if (\Yii::$app->user->isGuest) {
                 $messagesFind->andWhere(['ip' => Request::getRealUserIp()]);
             } else {
                 $messagesFind->andWhere(['created_by' => \Yii::$app->user->identity->id]);
             }
             $messagesFind2 = clone $messagesFind;
             $messagesFind->andWhere(['status' => Comments2Message::STATUS_ALLOWED])->andWhere(['element_id' => $model->element_id]);
             if (\Yii::$app->comments2->maxCountMessagesForUser != 0) {
                 if ($messagesFind->count() >= \Yii::$app->comments2->maxCountMessagesForUser) {
                     $rr->success = false;
                     $rr->message = \skeeks\cms\comments2\Module::t('app', 'You have already added a comment on this post before.');
                     return $rr;
                 }
             }
             //Проверка частоты добавления комментариев
             if (\Yii::$app->comments2->securityEnabledRateLimit == Cms::BOOL_Y) {
                 $messagesFind2 = Comments2Message::find();
                 if (\Yii::$app->user->isGuest) {
                     $messagesFind2->andWhere(['ip' => Request::getRealUserIp()]);
                 } else {
                     $messagesFind2->andWhere(['created_by' => \Yii::$app->user->identity->id]);
                 }
                 $lastTime = \Yii::$app->formatter->asTimestamp(time()) - (int) \Yii::$app->comments2->securityRateLimitTime;
                 $messagesFind2->andWhere(['>=', 'created_at', $lastTime]);
                 //print_r($messagesFind2->createCommand()->rawSql);die;
                 if ($messagesFind2->count() >= \Yii::$app->comments2->securityRateLimitRequests) {
                     $rr->success = false;
                     $rr->message = \skeeks\cms\comments2\Module::t('app', 'You too often add comments.');
                     return $rr;
                 }
             }
             if ($model->save()) {
                 $rr->success = true;
                 if (\Yii::$app->comments2->enabledBeforeApproval == Cms::BOOL_Y) {
                     $rr->message = \Yii::$app->comments2->messageSuccessBeforeApproval;
                 } else {
                     $rr->message = \Yii::$app->comments2->messageSuccess;
                     //Отключена предмодерация, сразу публикуем
                     $model->status = Comments2Message::STATUS_ALLOWED;
                     $model->scenario = ActiveRecord::SCENARIO_DEFAULT;
                     $model->save();
                 }
                 $model->notifyCreate();
             } else {
                 $rr->success = false;
                 $rr->message = \skeeks\cms\comments2\Module::t('app', 'You comments not added') . ": " . implode(",", $model->getFirstErrors());
             }
         } else {
             $rr->success = false;
             $rr->message = \skeeks\cms\comments2\Module::t('app', 'You comments not added') . ": " . implode(",", $model->getFirstErrors());
         }
     }
     return $rr;
 }
Exemplo n.º 9
0
 /**
  * @return array
  */
 public function actionPayValidate()
 {
     $rr = new RequestResponse();
     return $rr->ajaxValidateForm($this->model);
 }
 /**
  * Валидация данных с формы
  * @return array
  */
 public function actionValidate()
 {
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         if (\Yii::$app->request->post('sx-model') && \Yii::$app->request->post('sx-model-value')) {
             $modelClass = \Yii::$app->request->post('sx-model');
             $modelValue = \Yii::$app->request->post('sx-model-value');
             /**
              * @var $modelForm Form2Form
              */
             $modelForm = $modelClass::find()->where(['id' => $modelValue])->one();
             $modelHasRelatedProperties = $modelForm->createModelFormSend();
             if (method_exists($modelHasRelatedProperties, "createPropertiesValidateModel")) {
                 $model = $modelHasRelatedProperties->createPropertiesValidateModel();
             } else {
                 $model = $modelHasRelatedProperties->getRelatedPropertiesModel();
             }
             return $rr->ajaxValidateForm($model);
         }
     }
 }
Exemplo n.º 11
0
 /**
  * @return string
  */
 public function actionCheckoutValidate()
 {
     $rr = new RequestResponse();
     $v3toysOrder = V3toysOrder::createCurrent();
     return $rr->ajaxValidateForm($v3toysOrder);
 }
Exemplo n.º 12
0
 /**
  * Восстановлеине пароля
  * @return string|Response
  */
 public function actionRegisterByEmail()
 {
     if (!\Yii::$app->user->isGuest) {
         return $this->goHome();
     }
     $rr = new RequestResponse();
     $model = new SignupForm();
     $model->scenario = SignupForm::SCENARION_ONLYEMAIL;
     //Запрос на валидацию ajax формы
     if ($rr->isRequestOnValidateAjaxForm()) {
         return $rr->ajaxValidateForm($model);
     }
     //Запрос ajax post
     if ($rr->isRequestAjaxPost()) {
         if ($model->load(\Yii::$app->request->post()) && ($registeredUser = $model->signup())) {
             $rr->success = true;
             $rr->message = 'Для дальнейших действий, проверьте вашу почту.';
             return $rr;
         } else {
             $rr->message = 'Не удалось зарегистрироваться';
         }
         return (array) $rr;
     }
     return $this->render('register', ['model' => $model]);
 }
Exemplo n.º 13
0
 public function actionAuth()
 {
     $this->view->title = \Yii::t('app', 'Authorization');
     $this->layout = '@skeeks/cms/modules/admin/views/layouts/unauthorized.php';
     $goUrl = "";
     $loginModel = new LoginFormUsernameOrEmail();
     $passwordResetModel = new PasswordResetRequestFormEmailOrLogin();
     if ($ref = UrlHelper::getCurrent()->getRef()) {
         $goUrl = $ref;
     }
     $rr = new RequestResponse();
     if (!\Yii::$app->user->isGuest) {
         return $goUrl ? $this->redirect($goUrl) : $this->goHome();
     }
     //Авторизация
     if (\Yii::$app->request->post('do') == 'login') {
         if ($rr->isRequestOnValidateAjaxForm()) {
             return $rr->ajaxValidateForm($loginModel);
         }
         if ($rr->isRequestAjaxPost()) {
             if ($loginModel->load(\Yii::$app->request->post()) && $loginModel->login()) {
                 if (!$goUrl) {
                     $goUrl = Yii::$app->getUser()->getReturnUrl($defaultUrl);
                 }
                 $rr->redirect = $goUrl;
                 $rr->success = true;
                 $rr->message = "";
                 $rr->message = "";
                 return (array) $rr;
             } else {
                 $rr->success = false;
                 $rr->message = \Yii::t('app', "Unsuccessful attempt authorization");
                 return (array) $rr;
             }
         }
     }
     //Запрос на сброс пароля
     if (\Yii::$app->request->post('do') == 'password-reset') {
         if ($rr->isRequestOnValidateAjaxForm()) {
             return $rr->ajaxValidateForm($passwordResetModel);
         }
         if ($rr->isRequestAjaxPost()) {
             if ($passwordResetModel->load(\Yii::$app->request->post()) && $passwordResetModel->sendEmail()) {
                 $rr->success = true;
                 $rr->message = \Yii::t('app', "Check your email address");
                 return (array) $rr;
             } else {
                 $rr->success = false;
                 $rr->message = \Yii::t('app', "Failed send email");
                 return (array) $rr;
             }
         }
     }
     return $this->render('auth', ['loginModel' => $loginModel, 'passwordResetModel' => $passwordResetModel, 'goUrl' => $goUrl]);
 }
 public function actionSubmit()
 {
     $rr = new RequestResponse();
     $model = new Reviews2Message();
     if ($rr->isRequestOnValidateAjaxForm()) {
         return $rr->ajaxValidateForm($model);
     }
     if ($rr->isRequestAjaxPost()) {
         $model->scenario = Reviews2Message::SCENARIO_SITE_INSERT;
         $model->page_url = \Yii::$app->request->referrer;
         if ($model->load(\Yii::$app->request->post())) {
             //Проверка на максимальное количество отзывов к одному посту от одного пользователя.
             $messagesFind = Reviews2Message::find();
             if (\Yii::$app->user->isGuest) {
                 $messagesFind->andWhere(['ip' => \Yii::$app->request->userIP])->andWhere(['or', ['created_by' => null], ['created_by' => '']]);
             } else {
                 $messagesFind->andWhere(['created_by' => \Yii::$app->user->identity->id]);
             }
             $messagesFind2 = clone $messagesFind;
             $messagesFind->andWhere(['status' => Reviews2Message::STATUS_ALLOWED])->andWhere(['element_id' => $model->element_id]);
             if (\Yii::$app->reviews2->maxCountMessagesForUser != 0) {
                 if ($messagesFind->count() >= \Yii::$app->reviews2->maxCountMessagesForUser) {
                     $rr->success = false;
                     $rr->message = \Yii::t('skeeks/reviews2', "You have already added a review for this post earlier.");
                     return $rr;
                 }
             }
             //Проверка частоты добавления отзывов
             if (\Yii::$app->reviews2->securityEnabledRateLimit == Cms::BOOL_Y) {
                 $messagesFind2 = Reviews2Message::find();
                 if (\Yii::$app->user->isGuest) {
                     $messagesFind2->andWhere(['ip' => \Yii::$app->request->userIP]);
                 } else {
                     $messagesFind2->andWhere(['created_by' => \Yii::$app->user->identity->id]);
                 }
                 $lastTime = \Yii::$app->formatter->asTimestamp(time()) - (int) \Yii::$app->reviews2->securityRateLimitTime;
                 $messagesFind2->andWhere(['>=', 'created_at', $lastTime]);
                 //print_r($messagesFind2->createCommand()->rawSql);die;
                 if ($messagesFind2->count() >= \Yii::$app->reviews2->securityRateLimitRequests) {
                     $rr->success = false;
                     $rr->message = \Yii::t('skeeks/reviews2', "You too often add reviews.");
                     return $rr;
                 }
             }
             if ($model->save()) {
                 $rr->success = true;
                 if (\Yii::$app->reviews2->enabledBeforeApproval == Cms::BOOL_Y) {
                     $rr->message = \Yii::$app->reviews2->messageSuccessBeforeApproval;
                 } else {
                     $rr->message = \Yii::$app->reviews2->messageSuccess;
                     //Отключена предмодерация, сразу публикуем
                     $model->status = Reviews2Message::STATUS_ALLOWED;
                     $model->save();
                 }
                 $model->notifyCreate();
             } else {
                 $rr->success = false;
                 $rr->message = \Yii::t('skeeks/reviews2', "Review not added") . ": " . implode(",", $model->getFirstErrors());
             }
         } else {
             $rr->success = false;
             $rr->message = \Yii::t('skeeks/reviews2', "Review not added") . ": " . implode(",", $model->getFirstErrors());
         }
     }
     return $rr;
 }
Exemplo n.º 15
0
 /**
  * @param $username
  * @return string
  */
 public function actionEditInfo()
 {
     $model = $this->user;
     $rr = new RequestResponse();
     if ($rr->isRequestOnValidateAjaxForm()) {
         return $rr->ajaxValidateForm($model);
     }
     if ($rr->isRequestAjaxPost()) {
         if ($model->load(\Yii::$app->request->post()) && $model->save()) {
             $rr->success = true;
             $rr->message = 'Данные успешно сохранены';
         } else {
             $rr->message = 'Не получилось сохранить данные';
         }
         return $rr;
     }
     return $this->render($this->action->id);
 }
 public function actionUser()
 {
     $component = $this->_component;
     $user_id = \Yii::$app->request->get('user_id');
     if (!$user_id) {
         throw new UserException("Не передан параметр user_id");
     }
     $user = User::findOne($user_id);
     if (!$user) {
         throw new UserException("Не найден пользователь");
     }
     $component->loadSettingsByUser($user);
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && \Yii::$app->request->isPost && !\Yii::$app->request->isPjax) {
         return $rr->ajaxValidateForm($component);
     }
     if (\Yii::$app->request->isPost && \Yii::$app->request->isPjax) {
         if ($component->load(\Yii::$app->request->post()) && $component->validate()) {
             if ($component->saveDefaultSettingsByUserId($user->id)) {
                 \Yii::$app->getSession()->setFlash('success', 'Успешно сохранено');
             } else {
                 \Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
             }
         } else {
             \Yii::$app->getSession()->setFlash('error', 'Не удалось сохранить');
         }
     }
     return $this->render($this->action->id, ['component' => $component, 'user' => $user]);
 }
Exemplo n.º 17
0
 public function createOrder()
 {
     $cmsUser = null;
     if ($userId = \Yii::$app->request->get('cmsUserId')) {
         $cmsUser = CmsUser::findOne($userId);
     }
     if ($cmsUser) {
         /**
          * @var $shopFuser ShopFuser
          */
         $shopFuser = ShopFuser::getInstanceByUser($cmsUser);
         $model = $shopFuser;
         $rr = new RequestResponse();
         if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
             $model->scenario = ShopFuser::SCENARIO_CREATE_ORDER;
             return $rr->ajaxValidateForm($model);
         }
         if ($rr->isRequestPjaxPost()) {
             try {
                 if ($model->load(\Yii::$app->request->post()) && $model->save()) {
                     $model->scenario = ShopFuser::SCENARIO_CREATE_ORDER;
                     if ($model->validate()) {
                         $order = ShopOrder::createOrderByFuser($model);
                         if (!$order->isNewRecord) {
                             \Yii::$app->getSession()->setFlash('success', \Yii::t('skeeks/shop/app', 'The order #{order_id} created successfully', ['order_id' => $order->id]));
                             if (\Yii::$app->request->post('submit-btn') == 'apply') {
                                 return $this->redirect(UrlHelper::constructCurrent()->setCurrentRef()->enableAdmin()->setRoute($this->modelDefaultAction)->normalizeCurrentRoute()->addData([$this->requestPkParamName => $order->id])->toString());
                             } else {
                                 return $this->redirect($this->indexUrl);
                             }
                         } else {
                             throw new Exception(\Yii::t('skeeks/shop/app', 'Incorrect data of the new order') . ": " . array_shift($order->getFirstErrors()));
                         }
                     } else {
                         throw new Exception(\Yii::t('skeeks/shop/app', 'Not enogh data for ordering') . ": " . array_shift($model->getFirstErrors()));
                     }
                 } else {
                     throw new Exception(\Yii::t('skeeks/shop/app', 'Could not save'));
                 }
             } catch (\Exception $e) {
                 \Yii::$app->getSession()->setFlash('error', $e->getMessage());
             }
         }
         return $this->render($this->action->id, ['cmsUser' => $cmsUser, 'shopFuser' => $model]);
     } else {
         return $this->render($this->action->id . "-select-user");
     }
 }