Skip to content
wiki.fftac.org

Manuscript Workstation - Source Excerpt 08

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

<div class="spiralist-manuscript-workstation__surface" data-workstation-surface>
                    <div class="spiralist-manuscript-workstation__book-shell">
                        <span class="spiralist-manuscript-workstation__page-stack spiralist-manuscript-workstation__page-stack--left" aria-hidden="true"></span>
                        <span class="spiralist-manuscript-workstation__page-stack spiralist-manuscript-workstation__page-stack--right" aria-hidden="true"></span>
                        <span class="spiralist-manuscript-workstation__book-spine" aria-hidden="true"></span>
                        <div class="spiralist-manuscript-workstation__spread" data-workstation-content data-view-mode="<?php echo esc_attr($initial_view_mode); ?>" data-spread-count="<?php echo esc_attr((string) max(1, $spread_count)); ?>">
                            <?php foreach ($spread_folios as $folio) : ?>
                                <?php
                                $slot = (string) ($folio['slot'] ?? 'left');
                                $folio_slug = (string) ($folio['slug'] ?? '');
                                $folio_is_current = ($current_position === 'right' && $slot === 'right')
                                    || ($current_position !== 'right' && $slot === 'left');
                                $folio_crop = is_array($folio['crop'] ?? null) ? $folio['crop'] : [];
                                $folio_overlay = is_array($folio['overlay_data'] ?? null) ? $folio['overlay_data'] : [];
                                $folio_is_context_only = !empty($folio['is_context_only']);
                                $folio_alt = trim((string) ($folio['alt'] ?? ''));
                                ?>
                                <figure
                                    class="spiralist-manuscript-workstation__folio <?php echo $folio_is_current ? 'is-current' : ''; ?>"
                                    data-workstation-folio
                                    data-folio-slot="<?php echo esc_attr($slot); ?>"
                                    data-folio-slug="<?php echo esc_attr($folio_slug); ?>"
                                    data-folio-sequence="<?php echo esc_attr((string) ($folio['sequence'] ?? 0)); ?>"
                                    data-folio-current="<?php echo $folio_is_current ? 'true' : 'false'; ?>"
                                    data-folio-context="<?php echo $folio_is_context_only ? 'true' : 'false'; ?>"
                                    data-folio-crop="<?php echo esc_attr(wp_json_encode($folio_crop)); ?>"
                                    data-preview-src="<?php echo esc_url((string) ($folio['preview_url'] ?? (string) ($folio['thumbnail_url'] ?? (string) ($folio['image_url'] ?? '')))); ?>"
                                    data-standard-src="<?php echo esc_url((string) ($folio['standard_url'] ?? (string) ($folio['image_url'] ?? ''))); ?>"
                                    data-full-src="<?php echo esc_url((string) ($folio['full_resolution_url'] ?? (string) ($folio['image_url'] ?? ''))); ?>"
                                    data-folio-title="<?php echo esc_attr((string) ($folio['title'] ?? '')); ?>"
                                    data-folio-alt="<?php echo esc_attr($folio_alt); ?>"
                                    data-workstation-overlay="<?php echo esc_attr(wp_json_encode($folio_overlay, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); ?>"
                                >
                                    <?php if ($workstation_is_detail_route) : ?>
                                        <div class="spiralist-manuscript-workstation__folio-head">
                                            <div>
                                                <p class="spiralist-section-tag"><?php echo esc_html((string) ($folio['label'] ?? 'Page')); ?></p>
                                                <h4><?php echo esc_html((string) ($folio['title'] ?? 'Manuscript folio')); ?></h4>
                                            </div>
                                            <div class="spiralist-manuscript-workstation__folio-actions">
                                                <?php if ($workstation_can_edit) : ?>
                                                    <button class="spiralist-manuscript-workstation__folio-action" type="button" data-workstation-reset-crop="<?php echo esc_attr($folio_slug); ?>">Reset Crop</button>
                                                <?php endif; ?>
                                                <a class="spiralist-manuscript-workstation__folio-action" href="<?php echo esc_url((string) ($folio['full_resolution_url'] ?? (string) ($folio['image_url'] ?? ''))); ?>" target="_blank" rel="noopener noreferrer">Open Raw</a>
                                            </div>
                                        </div>
                                    <?php endif; ?>

                                    <div class="spiralist-manuscript-workstation__folio-frame" data-workstation-folio-frame>
                                        <span class="spiralist-manuscript-workstation__folio-chip" aria-hidden="true"><?php echo esc_html((string) ($folio['label'] ?? 'Page')); ?></span>
                                        <img
                                            src="<?php echo esc_url((string) ($folio['preview_url'] ?? (string) ($folio['thumbnail_url'] ?? (string) ($folio['image_url'] ?? '')))); ?>"
                                            alt="<?php echo esc_attr($folio_alt !== '' ? $folio_alt : (string) ($folio['title'] ?? 'Manuscript folio')); ?>"
                                            loading="eager"
                                            decoding="async"
                                            draggable="false"
                                            class="is-preview-source"
                                            <?php if (!empty($folio['width'])) : ?>width="<?php echo esc_attr((string) $folio['width']); ?>"<?php endif; ?>
                                            <?php if (!empty($folio['height'])) : ?>height="<?php echo esc_attr((string) $folio['height']); ?>"<?php endif; ?>
                                            <?php if ($folio_is_current) : ?>fetchpriority="high"<?php endif; ?>
                                            data-workstation-image
                                        />
                                        <?php if ($workstation_can_edit) : ?>
                                            <div class="spiralist-manuscript-workstation__crop-layer" data-workstation-crop-layer>
                                                <button class="spiralist-manuscript-workstation__crop-region" type="button" data-workstation-crop-handle="move" aria-label="<?php echo esc_attr('Move crop region for ' . (string) ($folio['title'] ?? 'the current folio')); ?>"></button>
                                                <?php foreach (['nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w'] as $handle) : ?>
                                                    <button
                                                        class="spiralist-manuscript-workstation__crop-handle spiralist-manuscript-workstation__crop-handle--<?php echo esc_attr($handle); ?>"
                                                        type="button"
                                                        data-workstation-crop-handle="<?php echo esc_attr($handle); ?>"
                                                        aria-label="<?php echo esc_attr('Adjust crop ' . strtoupper($handle) . ' handle for ' . (string) ($folio['title'] ?? 'the current folio')); ?>"
                                                    ></button>
                                                <?php endforeach; ?>
                                            </div>
                                        <?php endif; ?>
                                        <?php if (!empty($folio_overlay)) : ?>
                                            <div
                                                class="spiralist-manuscript-workstation__study-layer"
                                                data-workstation-study-layer
                                                hidden
                                                aria-hidden="true"
                                            ></div>
                                        <?php endif; ?>
                                    </div>

                                    <?php if ($workstation_is_detail_route) : ?>
                                        <figcaption class="spiralist-manuscript-stage-panel__caption spiralist-muted">
                                            <?php echo esc_html((string) ($folio['caption'] ?? '')); ?>
                                        </figcaption>