keep the current CRON_KEY (survives config saves) // - key not defined -> provision a fresh random one (servers installed // before CRON_KEY existed in the template) // $overrides permite unui mod de editare sa IMPUNA o valoare pentru un // placeholder pe care altfel l-am pastra din constanta curenta (ex. // editServerSet care schimba HERO_BASE_REGEN). Celelalte module apeleaza // fara argumente si valorile curente raman neatinse. function admin_config_template_contents(array $overrides = array()) { $path = admin_config_template_path(); if ($path === false) { return false; } $text = file_get_contents($path); if ($text === false) { return false; } if (strpos($text, '%CRONKEY%') !== false) { $cronKey = (defined('CRON_KEY') && CRON_KEY !== '' && CRON_KEY !== '%CRONKEY%') ? CRON_KEY : bin2hex(random_bytes(24)); $text = str_replace('%CRONKEY%', $cronKey, $text); } // Acelasi tratament pentru durata ciclului si intervalul de tick: sunt // editate din ACP (editCronSet), deci orice alt mod care regenereaza // config.php trebuie sa PASTREZE valorile curente, nu sa le reseteze la // cele din template. if (strpos($text, '%CRONLOOP%') !== false) { $cronLoop = defined('CRON_LOOP_SECONDS') ? (int) CRON_LOOP_SECONDS : 300; $text = str_replace('%CRONLOOP%', (string) $cronLoop, $text); } if (strpos($text, '%CRONTICK%') !== false) { $cronTick = defined('CRON_TICK_SECONDS') ? (int) CRON_TICK_SECONDS : 60; $text = str_replace('%CRONTICK%', (string) $cronTick, $text); } // Retentiile de curatenie: la fel, editate din ACP, deci orice alt mod // care regenereaza config.php trebuie sa le pastreze. $cleanupDefaults = array( '%CLEANUPREPORTS%' => array('CLEANUP_REPORTS_DAYS', 14), '%CLEANUPCHAT%' => array('CLEANUP_CHAT_DAYS', 7), '%CLEANUPMESSAGES%' => array('CLEANUP_MESSAGES_DAYS', 0), ); // regenerarea de baza a eroului: acelasi tratament, sa nu fie resetata $cleanupDefaults['%HEROBASEREGEN%'] = array('HERO_BASE_REGEN', 10); foreach ($overrides as $ovPlaceholder => $ovValue) { if (strpos($text, $ovPlaceholder) !== false) { $text = str_replace($ovPlaceholder, (string) $ovValue, $text); } } foreach ($cleanupDefaults as $placeholder => $info) { if (strpos($text, $placeholder) === false) { continue; } list($constant, $default) = $info; $value = defined($constant) ? (int) constant($constant) : $default; $text = str_replace($placeholder, (string) $value, $text); } return $text; } }