Virtual Pages - Source Excerpt 75
Summary
This source excerpt preserves a bounded section of 2IA.org/wp-content/themes/twoia-intelligence/inc/virtual-pages.php so readers can inspect the evidence without opening the full source file.
**Source path:** 2IA.org/wp-content/themes/twoia-intelligence/inc/virtual-pages.php
'label' => __( 'Error origin', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: dossier title. */
__( 'For %s, look for the first place the mistake entered: bad match, stale record, copied note, vendor feed, weak signal, overbroad rule, misunderstood context, translation issue, or automated confidence score.', 'two-identities-anonymous' ),
$title
),
),
array(
'label' => __( 'Propagation trail', 'two-identities-anonymous' ),
'text' => __( 'Pull records showing where the error traveled next: database export, watchlist update, case note, benefits file, school record, platform action, agency referral, or vendor-to-agency feed.', 'two-identities-anonymous' ),
),
array(
'label' => __( 'Repair evidence', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: evidence source class. */
__( 'Use %s to show the claim, then ask for correction receipts, deletion confirmation, appeal outcomes, downstream notice, and a record of who was told the bad data changed.', 'two-identities-anonymous' ),
lcfirst( $first_record )
),
),
array(
'label' => __( 'Damage check', 'two-identities-anonymous' ),
'text' => __( 'A false-positive page watches for consequences that outlive the original mistake: denial, delay, scrutiny, stigma, account loss, escalated review, or copied suspicion that no one owns anymore.', 'two-identities-anonymous' ),
),
),
'research-archive' => array(
array(
'label' => __( 'Disposition note', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: dossier title. */
__( 'For %s, keep the disposition note: what came in, what public page it affects, whether it became source memory, whether it was deferred, and what would make it publishable later.', 'two-identities-anonymous' ),
$title
),
),
array(
'label' => __( 'Long-memory path', 'two-identities-anonymous' ),
'text' => __( 'Preserve the route path, source class, review state, correction state, file name, date checked, and reason the material belongs in public copy, long memory, or neither.', 'two-identities-anonymous' ),
),
array(
'label' => __( 'Source review', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: evidence source class. */
__( 'Start with %s then record whether it confirms, duplicates, disputes, narrows, updates, or merely contextualizes the existing page.', 'two-identities-anonymous' ),
lcfirst( $first_record )
),
),
array(
'label' => __( 'Next work', 'two-identities-anonymous' ),
'text' => __( 'The archive should leave the next reviewer with an action: publish, correct, request records, cite as background, merge with another route, hold for review, or keep out of public view.', 'two-identities-anonymous' ),
),
),
'organizations' => array(
array(
'label' => __( 'Official identity', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: dossier title. */
__( 'For %s, find the official organization page, legal entity clue, current program page, jurisdiction statement, and public contact route before treating the entry as usable help.', 'two-identities-anonymous' ),
$title
),
),
array(
'label' => __( 'Role classification', 'two-identities-anonymous' ),
'text' => __( 'Classify the entry as litigation, policy, records platform, investigative lab, AI governance, safety evaluation, digital security, internet freedom, local coalition, historical context, or high-risk context.', 'two-identities-anonymous' ),
),
array(
'label' => __( 'Verification state', 'two-identities-anonymous' ),
'text' => __( 'Use the official identity source, then mark the entry verified, candidate-to-verify, stale, historical, controversial, duplicate, or needs records.', 'two-identities-anonymous' ),
),
array(
'label' => __( 'Correction handle', 'two-identities-anonymous' ),
'text' => __( 'Record where a reader or organization can correct a wrong name, closed program, bad contact route, mistaken affiliation, service limitation, or overbroad claim.', 'two-identities-anonymous' ),
),
),
'support' => array(
array(
'label' => __( 'Support proof', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: dossier title. */
__( 'For %s, collect proof that support improves public work: new pages, better route maps, source review, correction handling, accessibility fixes, records guides, and clearer external references.', 'two-identities-anonymous' ),
$title
),
),
array(
'label' => __( 'Data flow', 'two-identities-anonymous' ),
'text' => __( 'For donation, newsletter, volunteer, or campaign tools, list the data collected, the processor, analytics behavior, retention period, deletion route, and whether any tracking contradicts the site promise.', 'two-identities-anonymous' ),
),
array(
'label' => __( 'Independence check', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: evidence source class. */
__( 'Use %s to show the public value, then ask whether funder pressure, fake urgency, secret-access promises, or growth tooling would bend the work away from civil liberties.', 'two-identities-anonymous' ),
lcfirst( $first_record )
),
),
array(
'label' => __( 'Low-risk help', 'two-identities-anonymous' ),
'text' => __( 'Useful support should include reading, sharing, accessibility review, translation, donation, source review, and public-records tracking without asking supporters to investigate private people.', 'two-identities-anonymous' ),
),
),
'about' => array(
array(
'label' => __( 'Independence proof', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: dossier title. */
__( 'For %s, pull the statements that prove scope: no government affiliation, no law-enforcement role, no platform-enforcement power, no secret access, and no claim of authority beyond public records and careful method.', 'two-identities-anonymous' ),
$title
),
),
array(
'label' => __( 'Public-interest scope', 'two-identities-anonymous' ),
'text' => __( 'Look for the concrete work the page promises: surveillance systems, identity, AI harm, false positives, public records, anonymous speech, corrections, support standards, and civil-liberties analysis.', 'two-identities-anonymous' ),
),
array(
'label' => __( 'Voice test', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: %s: evidence source class. */
__( 'Use %s to keep direct language answerable. The voice can be sharp when it names a real power relationship, but it should not outrun evidence, correction, or minimization.', 'two-identities-anonymous' ),
lcfirst( $first_record )
),
),
array(
'label' => __( 'Trust route', 'two-identities-anonymous' ),
'text' => __( 'A strong About detail page sends readers to methodology, corrections, public records, privacy, issue routes, and support standards so the project can be checked instead of merely believed.', 'two-identities-anonymous' ),
),
),
);
$items = $route_targets[ $parent_slug ] ?? array(
array(
'label' => __( 'Primary record', 'two-identities-anonymous' ),
'text' => sprintf(
/* translators: 1: dossier title, 2: parent title. */
__( 'For %1$s, start with the record that makes the %2$s claim inspectable: %3$s', 'two-identities-anonymous' ),
$title,
$parent_title,
$first_record
),
),
array(
'label' => __( 'Corroboration', 'two-identities-anonymous' ),
'text' => $second_record,
),
array(
'label' => __( 'Action record', 'two-identities-anonymous' ),
'text' => $first_action,
),
array(
'label' => __( 'Correction question', 'two-identities-anonymous' ),
'text' => $first_question,
),
);
return $items;
}
/**
* Return route-specific notes for reading the records behind a detail page.
*
* @param array $page Section-backed child route definition.
* @param array $section Section definition.
* @param array $dossier Dossier payload.
* @return array
*/
function twoia_get_virtual_dossier_record_reading_notes( $page, $section, $dossier ) {
$title = isset( $section['title'] ) ? wp_strip_all_tags( $section['title'] ) : $page['title'];
$parent_slug = isset( $page['parent_slug'] ) ? sanitize_title( $page['parent_slug'] ) : '';
$parent_title = isset( $page['parent_page']['title'] ) ? wp_strip_all_tags( $page['parent_page']['title'] ) : '';
$evidence = twoia_virtual_text_items( $dossier['evidence'] ?? array() );
$first_evidence = ! empty( $evidence ) ? $evidence[0] : __( 'the first public record, policy, source note, or correction trail behind the claim.', 'two-identities-anonymous' );