%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/space/models/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/space/models/AdvancedSettings.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2022 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\space\models;
use humhub\modules\space\components\UrlValidator;
use humhub\modules\space\Module;
use Yii;
use yii\base\Model;
/**
* Model class for Advanced Settings of a Space. These settings are mainly stored via the
* Settings Manager as the Space Model.
*
* @since 1.13
* @author Luke
*/
class AdvancedSettings extends Model
{
/**
* @var Space
*/
public $space;
/**
* @var string|null
*/
public $url = null;
/**
* @var string|null
*/
public $indexUrl = null;
/**
* @var string|null
*/
public $indexGuestUrl = null;
/**
* @var bool
*/
public $hideMembers = false;
/**
* @var bool
*/
public $hideActivities = false;
/**
* @var bool
*/
public $hideAbout = false;
/**
* @var bool
*/
public $hideFollowers = false;
/**
* @inheritdoc
*/
public function rules()
{
return [
[['indexUrl', 'indexGuestUrl'], 'string'],
[['hideMembers', 'hideActivities', 'hideAbout', 'hideFollowers'], 'boolean'],
['url', UrlValidator::class, 'space' => $this->space]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'url' => 'URL',
'indexUrl' => Yii::t('SpaceModule.base', 'Homepage'),
'indexGuestUrl' => Yii::t('SpaceModule.base', 'Homepage (Guests)'),
'hideMembers' => Yii::t('SpaceModule.base', 'Hide Members'),
'hideActivities' => Yii::t('SpaceModule.base', 'Hide Activity Sidebar Widget'),
'hideAbout' => Yii::t('SpaceModule.base', 'Hide About Page'),
'hideFollowers' => Yii::t('SpaceModule.base', 'Hide Followers'),
];
}
public function loadBySettings()
{
/** @var Module $module */
$module = Yii::$app->getModule('space');
$settings = $this->space->getSettings();
$this->url = $this->space->url;
$this->indexUrl = $settings->get('indexUrl', null);
$this->indexGuestUrl = $settings->get('indexGuestUrl', null);
$this->hideMembers = $settings->get('hideMembers', $this->hideMembers);
$this->hideAbout = $settings->get('hideAbout', $module->hideAboutPage);
$this->hideActivities = $settings->get('hideActivities', $this->hideActivities);
$this->hideFollowers = $settings->get('hideFollowers', $this->hideFollowers);
}
/**
* @inheritdoc
*/
public function save(): bool
{
if (!$this->validate()) {
return false;
}
$settings = $this->space->getSettings();
$this->space->url = $this->url;
$this->space->save();
if (!empty($this->indexUrl)) {
$settings->set('indexUrl', $this->indexUrl);
} else {
$settings->delete('indexUrl');
}
if (!empty($this->indexGuestUrl)) {
$settings->set('indexGuestUrl', $this->indexGuestUrl);
} else {
$settings->delete('indexGuestUrl');
}
$settings->set('hideMembers', (bool)$this->hideMembers);
$settings->set('hideAbout', (bool)$this->hideAbout);
$settings->set('hideActivities', (bool)$this->hideActivities);
$settings->set('hideFollowers', (bool)$this->hideFollowers);
return true;
}
}