Dotclear

source: admin/install/wizard.php @ 557:e4ca21f50855

Revision 557:e4ca21f50855, 6.8 KB checked in by kozlika, 14 years ago (diff)

Ergo: harmonisation de la terminologie des boutons, termes plus précis quand possible. Accessibilité: fieldsets, labels…

La passe suivante pour essayer d'alléger le boulot des traducteurs…

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12
13if (isset($_SERVER['DC_RC_PATH'])) {
14     define('DC_RC_PATH',$_SERVER['DC_RC_PATH']);
15} elseif (isset($_SERVER['REDIRECT_DC_RC_PATH'])) {
16     define('DC_RC_PATH',$_SERVER['REDIRECT_DC_RC_PATH']);
17} else {
18     define('DC_RC_PATH',dirname(__FILE__).'/../../inc/config.php');
19}
20
21#  ClearBricks and DotClear classes auto-loader
22if (@is_dir('/usr/lib/clearbricks')) {
23     define('CLEARBRICKS_PATH','/usr/lib/clearbricks');
24} elseif (is_dir(dirname(__FILE__).'/../../inc/libs/clearbricks')) {
25     define('CLEARBRICKS_PATH',dirname(__FILE__).'/../../inc/libs/clearbricks');
26} elseif (isset($_SERVER['CLEARBRICKS_PATH']) && is_dir($_SERVER['CLEARBRICKS_PATH'])) {
27     define('CLEARBRICKS_PATH',$_SERVER['CLEARBRICKS_PATH']);
28}
29
30if (!defined('CLEARBRICKS_PATH') || !is_dir(CLEARBRICKS_PATH)) {
31     exit('No clearbricks path defined');
32}
33
34require CLEARBRICKS_PATH.'/_common.php';
35
36# Loading locales for detected language
37$dlang = http::getAcceptLanguage();
38if ($dlang != 'en')
39{
40     l10n::init();
41     l10n::set(dirname(__FILE__).'/../../locales/'.$dlang.'/main');
42}
43
44if (is_file(DC_RC_PATH)) {
45     http::redirect('index.php');
46}
47
48$DBDRIVER = !empty($_POST['DBDRIVER']) ? $_POST['DBDRIVER'] : 'mysql';
49$DBHOST = !empty($_POST['DBHOST']) ? $_POST['DBHOST'] : '';
50$DBNAME = !empty($_POST['DBNAME']) ? $_POST['DBNAME'] : '';
51$DBUSER = !empty($_POST['DBUSER']) ? $_POST['DBUSER'] : '';
52$DBPASSWORD = !empty($_POST['DBPASSWORD']) ? $_POST['DBPASSWORD'] : '';
53$DBPREFIX = !empty($_POST['DBPREFIX']) ? $_POST['DBPREFIX'] : 'dc_';
54
55if (!empty($_POST))
56{
57     try
58     {
59          # Tries to connect to database
60          try {
61               $con = dbLayer::init($DBDRIVER,$DBHOST,$DBNAME,$DBUSER,$DBPASSWORD);
62          } catch (Exception $e) {
63               throw new Exception('<p>' . __($e->getMessage()) . '</p>');
64          }
65         
66          # Checks system capabilites
67          require dirname(__FILE__).'/check.php';
68          if (!dcSystemCheck($con,$_e)) {
69               $can_install = false;
70               throw new Exception('<p>'.__('Dotclear cannot be installed.').'</p><ul><li>'.implode('</li><li>',$_e).'</li></ul>');
71          }
72         
73          # Check if dotclear is already installed
74          $schema = dbSchema::init($con);
75          if (in_array($DBPREFIX.'version',$schema->getTables())) {
76               throw new Exception(__('Dotclear is already installed.'));
77          }
78         
79          # Does config.php.in exist?
80          $config_in = dirname(__FILE__).'/../../inc/config.php.in';
81          if (!is_file($config_in)) {
82               throw new Exception(sprintf(__('File %s does not exist.'),$config_in));
83          }
84         
85          # Can we write config.php
86          if (!is_writable(dirname(DC_RC_PATH))) {
87               throw new Exception(sprintf(__('Cannot write %s file.'),DC_RC_PATH));
88          }
89         
90          # Creates config.php file
91          $full_conf = file_get_contents($config_in);
92         
93          writeConfigValue('DC_DBDRIVER',$DBDRIVER,$full_conf);
94          writeConfigValue('DC_DBHOST',$DBHOST,$full_conf);
95          writeConfigValue('DC_DBUSER',$DBUSER,$full_conf);
96          writeConfigValue('DC_DBPASSWORD',$DBPASSWORD,$full_conf);
97          writeConfigValue('DC_DBNAME',$DBNAME,$full_conf);
98          writeConfigValue('DC_DBPREFIX',$DBPREFIX,$full_conf);
99         
100          $admin_url = preg_replace('%install/wizard.php$%','',$_SERVER['REQUEST_URI']);
101          writeConfigValue('DC_ADMIN_URL',http::getHost().$admin_url,$full_conf);
102          writeConfigValue('DC_ADMIN_MAILFROM','dotclear@'.$_SERVER['HTTP_HOST'],$full_conf);
103          writeConfigValue('DC_MASTER_KEY',md5(uniqid()),$full_conf);
104         
105          $fp = @fopen(DC_RC_PATH,'wb');
106          if ($fp === false) {
107               throw new Exception(sprintf(__('Cannot write %s file.'),DC_RC_PATH));
108          }
109          fwrite($fp,$full_conf);
110          fclose($fp);
111          chmod(DC_RC_PATH, 0666);
112         
113          $con->close();
114          http::redirect('index.php?wiz=1');
115     }
116     catch (Exception $e)
117     {
118          $err = $e->getMessage();
119     }
120}
121
122function writeConfigValue($name,$val,&$str)
123{
124     $val = str_replace("'","\'",$val);
125     $str = preg_replace('/(\''.$name.'\')(.*?)$/ms','$1,\''.$val.'\');',$str);
126}
127
128header('Content-Type: text/html; charset=UTF-8');
129?>
130<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
131<html xmlns="http://www.w3.org/1999/xhtml"
132xml:lang="en" lang="en">
133<head>
134  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
135  <meta http-equiv="Content-Script-Type" content="text/javascript" />
136  <meta http-equiv="Content-Style-Type" content="text/css" />
137  <meta http-equiv="Content-Language" content="en" />
138  <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" />
139  <meta name="GOOGLEBOT" content="NOSNIPPET" />
140  <title><?php echo __('Dotclear installation wizard'); ?></title>
141     <link rel="stylesheet" href="../style/install.css" type="text/css" media="screen" />
142</head>
143
144<body id="dotclear-admin" class="install">
145<div id="content">
146<?php
147echo
148'<h1>'.__('Dotclear installation wizard').'</h1>'.
149'<div id="main">';
150
151if (!empty($err)) {
152     echo '<div class="error"><p><strong>'.__('Errors:').'</strong></p>'.$err.'</div>';
153} else {
154     echo '<h2>'.__('Welcome').'</h2>'.
155          '<p>'.__('To complete your Dotclear installation and start writing on your blog, '.
156               'we just need to know how to access your database and who you are. '.
157               'Just fill this two steps wizard with this information and we will be done.').'</p>'.
158          '<p class="message"><strong>'.__('Attention:').'</strong> '.
159          __('this wizard may not function on every host. If it does not work for you, '.
160               'please refer to <a href="http://dotclear.org/documentation/2.0/admin/install">'.
161               'the documentation</a> to learn how to create the <strong>config.php</strong> '.
162               'file manually.').'</p>';
163}
164
165echo
166'<h2>'.__('System information').'</h2>'.
167
168'<p>'.__('Please provide the following information needed to create your configuration file.').'</p>'.
169
170'<form action="wizard.php" method="post">'.
171'<p><label class="required" for="DBDRIVER"><abbr title="'.__('Required field').'">*</abbr> '.__('Database type:').' '.
172form::combo('DBDRIVER',array('MySQL'=>'mysql','PostgreSQL'=>'pgsql'),$DBDRIVER).'</label></p>'.
173'<p><label for="DBHOST">'.__('Database Host Name:').' '.
174form::field('DBHOST',30,255,html::escapeHTML($DBHOST)).'</label></p>'.
175'<p><label for="DBNAME">'.__('Database Name:').' '.
176form::field('DBNAME',30,255,html::escapeHTML($DBNAME)).'</label></p>'.
177'<p><label for="DBUSER">'.__('Database User Name:').' '.
178form::field('DBUSER',30,255,html::escapeHTML($DBUSER)).'</label></p>'.
179'<p><label for="DBPASSWORD">'.__('Database Password:').' '.
180form::password('DBPASSWORD',30,255).'</label></p>'.
181'<p><label for="DBPREFIX" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Database Tables Prefix:').' '.
182form::field('DBPREFIX',30,255,html::escapeHTML($DBPREFIX)).'</label></p>'.
183
184'<p><input type="submit" value="'.__('Continue').'" /></p>'.
185'</form>';
186?>
187</div>
188</div>
189</body>
190</html>
Note: See TracBrowser for help on using the repository browser.

Sites map