aboutsummaryrefslogtreecommitdiffhomepage
path: root/install/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'install/index.php')
-rwxr-xr-x[-rw-r--r--]install/index.php81
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();
4if ($_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 */
10function 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
18if (isset($_GET['clean'])) {
19 if (is_dir('install')){
20 delTree('install');
21 header('Location: index.php');
22 }
23}
24
25if (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}
28else if ($_POST['install']) { 49else 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 });