diff options
Diffstat (limited to 'install/index.php')
-rwxr-xr-x[-rw-r--r--] | install/index.php | 81 |
1 files changed, 65 insertions, 16 deletions
diff --git a/install/index.php b/install/index.php index 975b997f..e702891b 100644..100755 --- a/install/index.php +++ b/install/index.php | |||
@@ -1,9 +1,30 @@ | |||
1 | <?php | 1 | <?php |
2 | $errors = array(); | 2 | $errors = array(); |
3 | $successes = array(); | 3 | $successes = array(); |
4 | if ($_POST['download']) { | 4 | |
5 | /* Function taken from at http://php.net/manual/en/function.rmdir.php#110489 | ||
6 | * Idea : nbari at dalmp dot com | ||
7 | * Rights unknown | ||
8 | * Here in case of .gitignore files | ||
9 | */ | ||
10 | function delTree($dir) { | ||
11 | $files = array_diff(scandir($dir), array('.','..')); | ||
12 | foreach ($files as $file) { | ||
13 | (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file"); | ||
14 | } | ||
15 | return rmdir($dir); | ||
16 | } | ||
17 | |||
18 | if (isset($_GET['clean'])) { | ||
19 | if (is_dir('install')){ | ||
20 | delTree('install'); | ||
21 | header('Location: index.php'); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | if (isset($_POST['download'])) { | ||
5 | if (!file_put_contents("cache/vendor.zip", fopen("http://static.wallabag.org/files/vendor.zip", 'r'))) { | 26 | if (!file_put_contents("cache/vendor.zip", fopen("http://static.wallabag.org/files/vendor.zip", 'r'))) { |
6 | $errors[] = 'Impossible to download vendor.zip. Please <a href="http://wllbg.org/vendor">download it manually<∕a> and unzip it in your wallabag folder.'; | 27 | $errors[] = 'Impossible to download vendor.zip. Please <a href="http://wllbg.org/vendor">download it manually</a> and unzip it in your wallabag folder.'; |
7 | } | 28 | } |
8 | else { | 29 | else { |
9 | if (extension_loaded('zip')) { | 30 | if (extension_loaded('zip')) { |
@@ -25,14 +46,14 @@ if ($_POST['download']) { | |||
25 | } | 46 | } |
26 | } | 47 | } |
27 | } | 48 | } |
28 | else if ($_POST['install']) { | 49 | else if (isset($_POST['install'])) { |
29 | if (!is_dir('vendor')) { | 50 | if (!is_dir('vendor')) { |
30 | $errors[] = 'You must install twig before.'; | 51 | $errors[] = 'You must install twig before.'; |
31 | } | 52 | } |
32 | else { | 53 | else { |
33 | $continue = true; | 54 | $continue = true; |
34 | // Create config.inc.php | 55 | // Create config.inc.php |
35 | if (!copy('inc/poche/config.inc.php.new', 'inc/poche/config.inc.php')) { | 56 | if (!copy('inc/poche/config.inc.default.php', 'inc/poche/config.inc.php')) { |
36 | $errors[] = 'Installation aborted, impossible to create inc/poche/config.inc.php file. Maybe you don\'t have write access to create it.'; | 57 | $errors[] = 'Installation aborted, impossible to create inc/poche/config.inc.php file. Maybe you don\'t have write access to create it.'; |
37 | $continue = false; | 58 | $continue = false; |
38 | } | 59 | } |
@@ -64,6 +85,7 @@ else if ($_POST['install']) { | |||
64 | else { | 85 | else { |
65 | $db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite'; | 86 | $db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite'; |
66 | $handle = new PDO($db_path); | 87 | $handle = new PDO($db_path); |
88 | $sql_structure = ""; | ||
67 | } | 89 | } |
68 | } | 90 | } |
69 | else { | 91 | else { |
@@ -79,7 +101,7 @@ else if ($_POST['install']) { | |||
79 | 101 | ||
80 | $sql_structure = file_get_contents('install/mysql.sql'); | 102 | $sql_structure = file_get_contents('install/mysql.sql'); |
81 | } | 103 | } |
82 | else if ($_POST['db_engine'] == 'postgresql') { | 104 | else if ($_POST['db_engine'] == 'postgres') { |
83 | $db_path = 'pgsql:host=' . $_POST['pg_server'] . ';dbname=' . $_POST['pg_database']; | 105 | $db_path = 'pgsql:host=' . $_POST['pg_server'] . ';dbname=' . $_POST['pg_database']; |
84 | $content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['pg_server']."');", $content); | 106 | $content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['pg_server']."');", $content); |
85 | $content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['pg_database']."');", $content); | 107 | $content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['pg_database']."');", $content); |
@@ -129,7 +151,7 @@ else if ($_POST['install']) { | |||
129 | $params = array($id_user, 'language', 'en_EN.UTF8'); | 151 | $params = array($id_user, 'language', 'en_EN.UTF8'); |
130 | $query = executeQuery($handle, $sql, $params); | 152 | $query = executeQuery($handle, $sql, $params); |
131 | 153 | ||
132 | $successes[] = 'wallabag is now installed. Don\'t forget to delete install folder. Then, <a href="index.php">reload this page</a>.'; | 154 | $successes[] = 'wallabag is now installed. You can now <a href="index.php?clean=0">access it !</a>'; |
133 | } | 155 | } |
134 | } | 156 | } |
135 | } | 157 | } |
@@ -143,7 +165,7 @@ else if ($_POST['install']) { | |||
143 | <!--[if IE]> | 165 | <!--[if IE]> |
144 | <meta http-equiv="X-UA-Compatible" content="IE=10"> | 166 | <meta http-equiv="X-UA-Compatible" content="IE=10"> |
145 | <![endif]--> | 167 | <![endif]--> |
146 | <title>wallabag — installation</title> | 168 | <title>wallabag - installation</title> |
147 | <link rel="shortcut icon" type="image/x-icon" href="themes/baggy/img/favicon.ico" /> | 169 | <link rel="shortcut icon" type="image/x-icon" href="themes/baggy/img/favicon.ico" /> |
148 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="themes/baggy/img/apple-touch-icon-144x144-precomposed.png"> | 170 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="themes/baggy/img/apple-touch-icon-144x144-precomposed.png"> |
149 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="themes/baggy/img/apple-touch-icon-72x72-precomposed.png"> | 171 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="themes/baggy/img/apple-touch-icon-72x72-precomposed.png"> |
@@ -154,7 +176,7 @@ else if ($_POST['install']) { | |||
154 | <link rel="stylesheet" href="themes/baggy/css/main.css" media="all"> | 176 | <link rel="stylesheet" href="themes/baggy/css/main.css" media="all"> |
155 | <link rel="stylesheet" href="themes/baggy/css/messages.css" media="all"> | 177 | <link rel="stylesheet" href="themes/baggy/css/messages.css" media="all"> |
156 | <link rel="stylesheet" href="themes/baggy/css/print.css" media="print"> | 178 | <link rel="stylesheet" href="themes/baggy/css/print.css" media="print"> |
157 | <script src="themes/baggy/js/jquery-2.0.3.min.js"></script> | 179 | <script src="themes/default/js/jquery-2.0.3.min.js"></script> |
158 | <script src="themes/baggy/js/init.js"></script> | 180 | <script src="themes/baggy/js/init.js"></script> |
159 | </head> | 181 | </head> |
160 | <body> | 182 | <body> |
@@ -198,18 +220,18 @@ else if ($_POST['install']) { | |||
198 | <?php if (file_exists('inc/poche/config.inc.php') && is_dir('vendor')) : ?> | 220 | <?php if (file_exists('inc/poche/config.inc.php') && is_dir('vendor')) : ?> |
199 | <div class='messages success install'> | 221 | <div class='messages success install'> |
200 | <p> | 222 | <p> |
201 | wallabag seems already installed. If you want to update it, you only have to delete install folder. | 223 | wallabag seems already installed. If you want to update it, you only have to delete install folder, then <a href="index.php">reload this page</a>. |
202 | </p> | 224 | </p> |
203 | </div> | 225 | </div> |
204 | <?php endif; ?> | 226 | <?php endif; ?> |
205 | <?php endif; ?> | 227 | <?php endif; ?> |
206 | <p>To install wallabag, you just have to fill the following fields. That's all.</p> | 228 | <p>To install wallabag, you just have to fill the following fields. That's all.</p> |
207 | <p>Don't forget to check your server compatibility <a href="wallabag_compatibility_test.php">here</a>.</p> | 229 | <p>Don't forget to check your server compatibility <a href="wallabag_compatibility_test.php?from=install">here</a>.</p> |
208 | <form method="post"> | 230 | <form method="post"> |
209 | <fieldset> | 231 | <fieldset> |
210 | <legend><strong>Technical settings</strong></legend> | 232 | <legend><strong>Technical settings</strong></legend> |
211 | <?php if (!is_dir('vendor')) : ?> | 233 | <?php if (!is_dir('vendor')) : ?> |
212 | <div class='messages notice install'>wallabag needs twig, a template engine (<a href="http://twig.sensiolabs.org/">?</a>). Two ways to install it: | 234 | <div class='messages notice install'>wallabag needs twig, a template engine (<a href="http://twig.sensiolabs.org/">?</a>). Two ways to install it:<br /> |
213 | <ul> | 235 | <ul> |
214 | <li>automatically download and extract vendor.zip into your wallabag folder. | 236 | <li>automatically download and extract vendor.zip into your wallabag folder. |
215 | <p><input type="submit" name="download" value="Download vendor.zip" /></p> | 237 | <p><input type="submit" name="download" value="Download vendor.zip" /></p> |
@@ -225,7 +247,11 @@ php composer.phar install</code></pre></li> | |||
225 | <p> | 247 | <p> |
226 | Database engine: | 248 | Database engine: |
227 | <ul> | 249 | <ul> |
228 | <li><label for="sqlite">SQLite</label> <input name="db_engine" type="radio" checked="" id="sqlite" value="sqlite" /></li> | 250 | <li><label for="sqlite">SQLite</label> <input name="db_engine" type="radio" checked="" id="sqlite" value="sqlite" /> |
251 | <div id="pdo_sqlite" class='messages error install'> | ||
252 | <p>You have to enable <a href="http://php.net/manual/ref.pdo-sqlite.php">pdo_sqlite extension</a>.</p> | ||
253 | </div> | ||
254 | </li> | ||
229 | <li> | 255 | <li> |
230 | <label for="mysql">MySQL</label> <input name="db_engine" type="radio" id="mysql" value="mysql" /> | 256 | <label for="mysql">MySQL</label> <input name="db_engine" type="radio" id="mysql" value="mysql" /> |
231 | <ul id="mysql_infos"> | 257 | <ul id="mysql_infos"> |
@@ -236,12 +262,12 @@ php composer.phar install</code></pre></li> | |||
236 | </ul> | 262 | </ul> |
237 | </li> | 263 | </li> |
238 | <li> | 264 | <li> |
239 | <label for="postgresql">PostgreSQL</label> <input name="db_engine" type="radio" id="postgresql" value="postgresql" /> | 265 | <label for="postgres">PostgreSQL</label> <input name="db_engine" type="radio" id="postgres" value="postgres" /> |
240 | <ul id="pg_infos"> | 266 | <ul id="pg_infos"> |
241 | <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li> | 267 | <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li> |
242 | <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li> | 268 | <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li> |
243 | <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li> | 269 | <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li> |
244 | id <li><label for="pg_password">Password</label> <input type="text" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li> | 270 | <li><label for="pg_password">Password</label> <input type="text" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li> |
245 | </ul> | 271 | </ul> |
246 | </li> | 272 | </li> |
247 | </ul> | 273 | </ul> |
@@ -263,26 +289,49 @@ php composer.phar install</code></pre></li> | |||
263 | </p> | 289 | </p> |
264 | </fieldset> | 290 | </fieldset> |
265 | 291 | ||
266 | <input type="submit" value="Install wallabag" name="install" /> | 292 | <input type="submit" id="install_button" value="Install wallabag" name="install" /> |
267 | </form> | 293 | </form> |
268 | </div> | 294 | </div> |
269 | <script> | 295 | <script> |
270 | $("#mysql_infos").hide(); | 296 | $("#mysql_infos").hide(); |
271 | $("#pg_infos").hide(); | 297 | $("#pg_infos").hide(); |
298 | |||
299 | <?php | ||
300 | if (!extension_loaded('pdo_sqlite')) : ?> | ||
301 | $("#install_button").hide(); | ||
302 | <?php | ||
303 | else : | ||
304 | ?> | ||
305 | $("#pdo_sqlite").hide(); | ||
306 | <?php | ||
307 | endif; | ||
308 | ?> | ||
309 | |||
272 | $("input[name=db_engine]").click(function() | 310 | $("input[name=db_engine]").click(function() |
273 | { | 311 | { |
274 | if ( $("#mysql").prop('checked')) { | 312 | if ( $("#mysql").prop('checked')) { |
275 | $("#mysql_infos").show(); | 313 | $("#mysql_infos").show(); |
276 | $("#pg_infos").hide(); | 314 | $("#pg_infos").hide(); |
315 | $("#pdo_sqlite").hide(); | ||
316 | $("#install_button").show(); | ||
277 | } | 317 | } |
278 | else { | 318 | else { |
279 | if ( $("#postgresql").prop('checked')) { | 319 | if ( $("#postgres").prop('checked')) { |
280 | $("#mysql_infos").hide(); | 320 | $("#mysql_infos").hide(); |
281 | $("#pg_infos").show(); | 321 | $("#pg_infos").show(); |
322 | $("#pdo_sqlite").hide(); | ||
323 | $("#install_button").show(); | ||
282 | } | 324 | } |
283 | else { | 325 | else { |
284 | $("#mysql_infos").hide(); | 326 | $("#mysql_infos").hide(); |
285 | $("#pg_infos").hide(); | 327 | $("#pg_infos").hide(); |
328 | <?php | ||
329 | if (!extension_loaded('pdo_sqlite')) : ?> | ||
330 | $("#pdo_sqlite").show(); | ||
331 | $("#install_button").hide(); | ||
332 | <?php | ||
333 | endif; | ||
334 | ?> | ||
286 | } | 335 | } |
287 | } | 336 | } |
288 | }); | 337 | }); |