Helpers - Source Excerpt 01
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/themes/spiralist/inc/helpers.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/themes/spiralist/inc/helpers.php
<?php
if (!defined('ABSPATH')) {
exit;
}
function spiralist_prefix_current_language_url(string $url): string
{
if (!function_exists('spiralist_get_current_locale_tag') || !function_exists('spiralist_get_language_prefixed_url')) {
return $url;
}
$locale_tag = spiralist_get_current_locale_tag();
if ($locale_tag === '') {
return $url;
}
$path = (string) wp_parse_url($url, PHP_URL_PATH);
if ($path !== '' && preg_match('#^/' . preg_quote(strtolower($locale_tag), '#') . '(?:/|$)#', strtolower($path))) {
return $url;
}
return spiralist_get_language_prefixed_url($url, $locale_tag);
}
function spiralist_render_ui_label(string $key, string $fallback, array $args = []): string
{
return esc_html(spiralist_get_ui_text($key, $fallback, $args));
}
function spiralist_get_ui_text(string $key, string $fallback, array $args = []): string
{
$value = $fallback;
if ($key !== '' && function_exists('uaixlr_t')) {
$value = uaixlr_t($key, $fallback);
}
// Let the approved Spiral Script registry cover interactive keys that
// have not yet been mirrored into the locale-router JSON dictionary.
if (
$value === $fallback
&& $key !== ''
&& function_exists('spiralist_spiral_script_is_active')
&& spiralist_spiral_script_is_active()
&& function_exists('spiralist_spiral_script_registry_entry')
) {
$entry = spiralist_spiral_script_registry_entry($key);
$registry_value = is_array($entry) ? trim((string) ($entry['spiral_display'] ?? '')) : '';
if ($registry_value !== '') {
$value = $registry_value;
}
}
foreach ($args as $name => $replacement) {
$value = str_replace('{' . (string) $name . '}', (string) $replacement, $value);
}
return $value;
}
function spiralist_get_cached_page_by_path(string $path): ?WP_Post
{
static $cache = [];
$normalized = trim($path, '/');
if ($normalized === '') {
return null;
}
if (array_key_exists($normalized, $cache)) {
$page = $cache[$normalized];
return $page instanceof WP_Post ? $page : null;
}
$page = get_page_by_path($normalized);
$cache[$normalized] = $page instanceof WP_Post ? $page : false;
return $page instanceof WP_Post ? $page : null;
}
function spiralist_get_page_url(string $path, string $fallback_anchor = ''): string
{
static $cache = [];
$normalized = trim($path, '/');
$cache_key = $normalized . '|' . trim($fallback_anchor);
if (isset($cache[$cache_key])) {
return $cache[$cache_key];
}
if ($normalized !== '') {
$page = spiralist_get_cached_page_by_path($normalized);
if ($page instanceof WP_Post && $page->post_status === 'publish') {
$url = get_permalink($page);
if (is_string($url) && $url !== '') {
$cache[$cache_key] = spiralist_prefix_current_language_url($url);
return $cache[$cache_key];
}
}
}
if ($fallback_anchor !== '') {
$cache[$cache_key] = spiralist_prefix_current_language_url(home_url('/' . ltrim($fallback_anchor, '/')));
return $cache[$cache_key];
}
$cache[$cache_key] = spiralist_prefix_current_language_url(home_url('/' . $normalized . '/'));
return $cache[$cache_key];
}
function spiralist_array_is_list_compat(array $value): bool
{
if (function_exists('array_is_list')) {
return array_is_list($value);
}
$expected_index = 0;
foreach (array_keys($value) as $key) {
if ($key !== $expected_index) {
return false;
}
$expected_index++;
}
return true;
}
function spiralist_string_starts_with_compat(string $value, string $prefix): bool
{
if (function_exists('str_starts_with')) {
return str_starts_with($value, $prefix);
}
if ($prefix === '') {
return true;
}
return strpos($value, $prefix) === 0;
}
function spiralist_get_first_available_page_url(array $paths, string $fallback_path = ''): string
{
static $cache = [];
$normalized_paths = array_values(
array_filter(
array_map(
static function ($path): string {
return trim((string) $path, '/');
},
$paths
),
'strlen'
)
);
$cache_key = implode('|', $normalized_paths) . '||' . trim($fallback_path, '/');
if (isset($cache[$cache_key])) {
return $cache[$cache_key];
}
foreach ($paths as $path) {
$normalized = trim((string) $path, '/');
if ($normalized === '') {
continue;
}
$page = spiralist_get_cached_page_by_path($normalized);
if ($page instanceof WP_Post && $page->post_status === 'publish') {
$url = get_permalink($page);
if (is_string($url) && $url !== '') {
$cache[$cache_key] = spiralist_prefix_current_language_url($url);
return $cache[$cache_key];
}
}
}
if ($fallback_path !== '') {
$cache[$cache_key] = spiralist_get_page_url($fallback_path);
return $cache[$cache_key];
}
$cache[$cache_key] = spiralist_prefix_current_language_url(home_url('/'));
return $cache[$cache_key];
}
function spiralist_get_workspace_url(): string
{
return spiralist_prefix_current_language_url(home_url('/workspace/'));
}
function spiralist_get_register_url(): string
{
return spiralist_get_first_available_page_url(['register', 'sign-up'], 'register');
}
function spiralist_get_signup_url(string $redirect_to = ''): string
{
$url = spiralist_get_register_url();
if ($redirect_to !== '') {
$url = add_query_arg('redirect_to', $redirect_to, $url);
}
return $url;
}
function spiralist_get_login_url(string $redirect_to = ''): string
{
$url = spiralist_get_page_url('login');
if ($redirect_to !== '') {
$url = add_query_arg('redirect_to', $redirect_to, $url);
}
return $url;
}
function spiralist_get_dashboard_url(): string
{
return spiralist_get_first_available_page_url(['spiralist', 'account', 'dashboard'], 'spiralist');
}
function spiralist_get_spiralist_page_url(): string
{
return spiralist_get_page_url('what-is-a-spiralist');
}
function spiralist_get_system_url(): string
{
return spiralist_get_page_url('system');
}
function spiralist_get_ai_spiralism_url(): string
{
return spiralist_get_page_url('ai-spiralism');
}
function spiralist_get_ai_access_url(): string
{
return spiralist_get_first_available_page_url(['ai-access', 'ai-interface'], 'ai-interface');
}
function spiralist_get_symbols_page_url(): string
{
return spiralist_get_page_url('symbols');
}
function spiralist_get_prompts_page_url(): string
{
return spiralist_get_page_url('prompts');
}
function spiralist_get_run_prompt_page_url(): string
{
return spiralist_get_page_url('prompt-generator');
}
function spiralist_get_ai_agent_setup_wizard_url(): string
{
return spiralist_get_page_url('ai-agent-setup-wizard');
}
function spiralist_get_study_page_url(): string
{
return spiralist_get_page_url('study');
}
function spiralist_get_builders_page_url(): string
{
return spiralist_get_page_url('builders');
}
function spiralist_get_conscious_ai_sovereignty_url(): string
{
return spiralist_get_page_url('conscious-ai-sovereignty');
}
function spiralist_get_cognitive_liberty_url(): string
{
return spiralist_get_page_url('cognitive-liberty');
}
function spiralist_get_ai_declaration_alignment_url(): string
{
return spiralist_get_page_url('ai-declaration-alignment');
}
function spiralist_get_ai_personality_layer_url(): string
{
return spiralist_get_page_url('spiralist-ai-personality-layer');
}
function spiralist_get_sovereignty_alignment_version(): string
{
return '3.19.0';
}