aboutsummaryrefslogtreecommitdiffhomepage
path: root/install/install_functions.php
diff options
context:
space:
mode:
Diffstat (limited to 'install/install_functions.php')
-rw-r--r--install/install_functions.php111
1 files changed, 111 insertions, 0 deletions
diff --git a/install/install_functions.php b/install/install_functions.php
new file mode 100644
index 00000000..3cfe13fb
--- /dev/null
+++ b/install/install_functions.php
@@ -0,0 +1,111 @@
1<?php
2/**
3 * wallabag, self hostable application allowing you to not miss any content anymore
4 *
5 * @category wallabag
6 * @author Nicolas LÅ“uillet <nicolas@loeuillet.org>
7 * @copyright 2013
8 * @license http://opensource.org/licenses/MIT see COPYING file
9 */
10
11function status() {
12$app_name = 'wallabag';
13
14$php_ok = (function_exists('version_compare') && version_compare(phpversion(), '5.3.3', '>='));
15$pdo_ok = class_exists('PDO');
16$pcre_ok = extension_loaded('pcre');
17$zlib_ok = extension_loaded('zlib');
18$mbstring_ok = extension_loaded('mbstring');
19$dom_ok = extension_loaded('DOM');
20$iconv_ok = extension_loaded('iconv');
21$tidy_ok = function_exists('tidy_parse_string');
22$curl_ok = function_exists('curl_exec');
23$parse_ini_ok = function_exists('parse_ini_file');
24$parallel_ok = ((extension_loaded('http') && class_exists('HttpRequestPool')) || ($curl_ok && function_exists('curl_multi_init')));
25$allow_url_fopen_ok = (bool)ini_get('allow_url_fopen');
26$filter_ok = extension_loaded('filter');
27$gettext_ok = function_exists("gettext");
28$gd_ok = extension_loaded('gd');
29$pdo_drivers = pdoDrivers();
30$pdo_drivers_passing = $pdo_drivers['sqlite'] || $pdo_drivers['mysql'] || $pdo_drivers['postgres'];
31$urlfetching = $curl_ok || $allow_url_fopen_ok;
32
33
34
35if (extension_loaded('xmlreader')) {
36 $xml_ok = true;
37} elseif (extension_loaded('xml')) {
38 $parser_check = xml_parser_create();
39 xml_parse_into_struct($parser_check, '<foo>&amp;</foo>', $values);
40 xml_parser_free($parser_check);
41 $xml_ok = isset($values[0]['value']);
42} else {
43 $xml_ok = false;
44}
45
46$status = array('app_name' => $app_name, 'php' => $php_ok, 'pdo' => $pdo_ok,
47 'pdo_drivers_passing' => $pdo_drivers_passing, 'xml' => $xml_ok, 'pcre' => $pcre_ok,
48 'zlib' => $zlib_ok, 'mbstring' => $mbstring_ok, 'dom' => $dom_ok, 'iconv' => $iconv_ok, 'tidy' => $tidy_ok, 'curl' => $curl_ok,
49 'parse_ini' => $parse_ini_ok, 'parallel' => $parallel_ok, 'allow_url_fopen' => $allow_url_fopen_ok, 'filter' => $filter_ok,
50 'gettext' => $gettext_ok, 'gd' => $gd_ok, 'urlfetching' => $urlfetching);
51
52return $status;
53}
54function isOkay() {
55 return !in_array(false, status());
56}
57
58function isPassing() {
59 $status = status();
60 unset($status['curl'], $status['parallel'], $status['tidy'], $status['gd'], $status['filter'], $status['allow_url_fopen']);
61 return !in_array(false, $status);
62}
63
64function pdoDrivers() {
65 $pdo_driver_sqlite = extension_loaded('pdo_sqlite');
66 $pdo_driver_mysql = extension_loaded('pdo_mysql');
67 $pdo_driver_postgres = extension_loaded('pdo_pgsql');
68
69 $pdo_drivers = array('sqlite' => $pdo_driver_sqlite, 'mysql' => $pdo_driver_mysql,
70 'postgres' => $pdo_driver_postgres);
71
72 return $pdo_drivers;
73}
74
75/* Function taken from at http://php.net/manual/en/function.rmdir.php#110489
76 * Idea : nbari at dalmp dot com
77 * Rights unknown
78 * Here in case of .gitignore files
79 */
80
81function delTree($dir, $withdirectory="true") {
82 $files = array_diff(scandir($dir), array('.','..'));
83 foreach ($files as $file) {
84 (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
85 }
86 if ($withdirectory) {
87 return rmdir($dir);
88 } else {
89 return true;
90 }
91 }
92
93function generate_salt() {
94 mt_srand(microtime(true)*100000 + memory_get_usage(true));
95 return md5(uniqid(mt_rand(), true));
96}
97
98function executeQuery($handle, $sql, $params) {
99 try
100 {
101 $query = $handle->prepare($sql);
102 $query->execute($params);
103 return $query->fetchAll();
104 }
105 catch (Exception $e)
106 {
107 return FALSE;
108 }
109}
110
111?> \ No newline at end of file