%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/PeopleDetails.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2021 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\user\widgets;
use humhub\components\Widget;
use humhub\modules\user\models\ProfileField;
use humhub\modules\user\models\User;
use yii\helpers\StringHelper;
/**
* PeopleDetails shows details for back side of the people card
*
* @since 1.9
* @author Luke
*/
class PeopleDetails extends Widget
{
/**
* @var User
*/
public $user;
/**
* @var string Separator between lines
*/
public $separator = '<br>';
/**
* @var string Template for lines
*/
public $template = '{lines}';
/**
* @inheritdoc
*/
public function run()
{
$lines = [];
for ($i = 1; $i <= 3; $i++) {
if ($profileField = $this->getProfileFieldValue(PeopleCard::config('detail' . $i))) {
$lines[] = $profileField;
}
}
if (empty($lines)) {
return '';
}
return str_replace('{lines}', implode($this->separator, $lines), $this->template);
}
/**
* Get user profile field value by internal name
*
* @param string $internalName
* @return false|string
*/
private function getProfileFieldValue(string $internalName)
{
if (empty($internalName)) {
return false;
}
static $profileFields;
if (!is_array($profileFields)) {
$profileFields = [];
}
if (!array_key_exists($internalName, $profileFields)) {
$profileFields[$internalName] = ProfileField::find()
->where(['visible' => 1])
->andWhere(['internal_name' => $internalName])
->one();
}
if (!$profileFields[$internalName]) {
return false;
}
return StringHelper::truncate($profileFields[$internalName]->getUserValue($this->user, false), 200, '...', null, true);
}
}