summaryrefslogtreecommitdiff
path: root/app/install.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2015-01-08 14:18:32 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2015-01-08 14:18:32 +0100
commit73023bc12b81a27045703e1f733faeb2b4e02cec (patch)
tree14aca1a1953d0a813c06794e48a63738abccdcea /app/install.php
parent26da4aa448906f857a252507b34d369a386043c6 (diff)
parent0e4e16ac55097aa173c7c439367294ebd7645562 (diff)
Merge branch 'dev' into 252-extensions
Conflicts: app/FreshRSS.php app/Models/Configuration.php app/views/index/index.phtml app/views/index/normal.phtml lib/Minz/Configuration.php lib/Minz/Translate.php lib/lib_rss.php
Diffstat (limited to 'app/install.php')
-rw-r--r--app/install.php110
1 files changed, 52 insertions, 58 deletions
diff --git a/app/install.php b/app/install.php
index 8091a9eb0..55817ec68 100644
--- a/app/install.php
+++ b/app/install.php
@@ -43,30 +43,26 @@ function param($key, $default = false) {
// gestion internationalisation
function initTranslate() {
+ $available_languages = array(
+ 'en' => 'English',
+ 'fr' => 'Français'
+ );
+
if (!isset($_SESSION['language'])) {
- $_SESSION['language'] = getBetterLanguage('en');
+ $best = get_best_language();
+ if (!isset($available_languages[$best])) {
+ $best = 'en';
+ }
+
+ $_SESSION['language'] = $best;
}
- Minz_Translate::init();
+ Minz_Translate::init($_SESSION['language']);
}
-function getBetterLanguage($fallback) {
- $available = availableLanguages();
+function get_best_language() {
$accept = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
- $language = strtolower(substr($accept, 0, 2));
-
- if (isset($available[$language])) {
- return $language;
- } else {
- return $fallback;
- }
-}
-
-function availableLanguages() {
- return array(
- 'en' => 'English',
- 'fr' => 'Français'
- );
+ return strtolower(substr($accept, 0, 2));
}
@@ -132,12 +128,17 @@ function saveStep2() {
'token' => $token,
);
- $configPath = DATA_PATH . '/' . $_SESSION['default_user'] . '_user.php';
- @unlink($configPath); //To avoid access-rights problems
- file_put_contents($configPath, "<?php\n return " . var_export($config_array, true) . ';');
+ // Create default user files but first, we delete previous data to
+ // avoid access right problems.
+ $user_dir = join_path(USERS_PATH, $_SESSION['default_user']);
+ $user_config_path = join_path($user_dir, 'config.php');
+
+ recursive_unlink($user_dir);
+ mkdir($user_dir);
+ file_put_contents($user_config_path, "<?php\n return " . var_export($config_array, true) . ';');
if ($_SESSION['mail_login'] != '') {
- $personaFile = DATA_PATH . '/persona/' . $_SESSION['mail_login'] . '.txt';
+ $personaFile = join_path(DATA_PATH, 'persona', $_SESSION['mail_login'] . '.txt');
@unlink($personaFile);
file_put_contents($personaFile, $_SESSION['default_user']);
}
@@ -170,19 +171,12 @@ function saveStep3() {
$_SESSION['bd_prefix_user'] = $_SESSION['bd_prefix'] .(empty($_SESSION['default_user']) ? '' :($_SESSION['default_user'] . '_'));
}
- $ini_array = array(
- 'general' => array(
- 'environment' => empty($_SESSION['environment']) ? 'production' : $_SESSION['environment'],
- 'salt' => $_SESSION['salt'],
- 'base_url' => '',
- 'title' => $_SESSION['title'],
- 'default_user' => $_SESSION['default_user'],
- 'allow_anonymous' => isset($_SESSION['allow_anonymous']) ? $_SESSION['allow_anonymous'] : false,
- 'allow_anonymous_refresh' => isset($_SESSION['allow_anonymous_refresh']) ? $_SESSION['allow_anonymous_refresh'] : false,
- 'auth_type' => $_SESSION['auth_type'],
- 'api_enabled' => isset($_SESSION['api_enabled']) ? $_SESSION['api_enabled'] : false,
- 'unsafe_autologin_enabled' => isset($_SESSION['unsafe_autologin_enabled']) ? $_SESSION['unsafe_autologin_enabled'] : false,
- ),
+ $config_array = array(
+ 'environment' => 'production',
+ 'salt' => $_SESSION['salt'],
+ 'title' => $_SESSION['title'],
+ 'default_user' => $_SESSION['default_user'],
+ 'auth_type' => $_SESSION['auth_type'],
'db' => array(
'type' => $_SESSION['bd_type'],
'host' => $_SESSION['bd_host'],
@@ -193,8 +187,8 @@ function saveStep3() {
),
);
- @unlink(DATA_PATH . '/config.php'); //To avoid access-rights problems
- file_put_contents(DATA_PATH . '/config.php', "<?php\n return " . var_export($ini_array, true) . ';');
+ @unlink(join_path(DATA_PATH, 'config.php')); //To avoid access-rights problems
+ file_put_contents(join_path(DATA_PATH, 'config.php'), "<?php\n return " . var_export($config_array, true) . ';');
$res = checkBD();
@@ -217,7 +211,7 @@ function newPdo() {
);
break;
case 'sqlite':
- $str = 'sqlite:' . DATA_PATH . '/' . $_SESSION['default_user'] . '.sqlite';
+ $str = 'sqlite:' . join_path(USERS_PATH, $_SESSION['default_user'], 'db.sqlite');
$driver_options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
@@ -229,7 +223,7 @@ function newPdo() {
}
function deleteInstall() {
- $res = unlink(DATA_PATH . '/do-install.txt');
+ $res = unlink(join_path(DATA_PATH, 'do-install.txt'));
if (!$res) {
return false;
@@ -258,7 +252,7 @@ function checkStep() {
}
function checkStep0() {
- $languages = availableLanguages();
+ $languages = Minz_Translate::availableLanguages();
$language = isset($_SESSION['language']) &&
isset($languages[$_SESSION['language']]);
@@ -270,7 +264,7 @@ function checkStep0() {
function checkStep1() {
$php = version_compare(PHP_VERSION, '5.2.1') >= 0;
- $minz = file_exists(LIB_PATH . '/Minz');
+ $minz = file_exists(join_path(LIB_PATH, 'Minz'));
$curl = extension_loaded('curl');
$pdo_mysql = extension_loaded('pdo_mysql');
$pdo_sqlite = extension_loaded('pdo_sqlite');
@@ -280,9 +274,9 @@ function checkStep1() {
$dom = class_exists('DOMDocument');
$data = DATA_PATH && is_writable(DATA_PATH);
$cache = CACHE_PATH && is_writable(CACHE_PATH);
- $log = LOG_PATH && is_writable(LOG_PATH);
- $favicons = is_writable(DATA_PATH . '/favicons');
- $persona = is_writable(DATA_PATH . '/persona');
+ $users = USERS_PATH && is_writable(USERS_PATH);
+ $favicons = is_writable(join_path(DATA_PATH, 'favicons'));
+ $persona = is_writable(join_path(DATA_PATH, 'persona'));
$http_referer = is_referer_from_same_domain();
return array(
@@ -297,12 +291,12 @@ function checkStep1() {
'dom' => $dom ? 'ok' : 'ko',
'data' => $data ? 'ok' : 'ko',
'cache' => $cache ? 'ok' : 'ko',
- 'log' => $log ? 'ok' : 'ko',
+ 'users' => $users ? 'ok' : 'ko',
'favicons' => $favicons ? 'ok' : 'ko',
'persona' => $persona ? 'ok' : 'ko',
'http_referer' => $http_referer ? 'ok' : 'ko',
'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom &&
- $data && $cache && $log && $favicons && $persona && $http_referer ?
+ $data && $cache && $users && $favicons && $persona && $http_referer ?
'ok' : 'ko'
);
}
@@ -327,7 +321,7 @@ function checkStep2() {
if ($defaultUser === null) {
$defaultUser = empty($_SESSION['default_user']) ? '' : $_SESSION['default_user'];
}
- $data = is_writable(DATA_PATH . '/' . $defaultUser . '_user.php');
+ $data = is_writable(join_path(USERS_PATH, $defaultUser, 'config.php'));
return array(
'conf' => $conf ? 'ok' : 'ko',
@@ -339,7 +333,7 @@ function checkStep2() {
}
function checkStep3() {
- $conf = is_writable(DATA_PATH . '/config.php');
+ $conf = is_writable(join_path(DATA_PATH, 'config.php'));
$bd = isset($_SESSION['bd_type']) &&
isset($_SESSION['bd_host']) &&
@@ -382,7 +376,7 @@ function checkBD() {
$str = 'mysql:host=' . $_SESSION['bd_host'] . ';dbname=' . $_SESSION['bd_base'];
break;
case 'sqlite':
- $str = 'sqlite:' . DATA_PATH . '/' . $_SESSION['default_user'] . '.sqlite';
+ $str = 'sqlite:' . join_path(USERS_PATH, $_SESSION['default_user'], 'db.sqlite');
$driver_options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
@@ -414,7 +408,7 @@ function checkBD() {
}
if (!$ok) {
- @unlink(DATA_PATH . '/config.php');
+ @unlink(join_path(DATA_PATH, 'config.php'));
}
return $ok;
@@ -422,7 +416,8 @@ function checkBD() {
/*** AFFICHAGE ***/
function printStep0() {
- global $actual;
+ $actual = Minz_Translate::language();
+ $languages = Minz_Translate::availableLanguages();
?>
<?php $s0 = checkStep0(); if ($s0['all'] == 'ok') { ?>
<p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.language.defined'); ?></p>
@@ -434,7 +429,6 @@ function printStep0() {
<label class="group-name" for="language"><?php echo _t('install.language'); ?></label>
<div class="group-controls">
<select name="language" id="language">
- <?php $languages = availableLanguages(); ?>
<?php foreach ($languages as $short => $lib) { ?>
<option value="<?php echo $short; ?>"<?php echo $actual == $short ? ' selected="selected"' : ''; ?>><?php echo $lib; ?></option>
<?php } ?>
@@ -470,7 +464,7 @@ function printStep1() {
<?php if ($res['minz'] == 'ok') { ?>
<p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.check.minz.ok'); ?></p>
<?php } else { ?>
- <p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.minz.nok', LIB_PATH . '/Minz'); ?></p>
+ <p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.minz.nok', join_path(LIB_PATH, 'Minz')); ?></p>
<?php } ?>
<?php if ($res['pdo'] == 'ok') { ?>
@@ -516,10 +510,10 @@ function printStep1() {
<p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.cache.nok', CACHE_PATH); ?></p>
<?php } ?>
- <?php if ($res['log'] == 'ok') { ?>
- <p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.check.logs.ok'); ?></p>
+ <?php if ($res['users'] == 'ok') { ?>
+ <p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.check.users.ok'); ?></p>
<?php } else { ?>
- <p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.logs.nok', LOG_PATH); ?></p>
+ <p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.users.nok', USERS_PATH); ?></p>
<?php } ?>
<?php if ($res['favicons'] == 'ok') { ?>
@@ -774,10 +768,10 @@ function printStep5() {
<?php
}
-checkStep();
-
initTranslate();
+checkStep();
+
switch (STEP) {
case 0:
default: