Skip to content
wiki.fftac.org

Foundation - Source Excerpt 41

Back to Foundation

Summary

This source excerpt preserves a bounded section of Anti-Christ.org/wp-content/plugins/fftac-foundation-core/inc/foundation.php so readers can inspect the evidence without opening the full source file.

**Source path:** Anti-Christ.org/wp-content/plugins/fftac-foundation-core/inc/foundation.php

* @return WP_REST_Response
 */
function antichrist_engine_foundation_rest_research_fact_check($request = null)
{
    return rest_ensure_response(array_merge(
        array('generated_at' => gmdate(DATE_ATOM)),
        antichrist_engine_foundation_get_research_fact_check_summary()
    ));
}

/**
 * REST callback for the research connection map.
 *
 * @return WP_REST_Response
 */
function antichrist_engine_foundation_rest_research_map($request = null)
{
    return rest_ensure_response(array_merge(
        array('generated_at' => gmdate(DATE_ATOM)),
        antichrist_engine_foundation_get_research_connection_map()
    ));
}

/**
 * REST callback for source-library data.
 *
 * @return WP_REST_Response
 */
function antichrist_engine_foundation_rest_research_sources($request = null)
{
    $items = antichrist_engine_foundation_get_research_api_sources();

    return rest_ensure_response(array(
        'generated_at' => gmdate(DATE_ATOM),
        'count'        => count($items),
        'items'        => $items,
    ));
}

/**
 * REST callback for publication series data.
 *
 * @return WP_REST_Response
 */
function antichrist_engine_foundation_rest_research_series($request = null)
{
    $items = antichrist_engine_foundation_get_research_api_series();

    return rest_ensure_response(array(
        'generated_at' => gmdate(DATE_ATOM),
        'count'        => count($items),
        'items'        => $items,
    ));
}

/**
 * REST callback for the public review-notice register.
 *
 * @return WP_REST_Response
 */
function antichrist_engine_foundation_rest_governance_review_notices($request = null)
{
    $items = antichrist_engine_foundation_get_review_notice_register();

    return rest_ensure_response(array(
        'generated_at' => gmdate(DATE_ATOM),
        'count'        => count($items),
        'items'        => $items,
    ));
}

/**
 * Registers the public read-only research API routes.
 *
 * @return void
 */
function antichrist_engine_foundation_register_research_api_routes()
{
    $namespace = antichrist_engine_foundation_get_research_api_namespace();

    register_rest_route($namespace, '/research', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_overview',
        'permission_callback' => '__return_true',
    ));

    register_rest_route($namespace, '/research/export', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_export',
        'permission_callback' => '__return_true',
    ));

    register_rest_route($namespace, '/research/claims', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_claims',
        'permission_callback' => '__return_true',
        'args'                => array(
            'category' => array(
                'description'       => __('Optional claim category slug.', 'antichrist-engine'),
                'type'              => 'string',
                'sanitize_callback' => 'sanitize_key',
                'validate_callback' => 'antichrist_engine_foundation_rest_validate_claim_category',
            ),
            'q'        => array(
                'description'       => __('Optional short search term.', 'antichrist-engine'),
                'type'              => 'string',
                'sanitize_callback' => 'sanitize_text_field',
                'validate_callback' => 'antichrist_engine_foundation_rest_validate_short_query',
            ),
        ),
    ));

    register_rest_route($namespace, '/research/timeline', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_timeline',
        'permission_callback' => '__return_true',
        'args'                => array(
            'category' => array(
                'description'       => __('Optional timeline category slug.', 'antichrist-engine'),
                'type'              => 'string',
                'sanitize_callback' => 'sanitize_key',
                'validate_callback' => 'antichrist_engine_foundation_rest_validate_timeline_category',
            ),
        ),
    ));

    register_rest_route($namespace, '/research/projections', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_projections',
        'permission_callback' => '__return_true',
        'args'                => array(
            'category' => array(
                'description'       => __('Optional projection-ledger category slug.', 'antichrist-engine'),
                'type'              => 'string',
                'sanitize_callback' => 'sanitize_key',
                'validate_callback' => 'antichrist_engine_foundation_rest_validate_claim_category',
            ),
            'q'        => array(
                'description'       => __('Optional short projection-ledger search term.', 'antichrist-engine'),
                'type'              => 'string',
                'sanitize_callback' => 'sanitize_text_field',
                'validate_callback' => 'antichrist_engine_foundation_rest_validate_short_query',
            ),
        ),
    ));

    register_rest_route($namespace, '/research/frameworks', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_frameworks',
        'permission_callback' => '__return_true',
    ));

    register_rest_route($namespace, '/research/briefings', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_briefings',
        'permission_callback' => '__return_true',
    ));

    register_rest_route($namespace, '/research/fact-check', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_fact_check',
        'permission_callback' => '__return_true',
    ));

    register_rest_route($namespace, '/research/map', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_map',
        'permission_callback' => '__return_true',
    ));

    register_rest_route($namespace, '/research/sources', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_sources',
        'permission_callback' => '__return_true',
    ));

    register_rest_route($namespace, '/research/series', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_research_series',
        'permission_callback' => '__return_true',
    ));
}
add_action('rest_api_init', 'antichrist_engine_foundation_register_research_api_routes');

/**
 * Registers public governance routes that complement the research API.
 *
 * @return void
 */
function antichrist_engine_foundation_register_governance_api_routes()
{
    $namespace = antichrist_engine_foundation_get_research_api_namespace();

    register_rest_route($namespace, '/governance/review-notices', array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'antichrist_engine_foundation_rest_governance_review_notices',
        'permission_callback' => '__return_true',
    ));
}
add_action('rest_api_init', 'antichrist_engine_foundation_register_governance_api_routes');

/**
 * Gets the journal URL.
 *
 * @return string
 */
function antichrist_engine_foundation_get_journal_url()
{
    return antichrist_engine_foundation_get_page_url('journal');
}

/**
 * Adds body classes for foundation pages.
 *
 * @param array<int, string> $classes Existing body classes.
 * @return array<int, string>
 */
function antichrist_engine_foundation_body_classes($classes)
{
    if (!is_page()) {
        return $classes;
    }

    foreach (antichrist_engine_foundation_page_definitions() as $key => $definition) {
        $page_id = antichrist_engine_foundation_get_page_id($key);

        if ($page_id && is_page($page_id)) {
            $classes[] = 'foundation-page';
            $classes[] = 'foundation-page-' . sanitize_html_class($key);
            break;
        }
    }

    return $classes;
}
add_filter('body_class', 'antichrist_engine_foundation_body_classes', 20);