get(SettingServiceInterface::ServiceName); $localFrontendParams = []; if (file_exists(Yii::getAlias("@frontend/config/params-local.php"))){ $localFrontendParams = require Yii::getAlias("@frontend/config/params-local.php"); } $params = ArrayHelper::merge( require Yii::getAlias("@frontend/config/params.php"), $localFrontendParams); $frontendSupportLanguages = $params['supportLanguages']; $timezones = []; foreach (DateTimeZone::listIdentifiers() as $identifier) { $timezones[$identifier] = $identifier; } return [ 'website' => [ "class" => UpdateAction::className(), 'primaryKeyIdentity' => null, 'doUpdate' => function($postData)use($service){ return $service->updateWebsiteSetting($postData); }, "data" => function($updateResultModel)use($service, $frontendSupportLanguages, $timezones){ $model = $updateResultModel === null ? $service->getModel("website") : $updateResultModel; return [ "model" => $model, 'frontendSupportLanguages' => $frontendSupportLanguages, 'timezones' => $timezones, ]; }, 'successRedirect' => ["setting/website"] ], 'custom' => [ 'class' => UpdateAction::className(), 'primaryKeyIdentity' => null, "doUpdate" => function($postData)use($service){ return $service->updateCustomSetting($postData); }, "data" => function($updateResultModel) use($service){ $model = $updateResultModel === null ? $service->getModel("custom") : $updateResultModel; return [ 'settings' => $model, 'model' => $service->newModel(), ]; }, 'successRedirect' => ["setting/custom"] ], "custom-delete" => [ "class" => DeleteAction::className(), "doDelete" => function($id)use($service){ return $service->delete($id); }, ], 'custom-create' => [ "class" => CreateAction::className(), 'doCreate' => function($postData) use($service) { return $service->create($postData, ['type' => Options::TYPE_CUSTOM]); }, "data" => function($createResultModel)use($service){ $model = $createResultModel === null ? $service->newModel(['type'=>Options::TYPE_CUSTOM]) : $createResultModel; return [ 'model' => $model, ]; }, ], 'custom-update' => [ "class" => UpdateAction::className(), 'doUpdate' => function($id, $postData)use($service){ return $service->update($id, $postData); }, "data" => function($id, $updateResultModel)use($service){ $this->layout = false; $model = $updateResultModel === null ? $service->getModel($id) : $updateResultModel; return [ 'model' => $model, ]; }, ], "smtp" => [ "class" => UpdateAction::className(), 'primaryKeyIdentity' => null, "doUpdate" => function($postData)use($service){ return $service->updateSMTPSetting($postData); }, "data" => function($updateResultModel) use($service){ $model = $updateResultModel === null ? $service->getModel("smtp") : $updateResultModel; return [ "model" => $model, ]; }, 'successRedirect' => ['setting/smtp'] ], 'test-smtp' => [ 'class' => DoAction::className(), 'primaryKeyIdentity' => null, 'do' => function($postData) use($service) { return $service->testSMTPSetting($postData); }, ], ]; } }