Virtual Pages - Source Excerpt 60
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
/**
* Return verification links for a source-controlled dossier page.
*
* @param array $page Section-backed child route definition.
* @param array $section Section definition.
* @return array
*/
function twoia_get_virtual_dossier_external_resources( $page, $section ) {
$parent_slug = isset( $page['parent_slug'] ) ? sanitize_title( $page['parent_slug'] ) : '';
$brief_slug = isset( $page['brief_slug'] ) ? sanitize_title( $page['brief_slug'] ) : '';
$title = isset( $section['title'] ) ? wp_strip_all_tags( $section['title'] ) : ( $page['title'] ?? '' );
$title_slug = isset( $section['title'] ) ? sanitize_title( $section['title'] ) : '';
$topic_slug = trim( $parent_slug . ' ' . $brief_slug . ' ' . $title_slug );
return twoia_powerpack_targeted_external_resources( $parent_slug, $topic_slug, $title, $brief_slug );
}
/**
* Render external verification links for a dossier.
*
* @param array $resources External resources.
*/
function twoia_render_virtual_dossier_external_resources( $resources ) {
if ( empty( $resources ) || ! is_array( $resources ) ) {
return;
}
?>
<section id="twoia-verify-further" class="twoia-brief-section twoia-brief-section--sources">
<h2><?php esc_html_e( 'Verify And Read Further', 'two-identities-anonymous' ); ?></h2>
<p><?php esc_html_e( 'These are direct references, not off-site search results. They point to official organizations, public records references, legal sources, civil-liberties material, or technical governance pages worth reading on their own.', 'two-identities-anonymous' ); ?></p>
<ul class="twoia-source-links">
<?php foreach ( $resources as $resource ) : ?>
<li>
<a href="<?php echo esc_url( $resource['url'] ); ?>" rel="noopener noreferrer" target="_blank"><?php echo esc_html( $resource['title'] ); ?></a>
<?php if ( ! empty( $resource['note'] ) ) : ?>
<span><?php echo esc_html( $resource['note'] ); ?></span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
</section>
<?php
}
/**
* Render an overview layer on index pages before the dossier grid.
*
* @param array $page Page definition.
*/
function twoia_render_virtual_page_overview_sections( $page ) {
if ( empty( $page['overview_sections'] ) || ! is_array( $page['overview_sections'] ) ) {
return;
}
?>
<aside class="twoia-route-help" aria-labelledby="twoia-route-help-<?php echo esc_attr( $page['slug'] ); ?>">
<p><a href="<?php echo esc_url( home_url( '/methodology/' ) ); ?>"><?php esc_html_e( 'Verify the route', 'two-identities-anonymous' ); ?></a></p>
<details>
<summary id="twoia-route-help-<?php echo esc_attr( $page['slug'] ); ?>"><?php esc_html_e( 'What this route gives you', 'two-identities-anonymous' ); ?></summary>
<?php foreach ( $page['overview_sections'] as $overview ) : ?>
<section class="twoia-route-help__item">
<h3><?php echo esc_html( $overview['title'] ?? '' ); ?></h3>
<?php twoia_render_virtual_dossier_paragraphs( $overview['body'] ?? array() ); ?>
</section>
<?php endforeach; ?>
</details>
</aside>
<?php
}
/**
* Return public-safe organization starter sets for the directory page.
*
* @return array
*/
function twoia_organization_directory_groups() {
return array(
array(
'title' => __( 'Civil Liberties And Records', 'two-identities-anonymous' ),
'why' => __( 'Use this set when the reader needs rights litigation, speech and privacy policy, open-records help, court accountability, protest support, or correction pressure.', 'two-identities-anonymous' ),
'entries' => array(
array(
'name' => __( 'ACLU affiliates', 'two-identities-anonymous' ),
'role' => __( 'State and national civil-liberties litigation, advocacy, and public education.', 'two-identities-anonymous' ),
'verification' => __( 'Verify the state affiliate, issue program, intake limits, and current contact route.', 'two-identities-anonymous' ),
),
array(
'name' => __( 'Reporters Committee for Freedom of the Press', 'two-identities-anonymous' ),
'role' => __( 'Press-freedom and open-government legal resources.', 'two-identities-anonymous' ),
'verification' => __( 'Use for records-law context and journalist-facing resources; verify jurisdiction before relying on advice.', 'two-identities-anonymous' ),
),
array(
'name' => __( 'MuckRock', 'two-identities-anonymous' ),
'role' => __( 'Public-records request platform, released-document library, and request practice examples.', 'two-identities-anonymous' ),
'verification' => __( 'Check request dates, agency scope, release status, and whether the document is complete or partial.', 'two-identities-anonymous' ),
),
array(
'name' => __( 'National Security Archive', 'two-identities-anonymous' ),
'role' => __( 'Declassified and public-records research on national security, secrecy, and public accountability.', 'two-identities-anonymous' ),
'verification' => __( 'Treat archived documents as strong historical records and check whether newer records supersede them.', 'two-identities-anonymous' ),
),
),
),
array(
'title' => __( 'OSINT, Journalism, And Human Rights', 'two-identities-anonymous' ),
'why' => __( 'Use this set when a public claim needs evidence preservation, geospatial or media verification, public-source context, war-crimes documentation, corruption reporting, or collaborative investigation.', 'two-identities-anonymous' ),
'entries' => array(
array(
'name' => __( 'Bellingcat', 'two-identities-anonymous' ),
'role' => __( 'Public-source investigations, verification explainers, and training-oriented journalism.', 'two-identities-anonymous' ),
'verification' => __( 'Use published methodology and source notes; do not copy investigative tactics into private targeting.', 'two-identities-anonymous' ),
),
array(
'name' => __( 'Global Investigative Journalism Network', 'two-identities-anonymous' ),
'role' => __( 'Journalism resources, global network knowledge, and investigation guides.', 'two-identities-anonymous' ),
'verification' => __( 'Check guide dates and keep operational details within lawful, ethical, public-interest use.', 'two-identities-anonymous' ),
),
array(
'name' => __( 'Mnemonic and WITNESS', 'two-identities-anonymous' ),
'role' => __( 'Evidence preservation, video verification, and human-rights documentation support.', 'two-identities-anonymous' ),
'verification' => __( 'Use for preservation and authenticity context; minimize victims, witnesses, and vulnerable people.', 'two-identities-anonymous' ),
),
array(
'name' => __( 'OCCRP, ICIJ, ProPublica, and Airwars', 'two-identities-anonymous' ),
'role' => __( 'Investigative journalism, cross-border reporting, nonprofit accountability work, and civilian-harm tracking.', 'two-identities-anonymous' ),
'verification' => __( 'Treat as reporting and research leads unless the underlying primary record is available.', 'two-identities-anonymous' ),
),
),
),
array(
'title' => __( 'AI Governance And Safety', 'two-identities-anonymous' ),
'why' => __( 'Use this set when the reader needs model-governance context, safety evaluation, public standards, policy research, open infrastructure, or a way to test vendor claims against independent frameworks.', 'two-identities-anonymous' ),
'entries' => array(
array(
'name' => __( 'NIST CAISI and NIST AI Risk Management Framework', 'two-identities-anonymous' ),
'role' => __( 'Public standards, risk-management language, and government-facing AI accountability context.', 'two-identities-anonymous' ),
'verification' => __( 'Check the latest NIST page and cite the specific framework, profile, or publication date.', 'two-identities-anonymous' ),
),
array(
'name' => __( 'METR, MLCommons, and Partnership on AI', 'two-identities-anonymous' ),
'role' => __( 'Evaluation, benchmarking, governance convening, and shared AI-risk vocabulary.', 'two-identities-anonymous' ),
'verification' => __( 'Separate evaluation claims from policy positions and verify the specific program being cited.', 'two-identities-anonymous' ),
),
array(
'name' => __( 'OpenAI, Anthropic, Google DeepMind, Ai2, and Hugging Face', 'two-identities-anonymous' ),
'role' => __( 'AI labs, research organizations, model builders, and infrastructure communities that appear in public AI-governance debates.', 'two-identities-anonymous' ),
'verification' => __( 'Classify builders separately from watchdogs; use official pages for identity and independent sources for accountability claims.', 'two-identities-anonymous' ),
),
array(