%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/widgets/mails/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/widgets/mails/MailContentEntry.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2016 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\widgets\mails;
use humhub\modules\content\widgets\richtext\converter\RichTextToEmailHtmlConverter;
use Yii;
use humhub\modules\content\widgets\richtext\converter\RichTextToHtmlConverter;
use humhub\components\rendering\ViewPathRenderer;
use humhub\components\rendering\Viewable;
use humhub\modules\content\interfaces\ContentOwner;
/**
* MailContentEntry renders a simple mail content with originator information and an
* content block to simulate a wall entry as good as poosible.
*
* @author buddha
* @since 1.2
*/
class MailContentEntry extends \yii\base\Widget
{
/**
* @var \humhub\modules\user\models\User content originator
*/
public $originator;
/**
* @var \humhub\modules\user\models\User notification receiver
*/
public $receiver;
/**
* @var string|Viewable|ContentOwner content to render
*/
public $content;
/**
* @var \humhub\modules\space\models\Space space of content (optional)
*/
public $space;
/**
* @var string content date
*/
public $date;
/**
* @var boolean will render the content as comment
*/
public $isComment;
/**
* @inheritdoc
*/
public function run()
{
$content = null;
if (is_string($this->content)) {
$content = $this->content;
} elseif ($this->content instanceof Viewable) {
try {
$renderer = new ViewPathRenderer(['parent' => true, 'subPath' => 'mail']);
$content = $renderer->render($this->content);
} catch (\yii\base\ViewNotFoundException $e) {
Yii::error($e);
}
} elseif ($this->content instanceof ContentOwner) {
$content = RichTextToEmailHtmlConverter::process($this->content->getContentDescription(), [
RichTextToEmailHtmlConverter::OPTION_RECEIVER_USER => $this->receiver,
RichTextToHtmlConverter::OPTION_CACHE_KEY => RichTextToHtmlConverter::buildCacheKeyForContent($this->content, 'mail_entry'),
]);
if(!$this->originator) {
$this->originator = $this->content->content->createdBy;
}
}
return $this->render('mailContentEntry', [
'originator' => $this->originator,
'content' => $content,
'space' => $this->space,
'date' => $this->date,
'isComment' => $this->isComment,
]);
}
}
?>