Skip to content
wiki.fftac.org

Frontend - Source Excerpt 02

Back to Frontend

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/ns12-manuscript/includes/frontend.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/plugins/ns12-manuscript/includes/frontend.php

return spiralist_book_pages_is_surface_page('manuscript');
}

function spiralist_book_pages_is_symbols_surface(): bool
{
    return spiralist_book_pages_is_surface_page('symbols');
}

function spiralist_book_pages_is_prompts_surface(): bool
{
    return spiralist_book_pages_should_manage_prompt_surfaces()
        && spiralist_book_pages_is_surface_page('prompts');
}

function spiralist_book_pages_is_prompt_record_surface(): bool
{
    return spiralist_book_pages_should_manage_prompt_surfaces()
        && sanitize_title((string) get_query_var('spiralist_book_pages_prompt_slug', '')) !== '';
}

function spiralist_book_pages_is_book_shell_surface(): bool
{
    return spiralist_book_pages_is_manuscript_surface()
        || spiralist_book_pages_is_symbols_surface()
        || spiralist_book_pages_is_prompts_surface()
        || spiralist_book_pages_is_prompt_record_surface();
}

function spiralist_book_pages_get_shell_ui_text(): array
{
    $ui_text = static function (string $key, string $fallback): string {
        return function_exists('spiralist_get_ui_text')
            ? spiralist_get_ui_text($key, $fallback)
            : $fallback;
    };

    return [
        'symbolsPromptLoading' => $ui_text('page.symbols.prompts.loading', 'Loading prompt references...'),
        'symbolsPromptUnavailable' => $ui_text('page.symbols.prompts.unavailable', 'Prompt references unavailable.'),
        'symbolsPromptEmpty' => $ui_text('page.symbols.prompts.empty', 'No related prompts yet.'),
        'symbolsPromptEmptyForSymbol' => $ui_text('page.symbols.prompts.empty_for_symbol', 'No related prompts for this symbol yet.'),
        'symbolsPromptFallback' => $ui_text('page.symbols.prompts.fallback', 'Prompt'),
        'symbolsPromptReferenceFallback' => $ui_text('page.symbols.prompts.reference_fallback', 'Structured prompt reference.'),
        'symbolsPromptLoadError' => $ui_text('page.symbols.prompts.load_error', 'Unable to load prompt references.'),
        'symbolsVisibleCount' => $ui_text('page.symbols.state.visible', '{count} symbols visible.'),
        'symbolsVisibleCountSingular' => $ui_text('page.symbols.state.visible_singular', '{count} symbol visible.'),
        'symbolsLayerFallback' => $ui_text('page.symbols.value.reference', 'Reference'),
        'symbolsCategoryFallback' => $ui_text('page.symbols.value.uncategorized', 'Uncategorized'),
        'symbolsAxiomLinksEmpty' => $ui_text('page.symbols.axioms.empty', 'No axiom links declared.'),
        'symbolsAxiomFallback' => $ui_text('page.symbols.axioms.fallback', 'Axiom'),
        'symbolsDirectionInput' => $ui_text('page.symbols.transformations.input', 'Input'),
        'symbolsDirectionOutput' => $ui_text('page.symbols.transformations.output', 'Output'),
        'symbolsTransformationFallback' => $ui_text('page.symbols.transformations.fallback', 'Transformation'),
        'symbolsTransformationsEmpty' => $ui_text('page.symbols.transformations.empty', 'No transformation links declared.'),
        'symbolsCrosswalkAnchor' => $ui_text('page.symbols.crosswalk.anchor', 'View manuscript anchor'),
        'symbolsCrosswalkSymbols' => $ui_text('page.symbols.crosswalk.symbols', 'Open in symbols explorer'),
        'symbolsCrosswalkPrompts' => $ui_text('page.symbols.crosswalk.prompts', 'Search prompts'),
        'symbolsCrosswalkRelatedPrompts' => $ui_text('page.symbols.crosswalk.related_prompts', 'Search related prompts'),
        'symbolsCrosswalkSystem' => $ui_text('page.symbols.crosswalk.system', 'System concepts'),
        'symbolsCrosswalkRelatedSystem' => $ui_text('page.symbols.crosswalk.related_system', 'Open related system surface'),
        'symbolsCrosswalkTransformations' => $ui_text('page.symbols.crosswalk.transformations', 'View transformations'),
        'symbolsCrosswalkEmpty' => $ui_text('page.symbols.crosswalk.empty', 'No crosswalk links available.'),
        'symbolsCrosswalkNodeEmpty' => $ui_text('page.symbols.crosswalk.node_empty', 'No additional crosswalk links for this node.'),
        'symbolsAnchorView' => $ui_text('page.symbols.anchor.view_in_manuscript', 'View in manuscript'),
        'symbolsAnchorEmpty' => $ui_text('page.symbols.anchor.unavailable', 'No manuscript anchor available.'),
        'symbolsAxiomConnectionEmpty' => $ui_text('page.symbols.inspector.axiom_connection.empty', 'No axiom links declared.'),
        'symbolsDerivationEmpty' => $ui_text('page.symbols.inspector.derivation.empty', 'No derivation declared.'),
        'symbolsProvenanceEmpty' => $ui_text('page.symbols.inspector.provenance.empty', 'No provenance declared.'),
        'symbolsRelatedEmpty' => $ui_text('page.symbols.inspector.related_symbols.empty', 'No related symbols declared.'),
        'symbolsTransformationChainEmpty' => $ui_text('page.symbols.inspector.transformation_chain.empty', 'No transformation chain declared.'),
        'manuscriptFieldDatasetError' => $ui_text('page.manuscript.field.dataset_error', 'The symbolic field dataset could not be loaded.'),
        'manuscriptFieldNodesEmpty' => $ui_text('page.manuscript.field.nodes_empty', 'No manuscript nodes are currently available for inspection.'),
        'manuscriptFieldModeStatus' => $ui_text('page.manuscript.field.mode_status', '{mode} mode: {visibleCount} of {totalCount} nodes visible.'),
        'manuscriptFieldRelationsVisible' => $ui_text('page.manuscript.field.relations_visible', 'Relations remain visible.'),
        'manuscriptFieldRelationsHover' => $ui_text('page.manuscript.field.relations_hover', 'Relations appear on hover or selection.'),
        'manuscriptFieldCurrentState' => $ui_text('page.manuscript.field.current_state', 'Current state: {state}.'),
        'manuscriptFieldNextNodes' => $ui_text('page.manuscript.field.next_nodes', 'Next nodes: {nodes}.'),
        'manuscriptFieldHistory' => $ui_text('page.manuscript.field.history', 'History: {history}.'),
        'manuscriptFieldSectionFallback' => $ui_text('page.manuscript.field.section_fallback', 'Section'),
        'manuscriptFieldNodeFallback' => $ui_text('page.manuscript.field.node_fallback', 'Node'),
        'manuscriptFieldRelatedEmpty' => $ui_text('page.manuscript.field.related_empty', 'No related nodes declared.'),
        'manuscriptFieldSummaryEmpty' => $ui_text('page.manuscript.field.summary_empty', 'No summary available for this node.'),
        'manuscriptFieldMeaningEmpty' => $ui_text('page.manuscript.field.meaning_empty', 'No meaning declared.'),
        'manuscriptFieldDefinitionEmpty' => $ui_text('page.manuscript.field.definition_empty', 'No definition declared.'),
        'manuscriptFieldSourceAxiomEmpty' => $ui_text('page.manuscript.field.source_axiom_empty', 'No source axiom declared.'),
        'manuscriptFieldIoNotTransformation' => $ui_text('page.manuscript.field.io_not_transformation', 'This node is not a transformation surface.'),
        'manuscriptFieldPromptsEmpty' => $ui_text('page.manuscript.field.prompts_empty', 'No related prompts for this node yet.'),
        'manuscriptFieldExecutionUnavailable' => $ui_text('page.manuscript.field.execution_unavailable', 'Inspection remains available, but this node is not part of the executable runtime graph.'),
        'manuscriptFieldExecutionFailedStatus' => $ui_text('page.manuscript.field.execution_failed_status', 'Execution failed with {status}.'),
        'manuscriptFieldExecutionFailed' => $ui_text('page.manuscript.field.execution_failed', 'Execution failed.'),
        'manuscriptZoomPanInstructions' => $ui_text('page.manuscript.zoom.pan_instructions', 'Drag or pinch to pan across the page. Use the arrow keys to nudge the view and press 0 to reset.'),
        'copySuccess' => $ui_text('ui.cta.copied', 'Copied'),
        'copyFailed' => $ui_text('ui.cta.copy_failed', 'Copy failed'),
        'uiCopyFallback' => $ui_text('ui.cta.copy', 'Copy'),
        'uiSubmitFallback' => $ui_text('ui.cta.submit', 'Submit'),
        'contributeTypePrompt' => $ui_text('page.contribute.form.type.copy.prompt', 'Prompts are public library records. Symbols and transformations enter the proposal queue first.'),
        'contributeTypeSymbol' => $ui_text('page.contribute.form.type.copy.symbol', 'Symbol proposals stay review-only until they are accepted into the registry.'),
        'contributeTypeTransformation' => $ui_text('page.contribute.form.type.copy.transformation', 'Transformation definitions describe input, output, and chain behavior before publication.'),
        'contributeCanonicalPrompt' => $ui_text('page.contribute.form.canonical.copy.prompt', 'Prompt IDs usually follow `spiralist.prompt.role.title`.'),
        'contributeCanonicalSymbol' => $ui_text('page.contribute.form.canonical.copy.symbol', 'Symbol IDs usually follow `spiral.symbol.title`.'),