<?php
$m_data = $grab[0] ?? ''; // miter
$m_link = $grab[1] ?? ''; // link image video
$m_img = $grab[2] ?? ''; // upload
$m_keys = $grab[3] ?? ''; // keywords
$m_odate = $grab[4] ?? ''; // otc date
$m_gdate = $grab[5] ?? ''; // gregorian date
$m_udate = $grab[6] ?? ''; // update date
// permalink address build
$o_perm = str_replace(['miters/', '.txt'], '', $miter_content ?? '');
$safe_o_perm = urlencode($o_perm);
$miter = htmlspecialchars($m_data, ENT_QUOTES, 'UTF-8');
$miter = str_replace(''', '\'', $miter); // dumb solution
$miter = str_replace(['<br>', '<br />'], '<br>', $miter); // older content
$miter = preg_replace('/(?<!\w)#([0-9a-zA-Z]+)/m', '<a href="index.php?q=$1">#$1</a>', $miter);
$miter = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>$1</b>', $miter);
$miter = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>$1</i>', $miter);
$miter = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>$1</u>', $miter);
$miter = preg_replace('#\[s\](.*?)\[/s\]#si', '<s>$1</s>', $miter);
$miter = preg_replace_callback('#\[img\](.*?)\[/img\]#si', function($match) {
$url = filter_var($match[1], FILTER_SANITIZE_URL);
return '<a href="' . htmlspecialchars($url, ENT_QUOTES) . '" target="_blank"><img src="' . htmlspecialchars($url, ENT_QUOTES) . '"></a>';
}, $miter);
$miter = preg_replace_callback('#\[url\](.*?)\[/url\]#si', function($match) {
$url = filter_var($match[1], FILTER_SANITIZE_URL);
return '<a href="' . htmlspecialchars($url, ENT_QUOTES) . '" target="_blank">' . htmlspecialchars($match[1]) . '</a>';
}, $miter);
$miter = str_replace('[hr]', '<hr />', $miter);
if (strpos($miter, '>') === 0) {
$miter = preg_replace('/>([^<]*)/m', '<span class="green_text">>$1</span>', $miter, 1);
}
$miter = preg_replace('/<br>>([^<]*)/m', '<br><span class="green_text">>$1</span>', $miter);
// time since calculator
try {
$d_start = new DateTime('now');
$d_end = new DateTime($m_gdate ?: 'now');
$d_dif = $d_start->diff($d_end);
$d_d = $d_dif->days;
if ($d_d < 1) {
$d_since = ($d_dif->h < 1) ? $d_dif->i . "m" : $d_dif->h . "h";
} else {
if ($d_d > 365) {
$d_y = floor($d_d / 365);
$d_y_d = $d_d - ($d_y * 365);
$d_since = $d_y . 'y ' . $d_y_d . 'd';
} else {
$d_since = $d_d . 'd';
}
}
} catch (Exception $e) {
$d_since = 'unknown';
}
?>
<div class="m_table">
<div class="m_td">
<span class="name"><?= htmlspecialchars($user_name ?? ' ', ENT_QUOTES) ?> · <?= htmlspecialchars($d_since, ENT_QUOTES) ?></span><br>
<div class="space_name"></div>
<span class="miter_text"><?= $miter ?></span><br>
<?php if (strlen($m_img) !== 0): ?>
<div class="crop_container"><img src="images/<?= htmlspecialchars($m_img, ENT_QUOTES) ?>" alt=""></div>
<div class="space_img"></div>
<?php endif; ?>
<?php if (strlen($m_img) === 0 && strlen($m_link) != 0): ?>
<?php
$m_link = str_replace('gifv', 'mp4', $m_link);
$escaped_link = htmlspecialchars($m_link, ENT_QUOTES);
?>
<?php if (strpos($m_link, 'youtube.com/') !== false || strpos($m_link, 'youtu.be/') !== false): ?>
<?php
if (strpos($m_link, 'shorts/') !== false) {
$m_link = str_replace('shorts/', 'watch?v=', $m_link);
}
preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $m_link, $yt_match);
?>
<?php if (!empty($yt_match[1])): ?>
<div class="embed_yt"><iframe src="https://www.youtube.com/embed/<?= htmlspecialchars($yt_match[1], ENT_QUOTES) ?>" frameborder="0" allowfullscreen class="yt"></iframe></div>
<div class="space_img"></div>
<?php endif; ?>
<?php elseif (preg_match('/\.(mp4|webm)$/i', $m_link, $video_match)): ?>
<div class="embed_video">
<video class="video_miter" controls loop preload="metadata">
<source src="<?= $escaped_link ?>" type="video/<?= strtolower($video_match[1]) ?>">
</video>
</div>
<div class="space_img"></div>
<?php elseif (preg_match('/\.(jpg|jpeg|png|gif|svg|webp|jfif|apng|avif)$/i', $m_link)): ?>
<div class="crop_container"><img src="<?= $escaped_link ?>" alt=""></div>
<div class="space_img"></div>
<?php elseif (strpos($m_link, 'index.php?m=') !== false): ?>
<?php include 'front/quote.php'; ?>
<?php else: ?>
<div class="link_container-div">
<a href="<?= $escaped_link ?>" target="_blank"><?= $escaped_link ?></a>
</div>
<?php endif; ?>
<?php endif; ?>
<div class="date_table-div">
<a href="index.php?m=<?= $safe_o_perm ?>" class="permalink">
<?= htmlspecialchars($m_odate, ENT_QUOTES) ?><?= ($m_udate > $m_gdate) ? ' ±' : '' ?>
</a>
</div>
<div class="footer_table-div">
<div class="footer_left-div">
<?php if (($login ?? false) === true): ?>
<a href="index.php?quote=<?= $safe_o_perm ?>"><img src="images/icons/quote.png" class="footer_img_left" alt="Quote"></a>
<?php else: ?>
<img src="images/icons/quote.png" class="footer_img_left" alt="Quote">
<?php endif; ?>
<img src="images/icons/like.png" class="footer_img" alt="Like">
<a href="index.php?m=<?= $safe_o_perm ?>"><img src="images/icons/share.png" class="footer_img" alt="Share"></a>
<?php if (($login ?? false) === true): ?>
<a href="back/miter/delete.php?d=<?= $safe_o_perm ?>" onclick="return confirm_delete()"><img src="images/icons/delete.png" class="footer_img" alt="Delete"></a>
<a href="index.php?edit=<?= $safe_o_perm ?>"><img src="images/icons/edit.png" class="footer_img" alt="Edit"></a>
<a href="back/miter/pin.php?m=<?= $safe_o_perm ?>"><img src="images/icons/pin.png" class="footer_img" alt="Pin"></a>
<a href="<?= htmlspecialchars($miter_content ?? '', ENT_QUOTES) ?>" target="_blank"><img src="images/icons/file.png" class="footer_img" alt="File"></a>
<?php endif; ?>
</div>
</div>
</div>
</div>