%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/comment/widgets/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/comment/widgets/Comment.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\comment\widgets;
use humhub\components\Widget;
use Yii;
use yii\helpers\Url;
/**
* This widget is used to show a single comment.
* It will used by the CommentsWidget and the CommentController to show comments.
*/
class Comment extends Widget
{
/**
* @var \humhub\modules\comment\models\Comment the comment
*/
public $comment = null;
/**
* @var boolean indicator that comment has just changed
*/
public $justEdited = false;
/**
* @var bool True to force show even blocked comment
*/
public $showBlocked = false;
/**
* @var string Default style class of div wrapper around Comment block
*/
public $defaultClass = 'media';
/**
* @var string Additional style class of div wrapper around Comment block
*/
public $additionalClass = '';
/**
* @inheritdoc
*/
public function run()
{
return $this->isBlockedAuthor()
? $this->renderBlockedComment()
: $this->renderComment();
}
/**
* @return string
*/
private function renderBlockedComment(): string
{
$loadBlockedCommentUrl = Url::to(['/comment/comment/load',
'objectModel' => $this->comment->object_model,
'objectId' => $this->comment->object_id,
'id' => $this->comment->id,
'showBlocked' => true,
]);
return $this->render('commentBlockedUser', [
'comment' => $this->comment,
'loadBlockedCommentUrl' => $loadBlockedCommentUrl,
]);
}
private function renderComment(): string
{
$deleteUrl = Url::to(['/comment/comment/delete',
'objectModel' => $this->comment->object_model, 'objectId' => $this->comment->object_id, 'id' => $this->comment->id]);
$editUrl = Url::to(['/comment/comment/edit',
'objectModel' => $this->comment->object_model, 'objectId' => $this->comment->object_id, 'id' => $this->comment->id]);
$loadUrl = Url::to(['/comment/comment/load',
'objectModel' => $this->comment->object_model, 'objectId' => $this->comment->object_id, 'id' => $this->comment->id]);
return $this->render('comment', [
'comment' => $this->comment,
'user' => $this->comment->user,
'createdAt' => $this->comment->created_at,
'class' => trim($this->defaultClass . ' ' . $this->additionalClass),
]);
}
/**
* Check if author of the Comment is blocked for the current User
*
* @return bool
*/
private function isBlockedAuthor(): bool
{
if ($this->showBlocked) {
return false;
}
if (Yii::$app->user->isGuest) {
return false;
}
return Yii::$app->user->getIdentity()->isBlockedForUser($this->comment->createdBy);
}
}