%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/mail/widgets/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/mail/widgets/ParticipantUserList.php |
<?php
namespace humhub\modules\mail\widgets;
use humhub\components\Widget;
use humhub\libs\Html;
use humhub\modules\mail\helpers\Url;
use humhub\modules\mail\models\Message;
use humhub\modules\user\models\User;
use Yii;
class ParticipantUserList extends Widget
{
/**
* @var Message
*/
public $message;
/**
* @var User first user
*/
public $user;
/**
* @var array
*/
public $options = [];
/**
* @var array
*/
public $linkOptions = [];
public function run()
{
if(empty($this->message->users)) {
return '';
}
$result = Html::beginTag('span', $this->options);
$result .= Yii::t('MailModule.base','with').' ';
$result .= Html::beginTag('a', array_merge($this->getDefaultLinkOptions(), $this->linkOptions));
$result .= $this->renderUserList();
$result .= Html::endTag('a');
$result .= Html::endTag('span');
return $result;
}
private function renderUserList()
{
$userCount = count($this->message->users);
$result = '';
if($userCount === 2) {
$result .= Html::encode($this->message->users[0]->displayName);
$result .= ', '. Html::encode($this->message->users[1]->displayName);
} else {
$result .= Html::encode($this->getFirstUser()->displayName);
$result .= ($userCount > 1)
? ', +'.Yii::t('MailModule.base', '{n,plural,=1{# other} other{# others}}', ['n' => $userCount - 1])
: '';
}
return $result;
}
private function getDefaultLinkOptions()
{
return [
'href'=> '#',
'data-action-click' => 'ui.modal.load',
'data-action-url' => Url::toConversationUserList($this->message),
'style' => ['color' => $this->view->theme->variable('info')]
];
}
private function getFirstUser()
{
if($this->user) {
return $this->user;
}
foreach ($this->message->users as $participant) {
if(!$participant->is(Yii::$app->user->getIdentity())) {
return $participant;
}
}
return $this->message->users[0];
}
}