aboutsummaryrefslogtreecommitdiffhomepage
path: root/templates/note.php
diff options
context:
space:
mode:
authorwinter2025-03-15 18:53:29 +0000
committerwinter2025-03-15 18:53:29 +0000
commite0588a6113ff6b3c1000fa6c82629f81fb5e05b5 (patch)
treeef6beb046a7dcc7542b88f0962d4e5e264895b7a /templates/note.php
parent61b122e88cc6783b4d0cf5142a22002f8e558c60 (diff)
[refactor] move some templates to subdirs
Diffstat (limited to 'templates/note.php')
-rw-r--r--templates/note.php176
1 files changed, 0 insertions, 176 deletions
diff --git a/templates/note.php b/templates/note.php
deleted file mode 100644
index c80eace..0000000
--- a/templates/note.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-/** @var \Digitigrade\Model\Note $note */
-
-use Digitigrade\Model\Actor;
-use Digitigrade\Model\InteractionKind;
-use Digitigrade\Model\NotePrivacyScope;
-use Digitigrade\Model\UserAccount;
-use Digitigrade\UserSettings;
-
-$MAX_PREVIEW_CARDS = 1;
-
-$user = UserAccount::findByCurrentSession();
-$prefs = $user ? new UserSettings($user) : null;
-$interKinds = [];
-$actionsDisabled = $user == null;
-if ($user != null) {
- $interactions = $note->getInteractionsWithAuthor($user->actor);
- $interKinds = array_map(fn($inter) => $inter->kind, $interactions);
-}
-$pathToSelf = $note->getLocalUiHref();
-?>
-<article class="note <?= ($selected ?? false) ? 'selected' : '' ?>">
-
- <a href="/@/<?= $note->author->getFullHandle() ?>">
- <?php call_template('actor_avatar', ['actor' => $note->author]); ?>
- </a>
-
- <div>
-
- <div class="infoLine">
- <a class="authorName"
- href="/@/<?= htmlspecialchars($note->author->getFullHandle()) ?>"><?= htmlspecialchars($note->author->displayName) ?></a>
- <span class="authorPronouns">
- <?php if (isset($note->author->pronouns) && trim($note->author->pronouns) != '') {
- echo htmlspecialchars($note->author->pronouns);
- } ?>
- </span>
- <a class="timestamp" href="<?= htmlspecialchars($pathToSelf) ?>">
- <?= format_datetime($note->created)
- . (isset($note->modified) && $note->modified != $note->created
- ? ' (' . format_datetime($note->modified) . ')'
- : ''
- ) ?>
- </a>
- <span class="privacyScope inlineIcon material-symbols <?= match ($note->privacy->scope) {
- NotePrivacyScope::NONE => 'lock',
- NotePrivacyScope::MUTUALS => 'group',
- NotePrivacyScope::FOLLOWERS => 'groups',
- NotePrivacyScope::PUBLIC => 'public'
- } ?>" title="<?= match ($note->privacy->scope) {
- NotePrivacyScope::NONE => __('note.privacy.scope.none'),
- NotePrivacyScope::MUTUALS => __('note.privacy.scope.mutuals'),
- NotePrivacyScope::FOLLOWERS => __('note.privacy.scope.followers'),
- NotePrivacyScope::PUBLIC => __('note.privacy.scope.public')
- } ?>"></span>
- </div>
-
- <?php if (isset($note->inReplyTo)): ?>
- <div class="replyInfo">
- <span class="material-symbols reply inlineIcon"></span>
- <a
- href="/@/<?= htmlspecialchars($note->inReplyTo->author->getFullHandle()) ?>/note/<?= $note->inReplyTo->id ?>">
- <?= sprintf(__('note.info.replyTo'),
- '<b>' . htmlspecialchars($note->inReplyTo->author->displayName)) . '</b>' ?>
- </a>
- </div>
- <?php elseif (count($note->mentions) > 0): ?>
- <div class="replyInfo">
- <span class="material-symbols alternate-email inlineIcon"></span>
- <span>
- <?= sprintf(__('note.info.mentions'), implode(', ', array_map(
- fn(Actor $m) => '<b><a href="/@/' . htmlspecialchars($m->getFullHandle()) . '">' . htmlspecialchars($m->displayName) . '</a></b>',
- $note->mentions
- ))) ?>
- </span>
- </div>
- <?php endif; ?>
-
- <?php if (isset($note->summary)): ?>
- <details>
- <summary><?= htmlspecialchars($note->summary) ?></summary>
- <?php endif; ?>
- <div class="content" lang="<?= $note->language ?>">
- <?php if ($note->hasPage()): ?>
- <?= __f('note.page.summaryMessage', htmlspecialchars($note->getPage()->title)) ?>
- <?php else: ?>
- <?= $note->getBestContentAsHtml() ?>
- <?php endif; ?>
- </div>
-
- <?php if (count($note->attachments) > 0): ?>
- <div class="attachments">
- <?php foreach ($note->attachments as $attachment) {
- call_template('note_attachment', ['attachment' => $attachment]);
- } ?>
- </div>
- <?php endif; ?>
-
- <?php
- $i = 0;
- foreach ($note->getLinkPreviews() as $preview) {
- call_template("note_link_preview", ['preview' => $preview]);
- if (++$i > $MAX_PREVIEW_CARDS)
- break;
- }
- ?>
-
- <?php if (isset($note->summary)): ?>
- </details>
- <?php endif; ?>
-
- <?php if ($note->hasPage()): ?>
- <a class="button secondary minWidth" href="<?= $note->getLocalUiHref(true) ?>">
- <span class="material-symbols article-outline"></span>
- <span><?= __('note.openPage') ?></span>
- </a>
- <?php endif; ?>
-
- <div class="buttons">
- <?php foreach (['like', 'dislike', 'reshare'] as $action) {
- $kind = InteractionKind::from($action);
- call_template('interaction_button', [
- 'action' => $action,
- 'note' => $note,
- 'active' => in_array($kind, $interKinds),
- 'count' => $note->countInteractionsOfKind($kind),
- 'disabled' => $actionsDisabled
- ]);
- }
- call_template('reply_button', [
- 'note' => $note,
- 'count' => $note->countReplies(),
- 'disabled' => $actionsDisabled
- ]);
- ?>
- <div class="right">
- <?php call_template('menu_button', [], function () {
- global $note;
- $user = UserAccount::findByCurrentSession();
- ?>
- <li>
- <button data-share-url="<?= htmlspecialchars($note->uri) ?>" _="
- on click
- set url to my @data-share-url
- js(url)
- navigator.share({ url: url })
- end" type="button">
- <span class="material-symbols share"></span>
- <span><?= __('action.share') ?></span>
- </button>
- </li>
- <?php if ($note->author->isLocal && ($note->author == $user?->actor || $user?->isAdmin)): ?>
- <li>
- <button hx-delete="/fragment/note/<?= $note->id ?>"
- hx-confirm="<?= __('note.action.delete.confirmation') ?>" hx-target="closest .note"
- hx-swap="delete">
- <span class="material-symbols delete-outline"></span>
- <span><?= __('note.action.delete') ?></span>
- </button>
- </li>
- <?php endif; ?>
- <?php if (!$note->author->isLocal): ?>
- <li>
- <a target="_blank" href="<?= htmlspecialchars($note->uri) ?>" rel="nofollow noreferrer">
- <span class="material-symbols open-in-new"></span>
- <span><?= __('note.openRemote') ?></span>
- </a>
- </li>
- <?php endif; ?>
- <?php }); ?>
- </div>
- </div>
-
- <?php call_template('reply_form', ['note' => $note]); ?>
- </div>
-</article> \ No newline at end of file