diff options
-rw-r--r-- | install/index.php | 68 |
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 | */ | ||
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 | |||
4 | if (isset($_POST['download'])) { | 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')) { |
@@ -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 | }); |