%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/space/models/
Upload File :
Create Path :
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;
    }

}

Zerion Mini Shell 1.0