From bfc6a8e4fd467fe3c331452701ef8f4e1154fc59 Mon Sep 17 00:00:00 2001 From: Florian Schmitt Date: Fri, 24 Jan 2025 13:31:05 +0300 Subject: [PATCH] feat(install): wakka.config.php template --- templates/wakka.config.php | 68 ++++++++++++++++++++++++++++++++++++++ utils.inc.php | 22 +++++++----- 2 files changed, 82 insertions(+), 8 deletions(-) create mode 100644 templates/wakka.config.php diff --git a/templates/wakka.config.php b/templates/wakka.config.php new file mode 100644 index 0000000..207806a --- /dev/null +++ b/templates/wakka.config.php @@ -0,0 +1,68 @@ + '0.1.1', + 'wikini_version' => '0.5.0', + 'yeswiki_version' => 'doryphore', + 'yeswiki_release' => 'e($yeswikiVersion)?>', + 'charset' => 'UTF-8', + 'debug' => 'no', + 'mysql_host' => 'localhost', + 'mysql_database' => 'e($database)?>', + 'mysql_user' => 'e($databaseUser)?>', + 'mysql_password' => 'e($databasePassword)?>', + 'table_prefix' => 'yeswiki_', + 'base_url' => 'https://e($domain)?>/?', + 'rewrite_mode' => false, + 'meta_keywords' => '', + 'meta_description' => 'e($domain)?>', + 'header_action' => 'header', + 'footer_action' => 'footer', + 'navigation_links' => 'DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur', + 'referrers_purge_time' => 24, + 'pages_purge_time' => 365, + 'default_write_acl' => '*', + 'default_read_acl' => '*', + 'default_comment_acl' => 'comments-closed', + 'comments_activated' => true, + 'comments_handler' => 'yeswiki', + 'preview_before_save' => false, + 'allow_raw_html' => true, + 'disable_wiki_links' => true, + 'allowed_methods_in_iframe' => + array( + 0 => 'iframe', + 1 => 'editiframe', + 2 => 'bazariframe', + 3 => 'render', + ), + 'revisionscount' => 60, + 'timezone' => 'Europe/Paris', + 'root_page' => 'PagePrincipale', + 'wakka_name' => 'e($domain)?>', + 'htmlPurifierActivated' => false, + 'favorites_activated' => true, + 'archive' => + array( + 'hideConfigValues' => + array( + 'mysql_host' => '', + 'mysql_database' => '', + 'mysql_user' => '', + 'mysql_password' => '', + 'contact_smtp_host' => '', + 'contact_smtp_user' => '', + 'contact_smtp_pass' => '', + 'api_allowed_keys' => + array( + ), + ), + 'authorize_bypass_preupdate_backup' => false, + 'preupdate_backup_activated' => false, + 'call_archive_async' => true, + 'privatePath' => 'private/backups', + 'max_nb_files' => 10, + ), + 'default_language' => 'fr', + 'db_charset' => 'utf8mb4', +); diff --git a/utils.inc.php b/utils.inc.php index 3e4c778..4b8260f 100644 --- a/utils.inc.php +++ b/utils.inc.php @@ -367,17 +367,23 @@ function copyYesWikiFiles($domain, $user, $dbUser, $herseUser = null, $hersePass exec($sudo . 'mv ' . $destDir . '/doryphore/* ' . $destDir . '/'); exec($sudo . 'rm -rf ' . $destDir . '/doryphore'); unlink($tmpFile); - $herse = ''; - if (!empty($herseUser) && !empty($hersePass)) { - $herse = $herseUser . ':' . $hersePass . '@'; - } - $curl = 'curl -X POST --insecure --data-urlencode \'config[default_language]=fr\' --data-urlencode \'config[wakka_name]=' . $domain . '\' --data-urlencode \'config[root_page]=PagePrincipale\' --data-urlencode \'config[mysql_host]=localhost\' --data-urlencode \'config[mysql_database]=' . $dbUser['database'] . '\' --data-urlencode \'config[mysql_user]=' . $dbUser['user'] . '\' --data-urlencode \'config[mysql_password]=' . $dbUser['password'] . '\' --data-urlencode \'config[table_prefix]=yeswiki_\' --data-urlencode \'admin_name=' . $_SERVER['admin_id'] . '\' --data-urlencode \'admin_password=' . $_SERVER['admin_password'] . '\' --data-urlencode \'admin_password_conf=' . $_SERVER['admin_password'] . '\' --data-urlencode \'admin_email=' . $_SERVER['admin_email'] . '\' --data-urlencode \'config[rewrite_mode]=0\' --data-urlencode \'config[allow_raw_html]=1\' --data-urlencode \'config[allow_robots]=1\' --data-urlencode \'submit=Continue\' \'http' . ($nossl ? '' : 's') . '://' . $herse . $domain . '/?PagePrincipale&installAction=install\' 2>&1'; - $output = []; - exec($curl, $output); - echo implode("\n", $output); + createWakkaConfig($domain, $user, $dbUser); return; } +function createWakkaConfig($domain, $user, $dbUser) +{ + $destDir = '/home' . '/' . $user . '/' . $domain; + $templates = new League\Plates\Engine(dirname(__FILE__) . '/templates'); + file_put_contents($destDir.'/wakka.config.php', $templates->render('wakka.config', [ + 'domain' => $domain, + 'database' => $dbUser['database'], + 'databaseUser' => $dbUser['user'], + 'databasePassword' => $dbUser['password'], + 'yeswikiVersion' => preg_replace('/.*-(.*)\.zip/m', "$1", $_SERVER['source_archive_url']), + ])); +} + function checkHerse($herseUser, $hersePass) { if (empty($herseUser) && empty($hersePass)) {