Files
breadcrumb-the-shire/modules/bookmarks/templates/topbar-bookmark-button.phtml
fs ae509c607b refactor(ui): consistent outline/fill icons in topbar, remove dropdown chevrons, truncate breadcrumbs
Use Stripe pattern: outline icons by default, filled for active state
(bookmarks bookmarked, notifications unread). Remove chevron arrows
from tenant/user dropdowns. Add max-width with ellipsis to breadcrumb
items to prevent overflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 22:21:50 +02:00

47 lines
2.1 KiB
PHTML

<?php
use MintyPHP\Module\Bookmarks\Support\BookmarkUrlNormalizer;
$layoutNav = is_array($layoutNav ?? null) ? $layoutNav : [];
$bookmarkNav = is_array($layoutNav['bookmarks.nav'] ?? null) ? $layoutNav['bookmarks.nav'] : [];
$bookmarkData = is_array($bookmarkNav['grouped'] ?? null) ? $bookmarkNav['grouped'] : ['groups' => [], 'ungrouped' => []];
$bookmarkGroups = is_array($bookmarkData['groups'] ?? null) ? $bookmarkData['groups'] : [];
$bookmarkUngrouped = is_array($bookmarkData['ungrouped'] ?? null) ? $bookmarkData['ungrouped'] : [];
$currentPath = trim((string) ($bookmarkNav['current_path'] ?? ''));
$existing = null;
if ($currentPath !== '') {
foreach ($bookmarkUngrouped as $bookmark) {
$bookmarkUrl = BookmarkUrlNormalizer::canonicalizeRelative((string) ($bookmark['url'] ?? ''));
if ($bookmarkUrl !== '' && $bookmarkUrl === $currentPath) {
$existing = $bookmark;
break;
}
}
if ($existing === null) {
foreach ($bookmarkGroups as $group) {
foreach ((is_array($group['bookmarks'] ?? null) ? $group['bookmarks'] : []) as $bookmark) {
$bookmarkUrl = BookmarkUrlNormalizer::canonicalizeRelative((string) ($bookmark['url'] ?? ''));
if ($bookmarkUrl !== '' && $bookmarkUrl === $currentPath) {
$existing = $bookmark;
break 2;
}
}
}
}
}
?>
<li>
<button type="button" data-bookmark-open-dialog
aria-label="<?php e($existing ? t('Edit bookmark') : t('Bookmarks')); ?>"
data-tooltip="<?php e($existing ? t('Edit bookmark') : t('Bookmarks')); ?>" data-tooltip-pos="bottom"
<?php if ($existing): ?>
data-bookmark-existing-id="<?php e((int) ($existing['id'] ?? 0)); ?>"
data-bookmark-existing-name="<?php e(trim((string) ($existing['name'] ?? ''))); ?>"
data-bookmark-existing-group="<?php e($existing['group_id'] ?? ''); ?>"
<?php endif; ?>>
<i class="bi <?php e($existing ? 'bi-bookmark-fill' : 'bi-bookmark'); ?>"></i>
</button>
</li>