/** * @return string */ public function actionCheckout() { $this->view->title = \Yii::t('skeeks/shop/app', 'Checkout') . ' | ' . \Yii::t('skeeks/shop/app', 'Shop'); $v3toysOrder = V3toysOrder::createCurrent(); $v3toysOrder->loadDefaultValues(); $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { if ($v3toysOrder->load(\Yii::$app->request->post()) && $v3toysOrder->save()) { foreach (\Yii::$app->shop->shopFuser->shopBaskets as $shopBasket) { $shopBasket->delete(); } try { \Yii::$app->mailer->view->theme->pathMap['@app/mail'][] = '@v3toys/skeeks/mail'; \Yii::$app->mailer->compose('create-order', ['model' => $v3toysOrder])->setFrom([\Yii::$app->cms->adminEmail => \Yii::$app->cms->appName . ''])->setTo($v3toysOrder->email)->setSubject(\Yii::$app->cms->appName . ': новый заказ #' . $v3toysOrder->id)->send(); if (\Yii::$app->v3toysSettings->notifyEmails) { foreach (\Yii::$app->v3toysSettings->notifyEmails as $email) { \Yii::$app->mailer->view->theme->pathMap['@app/mail'][] = '@v3toys/skeeks/mail'; \Yii::$app->mailer->compose('create-order', ['model' => $v3toysOrder])->setFrom([\Yii::$app->cms->adminEmail => \Yii::$app->cms->appName . ''])->setTo($email)->setSubject(\Yii::$app->cms->appName . ': новый заказ #' . $v3toysOrder->id)->send(); } } } catch (\Exception $e) { \Yii::error('Email submit error: ' . $e->getMessage()); } $rr->message = 'Заказ успешно создан'; $rr->success = true; $rr->redirect = Url::to(['/v3toys/cart/finish', 'key' => $v3toysOrder->key]); } else { $rr->message = 'Проверьте правильность заполнения полей'; $rr->success = false; } return $rr; } return $this->render($this->action->id, ['model' => $v3toysOrder]); }
public function actionCheckTest() { $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { if (\Yii::$app->request->post('className')) { $className = \Yii::$app->request->post('className'); if (!class_exists($className)) { $rr->message = \Yii::t('app', 'Test is not found'); return (array) $rr; } if (!is_subclass_of($className, CheckComponent::className())) { $rr->message = \Yii::t('app', 'Incorrect test'); return (array) $rr; } /** * @var $checkTest CheckComponent */ try { $checkTest = new $className(); if ($lastValue = \Yii::$app->request->post('lastValue')) { $checkTest->lastValue = $lastValue; } $checkTest->run(); $rr->success = true; $rr->data = (array) $checkTest; } catch (\Exception $e) { $rr->message = \Yii::t('app', 'Test is not done') . ': ' . $e->getMessage(); } } } return (array) $rr; }
public function actionViewFileEdit() { $rootViewFile = \Yii::$app->request->get('root-file'); $model = new ViewFileEditModel(['rootViewFile' => $rootViewFile]); $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { if ($model->load(\Yii::$app->request->post())) { if (!$model->saveFile()) { $rr->success = false; $rr->message = "Не удалось сохранить файл."; } $rr->message = "Сохранено"; $rr->success = true; } return $rr; } return $this->render($this->action->id, ['model' => $model]); }
public function actionBackup() { $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { try { ob_start(); \Yii::$app->dbDump->dumpRun(); $result = ob_get_clean(); $rr->success = true; $rr->message = \Yii::t('app', "A copy created successfully"); $rr->data = ['result' => $result]; } catch (\Exception $e) { $rr->success = false; $rr->message = $e->getMessage(); } return $rr; } return $rr; }
/** * @return RequestResponse */ public function actionFormSubmit() { $rr = new RequestResponse(); $v3toysMessage = new V3toysMessage(); $v3toysMessage->loadDefaultValues(); try { if ($rr->isRequestAjaxPost()) { if ($elementId = \Yii::$app->request->post('element_id')) { $v3toysMessage->addProduct($elementId); } if ($v3toysMessage->load(\Yii::$app->request->post()) && $v3toysMessage->save()) { $rr->success = true; $rr->message = "Ожидайте звонка"; } } } catch (\Exception $e) { $rr->success = false; $rr->message = $e->getMessage(); } return $rr; }
public function actionIndex() { $clearDirs = [['label' => 'common ' . \Yii::t('app', 'temporary files'), 'dir' => new Dir(\Yii::getAlias('@common/runtime'), false)], ['label' => 'console ' . \Yii::t('app', 'temporary files'), 'dir' => new Dir(\Yii::getAlias('@console/runtime'), false)], ['label' => 'runtime (' . \Yii::t('app', 'current site') . ')', 'dir' => new Dir(\Yii::getAlias('@runtime'), false)], ['label' => \Yii::t('app', 'Cache files') . ' (' . \Yii::t('app', 'current site') . ')', 'dir' => new Dir(\Yii::getAlias('@runtime/cache'), false)], ['label' => \Yii::t('app', 'Files debug information') . ' (' . \Yii::t('app', 'current site') . ')', 'dir' => new Dir(\Yii::getAlias('@runtime/debug'), false)], ['label' => \Yii::t('app', 'Log files') . ' (' . \Yii::t('app', 'current site') . ')', 'dir' => new Dir(\Yii::getAlias('@runtime/logs'), false)]]; $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { foreach ($clearDirs as $data) { $dir = ArrayHelper::getValue($data, 'dir'); if ($dir instanceof Dir) { if ($dir->isExist()) { $dir->clear(); } } } \Yii::$app->db->getSchema()->refresh(); \Yii::$app->cache->flush(); \Yii::$app->cms->generateModulesConfigFile(); $rr->success = true; $rr->message = \Yii::t('app', 'Cache cleared'); return $rr; } return $this->render('index', ['clearDirs' => $clearDirs]); }
/** * @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); }
/** * Создание заказа * @return array|\yii\web\Response */ public function actionCreateOrder() { $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { try { $fuser = \Yii::$app->shop->shopFuser; if (!$fuser->shopBaskets) { throw new Exception(\skeeks\cms\shop\Module::t('app', 'Your basket is empty')); } if ($fuser->load(\Yii::$app->request->post()) && $fuser->save()) { $rr->success = true; $rr->message = ""; $fuser->scenario = ShopFuser::SCENARIO_CREATE_ORDER; if ($fuser->validate()) { $order = ShopOrder::createOrderByFuser($fuser); if (!$order->isNewRecord) { $rr->message = \skeeks\cms\shop\Module::t('app', 'The order #{order_id} created successfully', ['order_id' => $order->id]); $rr->success = true; $rr->redirect = Url::to(['/shop/order/view', 'id' => $order->id]); $rr->data = ['order' => $order]; } else { throw new Exception(\skeeks\cms\shop\Module::t('app', 'Incorrect data of the new order') . ": " . array_shift($order->getFirstErrors())); } } else { throw new Exception(\skeeks\cms\shop\Module::t('app', 'Not enogh data for ordering') . ": " . array_shift($fuser->getFirstErrors())); } } else { throw new Exception(\skeeks\cms\shop\Module::t('app', 'Not enogh data for ordering') . ": " . array_shift($fuser->getFirstErrors())); } } catch (Exception $e) { $rr->message = $e->getMessage(); $rr->success = false; } $rr->data = \Yii::$app->shop->shopFuser->toArray([], \Yii::$app->shop->shopFuser->extraFields()); return (array) $rr; } else { return $this->goBack(); } }
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; }
/** * @return array */ public function actionUpdateOrderAddProduct() { $rr = new RequestResponse(); if ($this->model) { $model = $this->model; } if ($rr->isRequestAjaxPost()) { $product_id = \Yii::$app->request->post('product_id'); $quantity = \Yii::$app->request->post('quantity'); /** * @var ShopProduct $product */ $product = ShopProduct::find()->where(['id' => $product_id])->one(); if (!$product) { $rr->message = \Yii::t('skeeks/shop/app', 'This product is not found, it may be removed.'); return (array) $rr; } $shopBasket = ShopBasket::find()->where(['order_id' => $model->id, 'product_id' => $product_id, 'fuser_id' => null])->one(); if (!$shopBasket) { $shopBasket = new ShopBasket(['order_id' => $model->id, 'product_id' => $product->id, 'quantity' => 0]); } $shopBasket->quantity = $shopBasket->quantity + $quantity; if (!$shopBasket->recalculate()->save()) { $rr->success = false; $rr->message = \Yii::t('skeeks/shop/app', 'Failed to add item to cart'); } else { $rr->success = true; $rr->message = \Yii::t('skeeks/shop/app', 'Item added to cart'); } $rr->data = $model->toArray([], $model->extraFields()); return (array) $rr; } else { return $this->goBack(); } }
/** * Восстановлеине пароля * @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]); }
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; }
/** * Deletes an existing Game model. * If deletion is successful, the browser will be redirected to the 'index' page. * @return mixed */ public function actionDelete() { $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { try { if ($this->model->delete()) { $rr->message = \Yii::t('app', 'Record deleted successfully'); $rr->success = true; } else { $rr->message = \Yii::t('app', 'Record deleted unsuccessfully'); $rr->success = false; } } catch (\Exception $e) { $rr->message = $e->getMessage(); $rr->success = false; } return (array) $rr; } }
/** * Deletes an existing Game model. * If deletion is successful, the browser will be redirected to the 'index' page. * @return mixed */ public function actionDelete() { $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { try { $model = $this->model; $id = $model->name; $model = $this->findModel($id); if (!in_array($model->item->name, CmsManager::protectedPermissions())) { if (\Yii::$app->getAuthManager()->remove($model->item)) { $rr->message = \Yii::t('app', 'Record deleted successfully'); $rr->success = true; } else { $rr->message = \Yii::t('app', 'Record deleted unsuccessfully'); $rr->success = false; } } else { $rr->message = \Yii::t('app', 'This entry can not be deleted!'); $rr->success = false; } } catch (\Exception $e) { $rr->message = $e->getMessage(); $rr->success = false; } return (array) $rr; } }
public function actionRemove() { $component = $this->_component; $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { if (\Yii::$app->request->post('do') == 'all') { if ($settings = \skeeks\cms\models\CmsComponentSettings::baseQuery($component)->all()) { /** * @var $setting CmsComponentSettings */ foreach ($settings as $setting) { //TODO: добавить отладочную информацию. if ($setting->delete()) { } } $component->invalidateCache(); $rr->message = 'Настройки успешно удалены'; $rr->success = true; } } else { if (\Yii::$app->request->post('do') == 'default') { if ($settings = \skeeks\cms\models\CmsComponentSettings::fetchByComponentDefault($component)) { $settings->delete(); $component->invalidateCache(); $rr->message = 'Настройки успешно удалены'; $rr->success = true; } } else { if (\Yii::$app->request->post('do') == 'sites') { if ($settings = \skeeks\cms\models\CmsComponentSettings::baseQuerySites($component)->all()) { /** * @var $setting CmsComponentSettings */ foreach ($settings as $setting) { //TODO: добавить отладочную информацию. if ($setting->delete()) { } } $component->invalidateCache(); $rr->message = 'Настройки успешно удалены'; $rr->success = true; } } else { if (\Yii::$app->request->post('do') == 'users') { if ($settings = \skeeks\cms\models\CmsComponentSettings::baseQueryUsers($component)->all()) { /** * @var $setting CmsComponentSettings */ foreach ($settings as $setting) { //TODO: добавить отладочную информацию. if ($setting->delete()) { } } $component->invalidateCache(); $rr->message = 'Настройки успешно удалены'; $rr->success = true; } } else { if (\Yii::$app->request->post('do') == 'site') { $code = \Yii::$app->request->post('code'); $site = CmsSite::find()->where(['code' => $code])->one(); if ($site) { if ($settings = \skeeks\cms\models\CmsComponentSettings::fetchByComponentSite($component, $site)) { $settings->delete(); $component->invalidateCache(); $rr->message = 'Настройки успешно удалены'; $rr->success = true; } } } else { if (\Yii::$app->request->post('do') == 'user') { $id = \Yii::$app->request->post('id'); $user = User::find()->where(['id' => $id])->one(); if ($user) { if ($settings = \skeeks\cms\models\CmsComponentSettings::fetchByComponentUser($component, $user)) { $settings->delete(); $component->invalidateCache(); $rr->message = 'Настройки успешно удалены'; $rr->success = true; } } } else { $rr->message = 'Все настройки удалены'; $rr->success = true; } } } } } } return (array) $rr; } return $this->render($this->action->id, ['component' => $component]); }
/** * Прикрепить к моделе другой файл * @see skeeks\cms\widgets\formInputs\StorageImage * @return RequestResponse */ public function actionLinkToModels() { $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { try { if (!\Yii::$app->request->post('file_id') || !\Yii::$app->request->post('modelId') || !\Yii::$app->request->post('modelClassName') || !\Yii::$app->request->post('modelRelation')) { throw new \yii\base\Exception("Не достаточно входных данных"); } $file = CmsStorageFile::findOne(\Yii::$app->request->post('file_id')); if (!$file) { throw new \yii\base\Exception("Возможно файл уже удален или не загрузился"); } if (!is_subclass_of(\Yii::$app->request->post('modelClassName'), ActiveRecord::className())) { throw new \yii\base\Exception("Невозможно привязать файл к этой моделе"); } $className = \Yii::$app->request->post('modelClassName'); /** * @var $model ActiveRecord */ $model = $className::findOne(\Yii::$app->request->post('modelId')); if (!$model) { throw new \yii\base\Exception("Модель к которой необходимо привязать файл не найдена"); } if (!$model->hasProperty(\Yii::$app->request->post('modelRelation'))) { throw new \yii\base\Exception("У модели не найден атрибут привязки к файлам modelRelation: " . \Yii::$app->request->post('modelRelation')); } try { $model->link(\Yii::$app->request->post('modelRelation'), $file); if (!$file->name) { $file->name = $model->name; $file->save(false); } $rr->success = true; $rr->message = ""; } catch (\Exception $e) { $rr->success = false; $rr->message = $e->getMessage(); } } catch (\Exception $e) { $rr->success = false; $rr->message = $e->getMessage(); } } return $rr; }
/** * Импорт деревень * * @return array|RequestResponse */ public function actionImportVillagesSm() { $rr = new RequestResponse(); if ($rr->isRequestAjaxPost()) { $rr->data = ['yes' => 0, 'no' => 0, 'offset' => \Yii::$app->request->post('offset', 0), 'total' => 0, 'nextOffset' => 0]; if (!\Yii::$app->kladr->isReady() || !\Yii::$app->request->post('char')) { $rr->success = false; $rr->message = "Некорректные настройки"; return $rr; } $query = \Yii::$app->kladr->createApiQuery(); $query->ContentName = \Yii::$app->request->post('char'); $query->ContentType = \skeeks\cms\kladr\libs\ObjectType::City; $query->WithParent = 1; $query->offset = \Yii::$app->request->post('offset', 0); $query->typeCode = 4; //только поселки $arResult = \Yii::$app->kladr->createApi()->QueryToArray($query); $rr->data['total'] = count($arResult); if (count($arResult) >= \Yii::$app->kladr->kladrRequestLimit) { $rr->data['nextOffset'] = $rr->data['offset'] + \Yii::$app->kladr->kladrRequestLimit; } if ($arResult) { foreach ($arResult as $locationData) { $parents = (array) ArrayHelper::getValue($locationData, 'parents'); if (!$parents) { $rr->data['no'] = $rr->data['no'] + 1; continue; } $parent = $parents[count($parents) - 1]; if (!$parent) { $rr->data['no'] = $rr->data['no'] + 1; continue; } $parentId = (string) ArrayHelper::getValue($parent, 'id'); $parent = KladrLocation::findOne(['kladr_api_id' => $parentId]); if ($this->_writeLocation($locationData, $parent, KladrLocation::TYPE_VILLAGE_SMALL)) { $rr->data['yes'] = $rr->data['yes'] + 1; } else { $rr->data['no'] = $rr->data['no'] + 1; } } } $rr->success = true; $rr->message = "Импорт завершен"; return $rr; } return (array) $rr; }