<?php
/**
 * Hub de donaciones — Nexora Custom.
 * Mantiene la lógica del core, con fallbacks seguros para idiomas.
 */

try {

	/**
	 * Verifica si el módulo de donaciones está activo.
	 */
	if (!mconfig('active')) {
		$errorMsg = lang('error_47', true);

		if (!$errorMsg || $errorMsg === 'ERROR') {
			$errorMsg = 'El sistema de donaciones no está disponible en este momento.';
		}

		throw new Exception($errorMsg);
	}

	/**
	 * Título principal.
	 */
	$pageTitle = lang('module_titles_txt_11', true);

	if (!$pageTitle || $pageTitle === 'ERROR') {
		$pageTitle = nexora_lang(
			'nexora_donation_title',
			'Donaciones'
		);
	}

	/**
	 * Subtítulo.
	 */
	$subtitle = nexora_lang(
		'nexora_donation_subtitle',
		'Elige un método de pago'
	);

	/**
	 * Carga configuraciones de cada pasarela.
	 */
	$pp = loadConfigurations('donation.paypal');
	$bn = loadConfigurations('donation.binance');
	$bk = loadConfigurations('donation.bank');

	/**
	 * Estado de cada método.
	 */
	$ppOn = is_array($pp) && !empty($pp['active']);
	$bnOn = is_array($bn) && !empty($bn['active']);
	$bkOn = is_array($bk) && !empty($bk['active']);

	/**
	 * Si no existe ningún método activo, muestra error.
	 */
	if (!$ppOn && !$bnOn && !$bkOn) {

		$errorMsg = lang('error_47', true);

		if (!$errorMsg || $errorMsg === 'ERROR') {
			$errorMsg = 'No hay métodos de donación disponibles en este momento.';
		}

		throw new Exception($errorMsg);
	}

	/**
	 * Inicio de página.
	 */
	echo '<div class="nexora-donation-page">';

	echo '<header class="nexora-donation-header">';

	echo '<h1 class="nexora-donation-title">'
		. htmlspecialchars($pageTitle, ENT_QUOTES, 'UTF-8')
		. '</h1>';

	echo '<p class="nexora-donation-subtitle">'
		. htmlspecialchars($subtitle, ENT_QUOTES, 'UTF-8')
		. '</p>';

	echo '</header>';

	echo '<div class="nexora-donation-grid">';


	/**
	 * =========================================================
	 * PAYPAL
	 * =========================================================
	 */
	if ($ppOn) {

		$hint = lang('donation_hub_paypal_hint', true);

		if (!$hint || $hint === 'ERROR') {
			$hint = nexora_lang(
				'nexora_donation_paypal_hint',
				'Pago procesado mediante PayPal.'
			);
		}

		$label = lang('module_titles_txt_21', true);

		if (!$label || $label === 'ERROR') {
			$label = nexora_lang(
				'nexora_donation_paypal',
				'PayPal'
			);
		}

		$imgRel = 'img/donation/paypal.jpg';
		$imgFs  = __PATH_TEMPLATE_ROOT__ . $imgRel;
		$imgUrl = __PATH_TEMPLATE_IMG__ . 'donation/paypal.jpg';

		echo '<a href="'
			. htmlspecialchars(
				__BASE_URL__ . 'donation/paypal/',
				ENT_QUOTES,
				'UTF-8'
			)
			. '" class="nexora-donation-card nexora-donation-card--paypal">';

		echo '<span class="nexora-donation-card-label">'
			. htmlspecialchars($label, ENT_QUOTES, 'UTF-8')
			. '</span>';

		if (is_file($imgFs)) {

			echo '<img src="'
				. htmlspecialchars($imgUrl, ENT_QUOTES, 'UTF-8')
				. '" alt="'
				. htmlspecialchars($label, ENT_QUOTES, 'UTF-8')
				. '" class="nexora-donation-card-img">';

		} elseif ($hint !== '') {

			echo '<span class="nexora-donation-card-desc">'
				. htmlspecialchars($hint, ENT_QUOTES, 'UTF-8')
				. '</span>';
		}

		echo '</a>';
	}


	/**
	 * =========================================================
	 * BINANCE
	 * =========================================================
	 */
	if ($bnOn) {

		$hint = lang('donation_hub_binance_hint', true);

		if (!$hint || $hint === 'ERROR') {
			$hint = nexora_lang(
				'nexora_donation_binance_hint',
				'Pago mediante Binance.'
			);
		}

		$label = lang('module_titles_txt_34', true);

		if (!$label || $label === 'ERROR') {
			$label = nexora_lang(
				'nexora_donation_binance',
				'Binance'
			);
		}

		echo '<a href="'
			. htmlspecialchars(
				__BASE_URL__ . 'donation/binance/',
				ENT_QUOTES,
				'UTF-8'
			)
			. '" class="nexora-donation-card nexora-donation-card--binance">';

		echo '<span class="nexora-donation-card-label">'
			. htmlspecialchars($label, ENT_QUOTES, 'UTF-8')
			. '</span>';

		if ($hint !== '') {

			echo '<span class="nexora-donation-card-desc">'
				. htmlspecialchars($hint, ENT_QUOTES, 'UTF-8')
				. '</span>';
		}

		echo '</a>';
	}


	/**
	 * =========================================================
	 * TRANSFERENCIA BANCARIA
	 * =========================================================
	 */
	if ($bkOn) {

		$hint = lang('donation_hub_bank_hint', true);

		if (!$hint || $hint === 'ERROR') {
			$hint = nexora_lang(
				'nexora_donation_bank_hint',
				'Donación mediante transferencia bancaria.'
			);
		}

		$label = lang('module_titles_txt_35', true);

		if (!$label || $label === 'ERROR') {
			$label = nexora_lang(
				'nexora_donation_bank',
				'Transferencia bancaria'
			);
		}

		echo '<a href="'
			. htmlspecialchars(
				__BASE_URL__ . 'donation/bank/',
				ENT_QUOTES,
				'UTF-8'
			)
			. '" class="nexora-donation-card nexora-donation-card--bank">';

		echo '<span class="nexora-donation-card-label">'
			. htmlspecialchars($label, ENT_QUOTES, 'UTF-8')
			. '</span>';

		if ($hint !== '') {

			echo '<span class="nexora-donation-card-desc">'
				. htmlspecialchars($hint, ENT_QUOTES, 'UTF-8')
				. '</span>';
		}

		echo '</a>';
	}


	/**
	 * Cierre de estructura.
	 */
	echo '</div>';
	echo '</div>';

} catch (Exception $ex) {

	$errorMessage = $ex->getMessage();

	if (!$errorMessage || $errorMessage === 'ERROR') {
		$errorMessage = 'No fue posible cargar el módulo de donaciones.';
	}

	message('error', $errorMessage);
}
