<?php
if ( !defined( 'MEDIAWIKI' ) ) {
    exit;
}

## --- ФИКС ПРОТОКОЛА ---
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
    $_SERVER['HTTPS'] = 'on';
}

## --- ОСНОВНОЕ ---
$wgSitename = "Протест.wiki";
$wgLanguageCode = "ru";
$wgLocaltimezone = "UTC";

## --- ПУТИ ---
$wgServer = "https://protest.wiki";
$wgScriptPath = "";
$wgArticlePath = "/wiki/$1";
$wgScriptExtension = ".php";
$wgResourceBasePath = $wgScriptPath;

## --- БАЗА ДАННЫХ ---
$wgDBtype = "mysql";
$wgDBserver = "host.docker.internal";
$wgDBname = "mediawiki";
$wgDBuser = "wikiuser";
$wgDBpassword = "Postpozitivizm12";
$wgDBprefix = "";
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";

## --- КЛЮЧИ И ПРАВА ---
$wgSecretKey = "3cb5f0c120a5e3aadbe9e7e030f9a3f521b4f0422e572bb5e17a841b9e27e957";
$wgAuthenticationTokenVersion = "1";
$wgUpgradeKey = "7c6dc63e645d8ce5";

## Запретить анонимам просмотр страниц (только авторизованные пользователи)
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;

## Разрешить авторизованным пользователям читать и редактировать
$wgGroupPermissions['user']['read'] = true;
$wgGroupPermissions['user']['edit'] = true;

## Разрешить доступ к специальным страницам для входа
$wgWhitelistRead = [
    'Special:UserLogin',
    'Special:PasswordReset',
    'Special:ChangePassword',
    'MediaWiki:Common.css',
    'MediaWiki:Common.js',
    'MediaWiki:Vector.css',
    '-',
];

## --- СКИНЫ ---
wfLoadSkin( 'Vector' );
wfLoadSkin( 'Protest' );
$wgDefaultSkin = 'protest';
$wgVectorDefaultSkinVersion = 1;

## --- ЗАГРУЗКА ФАЙЛОВ ---
$wgEnableUploads = true;
$wgUseInstantCommons = false;
$wgMaxUploadSize = 10 * 1024 * 1024; // 10 MB
$wgUploadDirectory = "/var/www/html/images";
$wgUploadPath = "/images";

## --- РАСШИРЕНИЯ ---
wfLoadExtension( 'ParserFunctions' );
$wgPFEnableStringFunctions = true;

wfLoadExtension( 'Scribunto' );
$wgScribuntoDefaultEngine = 'luastandalone';

wfLoadExtension( 'TemplateData' );

wfLoadExtension( 'VisualEditor' );

## --- НАСТРОЙКА PARSOID ---
$wgVirtualRestConfig['modules']['parsoid'] = [
    'url' => $wgServer . '/rest.php',
    'domain' => 'protest.wiki',
    'forwardCookies' => true,
    'HTTPProxy' => null,
    'timeout' => 300,
];

$wgVisualEditorParsoidAutoConfig = true;
$wgInternalServer = $wgServer;

// Разрешить REST API доступ для всех (необходимо для Parsoid)
$wgGroupPermissions['*']['read-api'] = true;
$wgAssumeProxiesUseSSL = false;
$wgForceHTTPS = false;

if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
}

## --- СЕССИИ ---
$wgMainCacheType = CACHE_NONE;
$wgSessionCacheType = CACHE_DB;
$wgSessionName = "protest_v9_stable";
$wgCookieDomain = "protest.wiki";
$wgCookieSecure = true;

## --- ЛОГИ ---
$wgDebugLogFile = '/tmp/mediawiki-debug.log';
$wgDebugLogGroups['http'] = '/tmp/mediawiki-debug.log';







# Baked-in production defaults (error handling, etc.) — see repo deploy/ProductionSettings.php
if ( file_exists( "$IP/ProductionSettings.php" ) ) {
	require_once "$IP/ProductionSettings.php";
}
$wgShowExceptionDetails = true;
