<?php

// GLPI 11: o core já foi bootado pelo LegacyFileLoadController antes deste
// arquivo executar — não incluir inc/includes.php (KB-PLUGIN-028)

// FIX: Prevent this script from being stored as the "Return URL" after login
if (isset($_SESSION['glpi_currentpage']) && strpos($_SESSION['glpi_currentpage'], basename(__FILE__)) !== false) {
   unset($_SESSION['glpi_currentpage']);
}

// Redirect if is a not cached URL
if (!isset($_GET['_'])) {
   $timestamp = \GlpiPlugin\Butterfly\Toolbox::getTimestamp();

   // Disable cache and redirect to cached URL
   header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
   header("Cache-Control: post-check=0, pre-check=0", false);
   header("Pragma: no-cache");

   $file = basename(__FILE__);
   $url = "$file?_=$timestamp";
   if (isset($_GET['v'])) {
      $url .= '&v=' . $_GET['v'];
   }
   header("Location: " . $url);
   die;
}

$name = 'internal';
$css = "";

$picture = \GlpiPlugin\Butterfly\Config::getConfig("{$name}_picture", '');
if ($picture) {
   $css .= ".page .glpi-logo {";
   $css .= " width: " . \GlpiPlugin\Butterfly\Config::getConfig("{$name}_picture_width", '100px') . " !important;";
   $css .= " height: " . \GlpiPlugin\Butterfly\Config::getConfig("{$name}_picture_height", '55px') . " !important;";
   $css .= " background-size: contain !important;";
   $css .= " background-repeat: no-repeat !important;";
   $css .= " background-position: center !important;";
   $css .= " background-image: url(\"" . \GlpiPlugin\Butterfly\Toolbox::getPictureUrl($picture) . "\") !important;";
   $css .= "}";
}

$css_type = \GlpiPlugin\Butterfly\Config::getConfig("{$name}_css_type", 'scss');
$css_custom = \GlpiPlugin\Butterfly\Config::getConfig("{$name}_css_custom", '');

$css_custom = html_entity_decode($css_custom);

if ($css_type === 'scss' && $css_custom && \GlpiPlugin\Butterfly\Scss::hasScssSuport()) {
   try {
      $variables = [];
      $variables['butterfly_timestamp'] = \GlpiPlugin\Butterfly\Toolbox::getTimestamp();

      $css .= \GlpiPlugin\Butterfly\Scss::compileScss($css_custom, $variables);
   } catch (\Throwable $th) {
      // Log error safely - check if ErrorHandler class exists
      $errorHandlerClass = '\Glpi\Application\ErrorHandler';
      if (class_exists($errorHandlerClass)) {
         $errorHandlerClass::getInstance()->handleException($th);
      } else {
         // Fallback error logging
         error_log('Butterfly Plugin SCSS Error: ' . $th->getMessage());
      }
   }
} else if ($css_type === 'css') {
   $css .= $css_custom;
}

header('Content-Type: text/css');

$is_cacheable = !isset($_GET['debug']) && !isset($_GET['nocache']);
if ($is_cacheable) {
   // Makes CSS cacheable by browsers and proxies
   $max_age = WEEK_TIMESTAMP;
   header_remove('Pragma');
   header('Cache-Control: public');
   header('Cache-Control: max-age=' . $max_age);
   header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + $max_age));
}

echo $css;
