aboutsummaryrefslogtreecommitdiffhomepage
path: root/install/index.php
diff options
context:
space:
mode:
authorNicolas Lœuillet <nicolas@loeuillet.org>2014-03-30 21:16:45 +0200
committerNicolas Lœuillet <nicolas@loeuillet.org>2014-03-30 21:16:45 +0200
commit1be13ba1fc6466f94ae4416dcd9eece9b5b4f9a0 (patch)
tree960d300bdc94b29143675d9b9d52ee283bf0df77 /install/index.php
parent1d0995bb8e09503ad01a877bfef74ef6c29b0dab (diff)
downloadwallabag-1be13ba1fc6466f94ae4416dcd9eece9b5b4f9a0.tar.gz
wallabag-1be13ba1fc6466f94ae4416dcd9eece9b5b4f9a0.tar.zst
wallabag-1be13ba1fc6466f94ae4416dcd9eece9b5b4f9a0.zip
oops, restore @tcitworld commit. I'm so tired
Diffstat (limited to 'install/index.php')
-rw-r--r--install/index.php68
1 files changed, 58 insertions, 10 deletions
diff --git a/install/index.php b/install/index.php
index 599bbe2b..e63b2423 100644
--- 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
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
4if (isset($_POST['download'])) { 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')) {
@@ -64,11 +85,11 @@ else if (isset($_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 {
70 $content = file_get_contents('inc/poche/config.inc.php'); 92 $content = file_get_contents('inc/poche/config.inc.php');
71 $sql_structure = '';
72 93
73 if ($_POST['db_engine'] == 'mysql') { 94 if ($_POST['db_engine'] == 'mysql') {
74 $db_path = 'mysql:host=' . $_POST['mysql_server'] . ';dbname=' . $_POST['mysql_database']; 95 $db_path = 'mysql:host=' . $_POST['mysql_server'] . ';dbname=' . $_POST['mysql_database'];
@@ -130,7 +151,7 @@ else if (isset($_POST['install'])) {
130 $params = array($id_user, 'language', 'en_EN.UTF8'); 151 $params = array($id_user, 'language', 'en_EN.UTF8');
131 $query = executeQuery($handle, $sql, $params); 152 $query = executeQuery($handle, $sql, $params);
132 153
133 $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>';
134 } 155 }
135 } 156 }
136 } 157 }
@@ -144,7 +165,7 @@ else if (isset($_POST['install'])) {
144 <!--[if IE]> 165 <!--[if IE]>
145 <meta http-equiv="X-UA-Compatible" content="IE=10"> 166 <meta http-equiv="X-UA-Compatible" content="IE=10">
146 <![endif]--> 167 <![endif]-->
147 <title>wallabag installation</title> 168 <title>wallabag â installation</title>
148 <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" />
149 <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">
150 <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">
@@ -199,18 +220,18 @@ else if (isset($_POST['install'])) {
199 <?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')) : ?>
200 <div class='messages success install'> 221 <div class='messages success install'>
201 <p> 222 <p>
202 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>.
203 </p> 224 </p>
204 </div> 225 </div>
205 <?php endif; ?> 226 <?php endif; ?>
206 <?php endif; ?> 227 <?php endif; ?>
207 <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>
208 <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>
209 <form method="post"> 230 <form method="post">
210 <fieldset> 231 <fieldset>
211 <legend><strong>Technical settings</strong></legend> 232 <legend><strong>Technical settings</strong></legend>
212 <?php if (!is_dir('vendor')) : ?> 233 <?php if (!is_dir('vendor')) : ?>
213 <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 />
214 <ul> 235 <ul>
215 <li>automatically download and extract vendor.zip into your wallabag folder. 236 <li>automatically download and extract vendor.zip into your wallabag folder.
216 <p><input type="submit" name="download" value="Download vendor.zip" /></p> 237 <p><input type="submit" name="download" value="Download vendor.zip" /></p>
@@ -226,7 +247,11 @@ php composer.phar install</code></pre></li>
226 <p> 247 <p>
227 Database engine: 248 Database engine:
228 <ul> 249 <ul>
229 <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>
230 <li> 255 <li>
231 <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" />
232 <ul id="mysql_infos"> 257 <ul id="mysql_infos">
@@ -242,7 +267,7 @@ php composer.phar install</code></pre></li>
242 <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>
243 <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>
244 <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>
245 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>
246 </ul> 271 </ul>
247 </li> 272 </li>
248 </ul> 273 </ul>
@@ -264,26 +289,49 @@ php composer.phar install</code></pre></li>
264 </p> 289 </p>
265 </fieldset> 290 </fieldset>
266 291
267 <input type="submit" value="Install wallabag" name="install" /> 292 <input type="submit" id="install_button" value="Install wallabag" name="install" />
268 </form> 293 </form>
269 </div> 294 </div>
270 <script> 295 <script>
271 $("#mysql_infos").hide(); 296 $("#mysql_infos").hide();
272 $("#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
273 $("input[name=db_engine]").click(function() 310 $("input[name=db_engine]").click(function()
274 { 311 {
275 if ( $("#mysql").prop('checked')) { 312 if ( $("#mysql").prop('checked')) {
276 $("#mysql_infos").show(); 313 $("#mysql_infos").show();
277 $("#pg_infos").hide(); 314 $("#pg_infos").hide();
315 $("#pdo_sqlite").hide();
316 $("#install_button").show();
278 } 317 }
279 else { 318 else {
280 if ( $("#postgresql").prop('checked')) { 319 if ( $("#postgresql").prop('checked')) {
281 $("#mysql_infos").hide(); 320 $("#mysql_infos").hide();
282 $("#pg_infos").show(); 321 $("#pg_infos").show();
322 $("#pdo_sqlite").hide();
323 $("#install_button").show();
283 } 324 }
284 else { 325 else {
285 $("#mysql_infos").hide(); 326 $("#mysql_infos").hide();
286 $("#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 ?>
287 } 335 }
288 } 336 }
289 }); 337 });