%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/user/widgets/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/user/widgets/UserPickerField.php |
<?php
namespace humhub\modules\user\widgets;
use humhub\modules\user\models\User;
use humhub\modules\ui\form\widgets\BasePicker;
use Yii;
use yii\helpers\Html;
use yii\helpers\Url;
/**
*
* @package humhub.modules_core.user.widgets
* @since 1.2
* @author buddha
*/
class UserPickerField extends BasePicker
{
/**
* @inheritdoc
*/
public $defaultRoute = '/user/search/json';
/**
* @inheritdoc
*/
public $jsWidget = 'user.picker.UserPicker';
/**
* @inheritdoc
* The 'guid' value is default for UserPickerField
*/
public $itemKey = 'guid';
/**
* @inheritdoc
*/
public function init()
{
$this->itemClass = User::class;
if (empty($this->itemKey)) {
$this->itemKey = 'guid';
}
parent::init();
}
/**
* @inheritdoc
*/
public function getUrl()
{
if (!$this->url) {
// provide the space id if the widget is calling from a space
if (Yii::$app->controller->id == 'space') {
return Url::to([$this->defaultRoute, 'space_id' => Yii::$app->controller->getSpace()->id]);
} else {
return Url::to([$this->defaultRoute]);
}
}
return parent::getUrl();
}
/**
* @inheritdoc
*/
protected function getAttributes()
{
return array_merge(parent::getAttributes(), [
'data-tags' => 'false',
]);
}
/**
* @inheritdoc
*/
protected function getData()
{
$result = parent::getData();
$allowMultiple = $this->maxSelection !== 1;
$result['placeholder'] = ($this->placeholder != null)
? $this->placeholder
: Yii::t('UserModule.chooser', 'Select {n,plural,=1{user} other{users}}',
['n' => ($allowMultiple) ? 2 : 1]);
if ($this->placeholder && !$this->placeholderMore) {
$result['placeholder-more'] = $this->placeholder;
} else {
$result['placeholder-more'] = ($this->placeholderMore) ? $this->placeholderMore
: Yii::t('UserModule.chooser', 'Select user...');
}
$result['no-result'] = Yii::t('UserModule.chooser', 'No users found for the given query.');
if ($this->maxSelection) {
$result['maximum-selected'] = Yii::t('UserModule.chooser',
'This field only allows a maximum of {n,plural,=1{# user} other{# users}}.',
['n' => $this->maxSelection]);
}
return $result;
}
/**
* @inheritdoc
*/
protected function getItemText($item)
{
return $item->displayName;
}
/**
* @inheritdoc
*/
protected function getItemImage($item)
{
return $item->getProfileImage()->getUrl();
}
}