%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/legal/controllers/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/legal/controllers/AdminController.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\legal\controllers;
use humhub\modules\admin\components\Controller;
use humhub\modules\content\models\ContentContainerSetting;
use humhub\modules\legal\models\ConfigureForm;
use humhub\modules\legal\models\Page;
use humhub\modules\legal\models\RegistrationChecks;
use humhub\modules\legal\Module;
use humhub\modules\user\models\User;
use Yii;
use yii\web\HttpException;
/**
* Class AdminController
*
* @property Module $module
* @package humhub\modules\legal\controllers
*/
class AdminController extends Controller
{
public function actionIndex()
{
$model = new ConfigureForm();
$model->loadSettings();
if ($model->load(Yii::$app->request->post()) && $model->saveSettings()) {
$this->view->saved();
return $this->redirect(['index']);
}
return $this->render('index', ['model' => $model, 'module' => $this->module]);
}
public function actionPage($pageKey)
{
$pages = $this->getPages($pageKey);
$saved = false;
foreach ($pages as $page) {
/** @var Page $page */
if ($page->load(Yii::$app->request->post('Page'), $page->language)) {
$page->save();
$saved = true;
}
}
if ($saved) {
$this->view->saved();
return $this->redirect(['page', 'pageKey' => $page->page_key, 'language' => $page->language]);
}
$languages = [];
foreach (Yii::$app->i18n->getAllowedLanguages() as $lKey => $lTitle) {
$languages[$lKey] = (($pages[$lKey]->isNewRecord) ? '' : '*') . $lTitle . ' (' . $lKey . ')';
}
$view = 'page';
if ($pageKey == Page::PAGE_KEY_COOKIE_NOTICE) {
$view = 'page_cookies';
}
return $this->render($view, [
'pages' => $pages,
'languages' => $languages,
'defaultLanguage' => $this->module->getDefaultLanguage(),
'pageKey' => $pageKey
]);
}
/**
* @param $key
* @return $this|void|\yii\web\Response
* @throws HttpException
*/
public function actionReset($key)
{
if (!in_array($key, [RegistrationChecks::SETTING_KEY_PRIVACY, RegistrationChecks::SETTING_KEY_TERMS])) {
throw new HttpException(500, 'Invalid key!');
}
$module = $this->module;
$module->settings->delete($key);
ContentContainerSetting::deleteAll(['module_id' => $module->id, 'name' => $key]);
ContentContainerSetting::deleteAll(['module_id' => $module->id, 'name' => $key . 'Time']);
foreach (User::find()->select('contentcontainer_id')->column() as $contentContainerId) {
Yii::$app->cache->delete('settings-' . $module->id . '-' . $contentContainerId);
}
$this->view->success(Yii::t('LegalModule.base', 'Reset successful!'));
return $this->redirect(['index']);
}
/**
* @param $pageKey
* @return Page[]
*/
protected function getPages($pageKey)
{
$pages = [];
foreach (Yii::$app->i18n->getAllowedLanguages() as $langKey => $title) {
$pages[$langKey] = Page::findOne(['page_key' => $pageKey, 'language' => $langKey]);
if ($pages[$langKey] === null) {
$pages[$langKey] = new Page(['page_key' => $pageKey, 'language' => $langKey]);
}
}
return $pages;
}
}