default_user; Minz_Configuration::register('user', join_path(USERS_PATH, $current_user, 'config.php'), join_path(FRESHRSS_PATH, 'config-user.default.php')); $user_conf = Minz_Configuration::get('user'); // Then, we set $_SESSION vars $_SESSION['title'] = $system_conf->title; $_SESSION['auth_type'] = $system_conf->auth_type; $_SESSION['old_entries'] = $user_conf->old_entries; $_SESSION['default_user'] = $current_user; $_SESSION['passwordHash'] = $user_conf->passwordHash; $db = $system_conf->db; $_SESSION['bd_type'] = $db['type']; $_SESSION['bd_host'] = $db['host']; $_SESSION['bd_user'] = $db['user']; $_SESSION['bd_password'] = $db['password']; $_SESSION['bd_base'] = $db['base']; $_SESSION['bd_prefix'] = $db['prefix']; $_SESSION['bd_error'] = ''; header('Location: index.php?step=4'); } } function saveStep2() { $user_default_config = Minz_Configuration::get('default_user'); if (!empty($_POST)) { $system_default_config = Minz_Configuration::get('default_system'); $_SESSION['title'] = $system_default_config->title; $_SESSION['old_entries'] = param('old_entries', $user_default_config->old_entries); $_SESSION['auth_type'] = param('auth_type', 'form'); $_SESSION['default_user'] = substr(preg_replace('/[^0-9a-zA-Z_]/', '', param('default_user', '')), 0, 38); $password_plain = param('passwordPlain', false); if ($password_plain !== false && cryptAvailable()) { $_SESSION['passwordHash'] = FreshRSS_user_Controller::hashPassword($password_plain); } if (empty($_SESSION['old_entries']) || empty($_SESSION['auth_type']) || empty($_SESSION['default_user'])) { return false; } if ($_SESSION['auth_type'] === 'form' && empty($_SESSION['passwordHash'])) { return false; } $_SESSION['salt'] = generateSalt(); if ((!ctype_digit($_SESSION['old_entries'])) ||($_SESSION['old_entries'] < 1)) { $_SESSION['old_entries'] = $user_default_config->old_entries; } $token = ''; $config_array = array( 'language' => $_SESSION['language'], 'theme' => $user_default_config->theme, 'old_entries' => $_SESSION['old_entries'], 'passwordHash' => $_SESSION['passwordHash'], 'token' => $token, ); // 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, " $_SESSION['salt'], 'base_url' => $base_url, 'title' => $_SESSION['title'], 'default_user' => $_SESSION['default_user'], 'auth_type' => $_SESSION['auth_type'], 'db' => array( 'type' => $_SESSION['bd_type'], 'host' => $_SESSION['bd_host'], 'user' => $_SESSION['bd_user'], 'password' => $_SESSION['bd_password'], 'base' => $_SESSION['bd_base'], 'prefix' => $_SESSION['bd_prefix'], 'pdo_options' => array(), ), 'pubsubhubbub_enabled' => server_is_public($base_url), ); @unlink(join_path(DATA_PATH, 'config.php')); //To avoid access-rights problems file_put_contents(join_path(DATA_PATH, 'config.php'), " 0 && $s0['all'] != 'ok') { header('Location: index.php?step=0'); } elseif (STEP > 1 && $s1['all'] != 'ok') { header('Location: index.php?step=1'); } elseif (STEP > 2 && $s2['all'] != 'ok') { header('Location: index.php?step=2'); } elseif (STEP > 3 && $s3['all'] != 'ok') { header('Location: index.php?step=3'); } $_SESSION['actualize_feeds'] = true; } function checkStep0() { $languages = Minz_Translate::availableLanguages(); $language = isset($_SESSION['language']) && in_array($_SESSION['language'], $languages); return array( 'language' => $language ? 'ok' : 'ko', 'all' => $language ? 'ok' : 'ko' ); } function freshrss_already_installed() { $conf_path = join_path(DATA_PATH, 'config.php'); if (!file_exists($conf_path)) { return false; } // A configuration file already exists, we try to load it. $system_conf = null; try { Minz_Configuration::register('system', $conf_path); $system_conf = Minz_Configuration::get('system'); } catch (Minz_FileNotExistException $e) { return false; } // ok, the global conf exists... but what about default user conf? $current_user = $system_conf->default_user; try { Minz_Configuration::register('user', join_path(USERS_PATH, $current_user, 'config.php')); } catch (Minz_FileNotExistException $e) { return false; } // ok, ok, default user exists too! return true; } function checkStep2() { $conf = !empty($_SESSION['old_entries']) && !empty($_SESSION['default_user']); $form = ( isset($_SESSION['auth_type']) && ($_SESSION['auth_type'] != 'form' || !empty($_SESSION['passwordHash'])) ); $defaultUser = empty($_POST['default_user']) ? null : $_POST['default_user']; if ($defaultUser === null) { $defaultUser = empty($_SESSION['default_user']) ? '' : $_SESSION['default_user']; } $data = is_writable(join_path(USERS_PATH, $defaultUser, 'config.php')); return array( 'conf' => $conf ? 'ok' : 'ko', 'form' => $form ? 'ok' : 'ko', 'data' => $data ? 'ok' : 'ko', 'all' => $conf && $form && $data ? 'ok' : 'ko' ); } function checkStep3() { $conf = is_writable(join_path(DATA_PATH, 'config.php')); $bd = isset($_SESSION['bd_type']) && isset($_SESSION['bd_host']) && isset($_SESSION['bd_user']) && isset($_SESSION['bd_password']) && isset($_SESSION['bd_base']) && isset($_SESSION['bd_prefix']) && isset($_SESSION['bd_error']); $conn = empty($_SESSION['bd_error']); return array( 'bd' => $bd ? 'ok' : 'ko', 'conn' => $conn ? 'ok' : 'ko', 'conf' => $conf ? 'ok' : 'ko', 'all' => $bd && $conn && $conf ? 'ok' : 'ko' ); } function checkDbUser(&$dbOptions) { $ok = false; $str = $dbOptions['dsn']; $driver_options = $dbOptions['options']; try { $c = new PDO($str, $dbOptions['user'], $dbOptions['password'], $driver_options); if (defined('SQL_CREATE_TABLES')) { $sql = sprintf(SQL_CREATE_TABLES . SQL_CREATE_TABLE_ENTRYTMP . SQL_CREATE_TABLE_TAGS . SQL_INSERT_FEEDS, $dbOptions['prefix_user'], _t('gen.short.default_category')); $stm = $c->prepare($sql); $ok = $stm && $stm->execute(); } else { global $SQL_CREATE_TABLES, $SQL_CREATE_TABLE_ENTRYTMP, $SQL_CREATE_TABLE_TAGS, $SQL_INSERT_FEEDS; $instructions = array_merge($SQL_CREATE_TABLES, $SQL_CREATE_TABLE_ENTRYTMP, $SQL_CREATE_TABLE_TAGS, $SQL_INSERT_FEEDS); $ok = !empty($instructions); foreach ($instructions as $instruction) { $sql = sprintf($instruction, $dbOptions['prefix_user'], _t('gen.short.default_category')); $stm = $c->prepare($sql); $ok &= $stm && $stm->execute(); } } } catch (PDOException $e) { $ok = false; $dbOptions['error'] = $e->getMessage(); } return $ok; } /*** AFFICHAGE ***/ function printStep0() { $actual = Minz_Translate::language(); $languages = Minz_Translate::availableLanguages(); ?>

tabindex="5" />

<?php echo _t('install.title'); ?>