diff options
Diffstat (limited to 'src/application/views/view_post.php')
-rw-r--r-- | src/application/views/view_post.php | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/application/views/view_post.php b/src/application/views/view_post.php new file mode 100644 index 0000000..0776fb5 --- /dev/null +++ b/src/application/views/view_post.php @@ -0,0 +1,86 @@ +<?php + +use mystic\forum\orm\UserPermissions; +use mystic\forum\orm\Attachment; + +$fileAttachments = array_filter($attachments, fn(Attachment $a) => !str_starts_with($a->mimeType, "image/")); +$imageAttachments = array_filter($attachments, fn(Attachment $a) => str_starts_with($a->mimeType, "image/")); + +$canReply = $GLOBALS["currentUser"]?->hasPermission(UserPermissions::CREATE_OWN_POST) ?? false; + +$canDelete = ($GLOBALS["currentUser"]?->id === $postAuthor?->id && $postAuthor?->hasPermission(UserPermissions::DELETE_OWN_POST)) + || ($GLOBALS["currentUser"]?->hasPermission(UserPermissions::DELETE_OTHER_POST)); + +?> + +<?php if ($post->deleted): ?> +<div class="media"> +<div class="media-left hidden-sm hidden-xs"> + <div class="media-object" style="width:64px"></div> +</div> +<div class="media-body"> + <div class="well"> + <em>This post has been deleted</em> + </div> +</div> +</div> +<?php else: ?> +<div class="media"> + <div class="media-left hidden-sm hidden-xs"> + <?php if ($postAuthor): ?> + <a href="?_action=viewuser&user=<?= htmlentities(urlencode($postAuthor->id)) ?>"> + <img class="media-object" src="/ui/placeholder.svg" alt="" width="64" height="64"> + </a> + <?php else: ?> + <div class="media-object" style="width:64px;height:64px"></div> + <?php endif; ?> + </div> + <div class="media-body"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"> + <div class="pull-right"> + <?php if ($canReply): ?> + <button data-text="<?= htmlentities($post->content) ?>" class="btn btn-default js-only _reply-post"><span class="glyphicon glyphicon-share-alt" aria-hidden="true"></span><span class="sr-only">Reply to post</span></button> + <?php endif; ?> + <?php if ($canDelete): ?> + <form action="?_action=deletepost" method="post" class="seamless-inline"> + <input type="hidden" name="post" value="<?= htmlentities($post->id) ?>"> + <button type="submit" class="btn btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span><span class="sr-only">Delete post</span></button> + </form> + <?php endif; ?> + </div> + <?php if ($postAuthor): ?> + <a href="?_action=viewuser&user=<?= htmlentities(urlencode($postAuthor->id)) ?>"><?= htmlentities($postAuthor->displayName) ?></a> + <?php else: ?> + <em class="text-muted">(deleted)</em> + <?php endif; ?> + </h3> + <span class="_time"><?= $post->postDate->format("c"); ?></span> + </div> + <div class="panel-body"> + <div class="post-content"><?= renderPost($post->content) ?></div> + <?php if (count($imageAttachments) > 0): ?> + <div class="post-images clearfix"> + <?php /** @var Attachment $attachment */ foreach ($imageAttachments as $attachment): ?> + <a class="image-attachment" href="?_action=attachment&attachment=<?= htmlentities(urlencode($attachment->id)) ?>" title="<?= htmlentities($attachment->name) ?>"> + <img class="image-attachment-image" src="?_action=thumb&attachment=<?= htmlentities(urlencode($attachment->id)) ?>" alt="" width="110"> + </a> + <?php endforeach; ?> + </div> + <?php endif; ?> + </div> + <?php if (count($fileAttachments) > 0): ?> + <div class="panel-footer"> + <div class="btn-group"> + <?php /** @var Attachment $attachment */ foreach ($fileAttachments as $attachment): ?> + <a class="btn btn-default" href="?_action=attachment&attachment=<?= htmlentities(urlencode($attachment->id)) ?>"><?= htmlentities($attachment->name) ?></a> + <?php endforeach; ?> + </div> + </div> + <?php endif; ?> + </div> + </div> +</div> + +<?php endif; ?> |