<?php
/*
 * AIWK Common UI Config
 * 위치: /var/www/html/aiwk/aiwk_ui_config.php
 * 목적: wallet, admin, tools 등 여러 폴더에서 공통 header/footer를 재사용하기 위한 UI 설정.
 * PHP 5 호환을 위해 타입 힌트와 최신 문법을 피한다.
 */

if (!defined('AIWK_ROOT_PATH')) {
    define('AIWK_ROOT_PATH', dirname(__FILE__));
}

/* 사이트 경로. 서버 환경이 다르면 include 전에 define 해서 덮어쓸 수 있다. */
if (!defined('AIWK_BASE_URL')) {
    define('AIWK_BASE_URL', '/aiwk');
}

/* CDN 버전은 MVP 안정성을 위해 고정한다. 최신화는 ai_read.me에 기록 후 변경한다. */
if (!defined('AIWK_BS53_CSS')) {
    define('AIWK_BS53_CSS', 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css');
}
if (!defined('AIWK_BS53_JS')) {
    define('AIWK_BS53_JS', 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js');
}

/* Tailwind는 MVP/개발 커스터마이징용 CDN. 운영 빌드에서는 tw- prefix로 빌드한 CSS 파일을 권장한다. */
if (!defined('AIWK_TAILWIND_CDN')) {
    define('AIWK_TAILWIND_CDN', 'https://cdn.tailwindcss.com');
}

$GLOBALS['AIWK_UI_DEFAULTS'] = array(
    'title' => 'AIWK',
    'theme' => 'light',
    'template' => 'bs53',
    'use_tailwind' => true,
    'fluid' => false,
    'body_class' => 'aiwk-body',
    'active_menu' => '',
    'show_navbar' => true
);

function aiwk_ui_opt($key, $opts)
{
    if (is_array($opts) && isset($opts[$key])) return $opts[$key];
    if (isset($GLOBALS['AIWK_UI_DEFAULTS'][$key])) return $GLOBALS['AIWK_UI_DEFAULTS'][$key];
    return null;
}

function aiwk_h($str)
{
    return htmlspecialchars((string)$str, ENT_QUOTES, 'UTF-8');
}

function aiwk_url($path)
{
    $path = (string)$path;
    if ($path === '') return AIWK_BASE_URL;
    if (strpos($path, 'http://') === 0 || strpos($path, 'https://') === 0) return $path;
    if ($path[0] !== '/') $path = '/' . $path;
    return AIWK_BASE_URL . $path;
}
