%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/admin/widgets/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/admin/widgets/ModuleStatus.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2021 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\admin\widgets;
use humhub\components\Module;
use humhub\components\OnlineModule;
use humhub\components\Widget;
use Yii;
/**
* ModuleStatus shows a status of the module
*
* @property-read string|null $status
* @property-read string|null $statusTitle
* @property-read string $class
*
* @since 1.11
* @author Luke
*/
class ModuleStatus extends Widget
{
/**
* @var Module
*/
public $module;
/**
* @var string HTML wrapper around the status
*/
public $template = '<div class="card-status {class}">{status}</div>';
/**
* @var string|null Cached status of the module
*/
private $_status;
/**
* @inheritdoc
*/
public function run()
{
return str_replace(['{status}', '{class}'], [$this->statusTitle, $this->class], $this->template);
}
/**
* @return false|string|null
*/
public function getStatus()
{
if ($this->_status !== null) {
return $this->_status;
}
$onlineModule = new OnlineModule(['module' => $this->module]);
if ($onlineModule->isProOnly) {
$this->_status = 'professional';
} else if ($onlineModule->isFeatured) {
$this->_status = 'featured';
} else if (!$onlineModule->isThirdParty) {
$this->_status = 'official';
} else if ($onlineModule->isPartner) {
$this->_status = 'partner';
} else if ($onlineModule->isDeprecated) {
$this->_status = 'deprecated';
} else {
$this->_status = 'none';
}
// TODO: Implement new status detection
return $this->_status;
}
public function getStatusTitle(): string
{
switch ($this->status) {
case 'professional':
return Yii::t('AdminModule.modules', 'Professional Edition');
case 'featured':
return Yii::t('AdminModule.modules', 'Featured');
case 'official':
return Yii::t('AdminModule.modules', 'Official');
case 'partner':
return Yii::t('AdminModule.modules', 'Partner');
case 'deprecated':
return Yii::t('AdminModule.modules', 'Deprecated');
case 'new':
return Yii::t('AdminModule.modules', 'New');
}
return '';
}
public function getClass(): string
{
return 'card-status-' . $this->status;
}
}