nativegallery/app/Models/Comment.php

115 lines
5.8 KiB
PHP
Raw Permalink Normal View History

2024-07-05 11:51:14 +03:00
<?php
namespace App\Models;
2024-10-01 06:31:32 +03:00
use \App\Services\{DB, Date, Auth};
2024-07-06 09:57:51 +03:00
use \App\Models\{User, Photo, Vote};
2024-07-05 11:51:14 +03:00
class Comment {
public $commentid;
public $c;
2024-07-21 16:58:26 +03:00
public $class;
2024-07-05 11:51:14 +03:00
function __construct($user_id) {
$this->c = $user_id;
}
2024-07-21 16:58:26 +03:00
public function class($class) {
$this->class = $class;
}
2024-10-08 21:42:55 +03:00
public function content($table) {
$content = json_decode($this->c['content'], true);
return $content[$table];
}
2024-07-05 11:51:14 +03:00
public function i() {
$user = new User($this->c['user_id']);
2024-10-07 17:06:43 +03:00
$content = json_decode($this->c['content'], true);
2024-07-21 16:58:26 +03:00
echo '<div class="'.$this->class.' comment" wid="'.$this->c['id'].'">
2024-07-05 11:51:14 +03:00
<div style="float:right; text-align:right" class="sm">
<span class="message_date">'.Date::zmdate($this->c['posted_at']).'</span><br>
2024-07-21 16:58:26 +03:00
<a href="#" class="quoteLink dot">Цитировать</a>
·
<a href="#'.$this->c['id'].'" class="cmLink dot">Ссылка</a>
2024-10-07 17:06:43 +03:00
';
echo '
2024-07-05 11:51:14 +03:00
</div>
<a name="2681468"></a><a name="last"></a>
2024-07-10 13:23:05 +03:00
<div><img src="'.$user->i('photourl').'" width="32" style="border-radius: 3px; margin-right: 5px;"><b><a href="/author/'.$this->c['user_id'].'/" class="message_author">'.htmlspecialchars($user->i('username')).'</a></b> &middot;
2024-07-05 15:03:35 +03:00
<span class="flag">';
if (json_decode($user->i('content'), true)['aboutrid']['value'] != null) {
echo '<img src="/static/img/flags/'.json_decode($user->i('content'), true)['aboutrid']['value'].'.gif">';
2024-07-05 15:03:35 +03:00
}
if (json_decode($user->i('content'), true)['aboutlive']['value'] != null) {
2024-07-10 13:23:05 +03:00
echo ' '.htmlspecialchars(json_decode($user->i('content'), true)['aboutlive']['value']);
2024-07-05 15:03:35 +03:00
}
2024-10-07 17:06:43 +03:00
if ($content['edited'] === 'true') {
echo '<br>(отредактировано)';
}
2024-07-19 01:04:05 +03:00
if ($user->i('admin') === 1) {
$admintype = ' · Администратор сервера';
} else if ($user->i('admin') === 2) {
$admintype = ' · Фотомодератор';
}
2024-07-06 09:57:51 +03:00
if ((int)Vote::countcommrates($this->c['id'], -1) >= 1) {
$commclass = 'pro';
$symb = '+';
} else if ((int)Vote::countcommrates($this->c['id'], -1) < 0) {
$commclass = 'con';
2024-07-12 00:26:43 +03:00
$symb = '';
2024-07-06 09:57:51 +03:00
} else if ((int)Vote::countcommrates($this->c['id'], -1) === 0) {
$commclass = '';
}
2024-07-05 15:03:35 +03:00
echo '</span></div>
2024-07-19 01:04:05 +03:00
<div class="rank">Фото: '.Photo::fetchAll($this->c['user_id']).' '.$admintype.'</div>
2024-09-12 17:28:20 +03:00
<div class="message-text">'.preg_replace("~(?:[\p{M}]{1})([\p{M}])+?~uis","", htmlspecialchars($this->c['body'])).'</div>
2024-07-05 11:51:14 +03:00
<div class="comment-votes-block">
2024-10-01 06:31:32 +03:00
';
echo '<style>
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
padding: 12px 16px;
z-index: 1;
}
.dropdown:hover .dropdown-content {
display: block;
}
</style>';
if ($this->c['user_id'] === Auth::userid()) {
echo '
<div class="dropdown">
<a style="color: #000" class="compl" href="/lk/ticket.php?action=add&amp;wid=3252565">...</a>
<div class="dropdown-content">'; ?>
<a style="margin-bottom: 10px;" href="#" onclick="createModal(<?=$this->c['id']?>, 'EDIT_COMMENT', '<?=htmlspecialchars($this->c['body'])?>', 'modaledit<?=$this->c['id']?>'); return false;">Редактировать</a><br>
<a href="#" onclick="createModal(<?=$this->c['id']?>, 'DELETE_COMMENT', '', 'modaldel<?=$this->c['id']?>'); return false;">Удалить</a>
2024-10-01 06:31:32 +03:00
<?php
echo '
</div>
</div>
';
}
echo '
2024-07-05 11:51:14 +03:00
<div class="wvote" wid="'.$this->c['id'].'">
2024-07-06 09:57:51 +03:00
<a href="#" vote="1" class="w-btn s2"><span>+</span></a>
2024-10-01 06:31:32 +03:00
2024-07-09 00:00:18 +03:00
<div class="w-rating '.$commclass.' active">'.$symb.Vote::countcommrates($this->c['id'], -1).'</div>
2024-10-01 06:31:32 +03:00
2024-07-05 11:51:14 +03:00
<div class="w-rating-ext">
2024-07-06 09:57:51 +03:00
<div><span class="pro">+'.Vote::countcommrates($this->c['id'], 1).'</span> / <span class="con">'.Vote::countcommrates($this->c['id'], 0).'</span></div>
2024-07-05 11:51:14 +03:00
</div>
2024-07-06 09:57:51 +03:00
<a href="#" vote="0" class="w-btn s5"><span></span></a>
2024-07-05 11:51:14 +03:00
</div>
</div>
</div>';
}
2024-10-08 21:42:55 +03:00
2024-07-05 11:51:14 +03:00
}