J'avais posté ce message dans le forum francophone et il m'a été suggéré de le poster dans les TIPS
j'ai adapté Dokuwiki comme module d'un CMS. Le module est auto-installable dans le CMS. J'en profite pour vous proposer ce code simplifié pour Dokuwiki qui rend Dokuwiki auto installable.
La modif convient pour toute version de Dokuwiki, y compris Anteater.
Ouvrir doku.php rechercher (vers ligne 27 de la version Lazy Sunday):
require_once(DOKU_INC.'inc/init.php');
rajouter à la ligne suivante le code:
// test installation? if(empty($conf['doku_install'])){ $tmp = DOKU_CONF.'local.php'; if (!is_file( $tmp ) ) { header("location:install.php"); die("location error"); } else { nice_die("Code error : ".__LINE__."<br />".$lang['Doku_no_run']); } }
Ouvrir install.php
rechercher (vers ligne 310 de la version Lazy Sunday):
$output .= '$conf[\'license\'] = \''.addslashes($d['license'])."';\n";
rajouter à la ligne suivante le code:
$output .= '$conf[\'doku_install\'] = 1'.";\n";
Ouvrir le fichier inc/lang/fr/lang.php
après la dernière ligne, ajouter le code:
$lang['Doku_no_run'] = 'Un problème majeur empêche l\'exécution de Dokuwiki.';
Il faudrait également ajouter $lang['Doku_no_run'] dans les fichiers langues, au minimum dans lang/en/lang.php
fonctionnement: à la première exécution, donc de index.php, teste l'existence de $conf['doku_install'] et du fichier conf/local.php. Si aucun n'existe, c'est que le wiki n'est pas encore installé. Lors des exécutions ultérieures si $conf['doku_install'] n'existe pas, alors que conf/local.php existe, il y a un gros problème: $conf['doku_install'] a disparu du fichier de configuration, ou sa valeur est erronée.
Les réactualisations ultérieures du fichier conf/local.php n'effacent pas la variable $conf['doku_install']