Après avoir modifié et validé le code et le style de FluxBB en local sous Wampserver (ou autre serveur local), on transfère sur le site réel par FTP mais on est obligé de modifier l'information « URL de base » (et éventuellement d'autres informations) et cela commence à vous énerver d'oublier de le faire.
J'ai réfléchi à une automatisation du processus et je suis arrivé au résultat avec la création d'un fichier include et une modification du fichier “include/cache.php” puisque c'est lui qui génère le fichier “cache/config_cache.php” après les modifications d'options dans l'administration du forum.
Procédure
Ajout d'un fichier ”cache_config_oto.php” dans le dossier ”/include” et avec pour contenu : (On met ce fichier dans le dossier include et pas dans le dossier cache car il y a une fonction de suppression de tous les fichiers du dossier cache) :
<?php
// Modification of array $pun_config[] from cache_config.php
$base_url_save = $pun_config['o_base_url'];
$pun_config['o_base_url'] = 'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF']);
//Update Database config table and regenerate cache_config.php file.
if($pun_config['o_base_url'] != $base_url_save) {
//Update database
$db->query('UPDATE '.$db->prefix.'config SET conf_value=''.$pun_config['o_base_url'].'' WHERE conf_name='o_base_url'') or error('Unable to UPDATE config o_base_url.', __FILE__, __LINE__, $db->error());
if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) require PUN_ROOT.'include/cache.php';
generate_config_cache();
require FORUM_CACHE_DIR.'cache_config.php';
}
?>
Ensuite, il faut modifier le fichier ”cache/cache_config.php” en y ajoutant, à la fin, juste avant la balise de fermeture php (?>) :
include(PUN_ROOT.'include/cache_config_oto.php');
Comme le fichier ”cache/cache_config.php” est réécrit par l'administration lors des modifications, il est indispensable de ré-écrire également automatiquement cette ligne include.
Dans le fichier ”/include/cache.php”
Remplacer la ligne :
fwrite($fh, '<?php'."\n\n".'define('PUN_CONFIG_LOADED', 1);'."\n\n".'$pun_config = '.var_export($output, true).';'."\n\n".'?>');
par
//[modif oto] Ajout de include(PUN_ROOT.'include/cache_config_oto.php') pour les modifs automatique de base_url
fwrite($fh, '<?php'."\n\n".'define('PUN_CONFIG_LOADED', 1);'."\n\n".'$pun_config = '.var_export($output, true).';'."\n\n");
fwrite($fh, 'include(PUN_ROOT.'include/cache_config_oto.php');'."\n\n".'?>');
Et voilà