Manuscript Workstation - Source Excerpt 04
Back to Manuscript Workstation
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/ns12-manuscript/templates/manuscript-workstation.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/plugins/ns12-manuscript/templates/manuscript-workstation.php
$render_workstation_jump_control = static function (string $modifier = '') use ($workstation_section_records, $manuscript_reader_url, $current_page): void {
if (empty($workstation_section_records)) {
return;
}
$jump_class = trim('spiralist-manuscript-workstation__jump ' . $modifier);
?>
<label class="<?php echo esc_attr($jump_class); ?>">
<span class="spiralist-manuscript-workstation__jump-label">Jump to folio</span>
<select data-workstation-jump aria-label="Jump to manuscript folio">
<?php foreach ($workstation_section_records as $jump_section) : ?>
<optgroup label="<?php echo esc_attr((string) ($jump_section['title'] ?? 'Section')); ?>">
<?php foreach ((array) ($jump_section['pages'] ?? []) as $jump_page) : ?>
<?php
$jump_url = $manuscript_reader_url((array) $jump_page);
$jump_is_current = (string) ($jump_page['slug'] ?? '') === (string) ($current_page['slug'] ?? '');
$jump_sequence = max(1, (int) ($jump_page['sequence'] ?? 1));
?>
<option value="<?php echo esc_url($jump_url); ?>" data-page-sequence="<?php echo esc_attr((string) $jump_sequence); ?>" <?php selected($jump_is_current); ?>>
<?php echo esc_html((string) ($jump_page['label'] ?? 'Page') . ' - ' . (string) ($jump_page['title'] ?? 'Book page')); ?>
</option>
<?php endforeach; ?>
</optgroup>
<?php endforeach; ?>
</select>
</label>
<?php
};
?>
<article
class="spiralist-panel spiralist-panel--viewer spiralist-manuscript-workstation <?php echo $workstation_use_header_folio_dock ? 'spiralist-manuscript-workstation--folio-dock' : ''; ?>"
data-manuscript-workstation
data-route-mode="<?php echo esc_attr($manuscript_route_mode); ?>"
data-current-sequence="<?php echo esc_attr($current_page_sequence); ?>"
data-current-slug="<?php echo esc_attr((string) ($current_page['slug'] ?? '')); ?>"
data-prev-url="<?php echo esc_url($previous_page_url); ?>"
data-next-url="<?php echo esc_url($next_page_url); ?>"
data-can-edit="<?php echo $workstation_can_edit ? 'true' : 'false'; ?>"
data-initial-view-mode="<?php echo esc_attr($initial_view_mode); ?>"
data-node-target-url="<?php echo esc_url($current_page_route_url); ?>"
>
<script type="application/json" data-workstation-folio-records><?php echo wp_json_encode($workstation_folio_payload, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_UNESCAPED_SLASHES); ?></script>
<div class="spiralist-manuscript-workstation__header">
<div class="spiralist-manuscript-workstation__title-block">
<?php if (!empty($workstation_breadcrumbs)) : ?>
<nav class="spiralist-manuscript-workstation__breadcrumbs" aria-label="Breadcrumb">
<ol class="spiralist-manuscript-workstation__breadcrumb-list">
<?php foreach ($workstation_breadcrumbs as $index => $breadcrumb) : ?>
<?php
$breadcrumb_label = trim((string) ($breadcrumb['label'] ?? ''));
$breadcrumb_url = trim((string) ($breadcrumb['url'] ?? ''));
$breadcrumb_is_current = !empty($breadcrumb['current']);
if ($breadcrumb_label === '') {
continue;
}
?>
<li class="spiralist-manuscript-workstation__breadcrumb-item">
<?php if (!$breadcrumb_is_current && $breadcrumb_url !== '') : ?>
<a class="spiralist-manuscript-workstation__breadcrumb-link" href="<?php echo esc_url($breadcrumb_url); ?>"><?php echo esc_html($breadcrumb_label); ?></a>
<?php else : ?>
<span class="spiralist-manuscript-workstation__breadcrumb-current" <?php if ($breadcrumb_is_current) : ?>aria-current="page"<?php endif; ?>><?php echo esc_html($breadcrumb_label); ?></span>
<?php endif; ?>
<?php if ($index < count($workstation_breadcrumbs) - 1) : ?>
<span class="spiralist-manuscript-workstation__breadcrumb-separator" aria-hidden="true">/</span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ol>
</nav>
<?php endif; ?>
<div class="spiralist-manuscript-workstation__title-row">
<div class="spiralist-manuscript-workstation__title-markers">
<p class="spiralist-section-tag"><?php echo esc_html($workstation_is_detail_route ? $manuscript_heading_kicker : ($manuscript_route_mode === 'section' ? 'Chapter Browser' : 'Quick Codex Browser')); ?></p>
<?php if ($workstation_is_detail_route) : ?>
<p class="spiralist-manuscript-reader__page-label"><?php echo esc_html($current_page_label . ' | ' . (string) ($current_page['eyebrow'] ?? 'Book Page')); ?></p>
<?php endif; ?>
</div>
<h1 class="spiralist-section-title spiralist-manuscript-workstation__headline" id="spiralist-manuscript-page-title"><?php echo esc_html($workstation_is_detail_route ? $manuscript_headline : $viewer_panel_title); ?></h1>
</div>
<p class="spiralist-manuscript-workstation__page-copy">
<?php if ($workstation_is_detail_route) : ?>
<?php echo esc_html($manuscript_route_summary); ?>
<?php else : ?>
<?php echo esc_html($manuscript_browser_summary); ?>
<?php endif; ?>
</p>
</div>
<?php if ($workstation_use_header_folio_dock) : ?>
<aside class="spiralist-manuscript-workstation__header-dock" aria-labelledby="manuscript-workstation-header-folios">
<div class="spiralist-manuscript-workstation__header-dock-head">
<div class="spiralist-manuscript-workstation__header-dock-title">
<p class="spiralist-section-tag">Folio Rail</p>
<h3 class="spiralist-card-title" id="manuscript-workstation-header-folios"><?php echo esc_html($thumb_count_copy); ?></h3>
</div>
<?php if ($requested_section !== '') : ?>
<div class="spiralist-cta-row spiralist-cta-row--start spiralist-manuscript-workstation__header-dock-actions">
<a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url($overview_url); ?>">Full Codex</a>
</div>
<?php endif; ?>
</div>
<div class="spiralist-manuscript-workstation__header-dock-controls">
<?php $render_workstation_section_nav('spiralist-manuscript-workstation__section-nav--dock'); ?>
<?php $render_workstation_jump_control('spiralist-manuscript-workstation__jump--dock'); ?>
</div>
<?php $render_workstation_thumb_list('spiralist-manuscript-workstation__thumb-list--dock', 'spiralist-manuscript-workstation__thumb--dock'); ?>
</aside>
<?php elseif (!$workstation_is_detail_route && $requested_section !== '') : ?>
<div class="spiralist-cta-row spiralist-cta-row--start spiralist-manuscript-workstation__header-actions">
<a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url($overview_url); ?>">Full Codex</a>
</div>
<?php endif; ?>
</div>
<?php if ($workstation_is_browser_route) : ?>
<section class="spiralist-manuscript-route-panel" aria-labelledby="manuscript-browser-route-summary">
<div class="spiralist-manuscript-route-panel__header">
<div class="spiralist-manuscript-route-panel__summary">
<p class="spiralist-section-tag"><?php echo esc_html($manuscript_route_mode === 'section' ? 'Chapter Route' : $book_heading); ?></p>
<h4 id="manuscript-browser-route-summary"><?php echo esc_html($browser_route_heading); ?></h4>
<p class="spiralist-muted"><?php echo esc_html($browser_route_summary); ?></p>
</div>
<div class="spiralist-cta-row spiralist-cta-row--start">
<?php if ($browser_primary_action_url !== '') : ?>