/
ptable.php
129 lines (79 loc) · 3.34 KB
/
ptable.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
// ptable ja tema klasside/template'de path
define("P_PATH", "c:/xampp/htdocs/ptable"); // ptable asukoht
define("P_TMP", "c:/xampp/tmp"); // tmp kataloog (või nt: sys_get_temp_dir())
define("P_BASE_PATH", "/ptable"); // baasurl
define("P_EXTENSIONS", P_PATH. "/extensions"); // laienduste asukoht
define("P_TABLES", P_PATH. "/tables"); // tabelikirjelduste asukoht
define("P_TRANSLATIONS", P_PATH. "/lang/ptable.lang"); // tõlkefaili asukoht
// sessiooni alustamine
session_name("ptable");
session_start();
// lae baasi parameetrid ja vajalikud klassid
require_once("c:/xampp/security/ptable/_connector.php"); // andmebaasi parameetrid
require_once("classes/_db.php"); // andmebaasi klass
require_once("classes/_translations.php"); // tõlgete klass
require_once("classes/_ptable.php"); // ptable põhiklass
// laiendused
require_once("extensions/mission.php"); // laiendus
// DEMO: välise tabeli massiiv
require_once("demo/external_data.php");
// välise tabeli muutuja
if (isset($_POST["subdata"]))
$_POST["ptable"]["subdata"] = $_POST["subdata"];
// csv-faili allalaadimine
if (isset($_GET["download"]))
$_POST["ptable"]["download"] = $_GET["download"];
// eksportimiseks vajalik muutuja (sisaldab teavet, millist osa tabelist on vaja eksportida)
if (isset($_POST["export"]))
$_POST["ptable"]["export"] = $_POST["export"];
// initsialiseeri ptable
$pt = new PTABLE_EXT(@$_POST["ptable"], $data);
// väljasta tabel
echo $pt->content;
// --abifunktsioonid--------------------------------------------------------------------
// salvesta dump stringi
function get_dump($var) {
ob_start();
print_r($var);
return ob_get_clean();
}
// logi dump faili
function p_log($file, $str, $append = false) {
$path_found = false;
// võimalikud logifaili asukohad - esimesse kataloog, mis eksisteerib, sinna ka salvestatakse
$paths = [ P_TMP, "/var/tmp" ];
foreach ($paths as $path)
if (file_exists($path)) {
$path_found = true;
break;
}
// kui ei leitud kataloogi
if (!$path_found)
return false;
// kui ei ole puhas string, siis hangi antud objekti või massiivi dump
if (!is_string($str))
$str = get_dump($str);
// kas õnnestub faili avamine kirjutamiseks
if (!$fp = fopen($path. "/". $file, $append ? "a" : "w"))
return false;
// kirjuta dump faili
fputs($fp, $str. "\n");
fclose($fp);
return true;
}
// võrdle stringe (kui str2 anda massiiv, siis tagastab true, kui kasvõi üks massiivis olevatest vastab otsitule)
function compare_strings($str1, $str2, $encoding = false) {
// kui pole eraldi sunnitud mingit kodeeringut, siis võta default
if (!$encoding)
$encoding = mb_internal_encoding();
// kui ei ole massiiv, siis tee selleks
if (!is_array($str2))
$str2 = [ $str2 ];
// otsi elementide hulgast, kas leidub vastavusi
foreach ($str2 as $str)
if (strcmp(mb_strtoupper($str1, $encoding), mb_strtoupper($str, $encoding)) == 0)
return true;
return false;
}
?>