diff options
| author | Geo Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2026-07-12 15:51:52 +0300 |
|---|---|---|
| committer | Geo Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2026-07-12 15:51:52 +0300 |
| commit | 02608271bb2a9f3a65ed536984d306ee14b48e34 (patch) | |
| tree | 3f23ec48a694ec014e845c4f70d9b5f1c065403c /public/includes/functions.php | |
| download | kalassa-02608271bb2a9f3a65ed536984d306ee14b48e34.tar.gz kalassa-02608271bb2a9f3a65ed536984d306ee14b48e34.tar.bz2 kalassa-02608271bb2a9f3a65ed536984d306ee14b48e34.zip | |
Diffstat (limited to 'public/includes/functions.php')
| -rw-r--r-- | public/includes/functions.php | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/public/includes/functions.php b/public/includes/functions.php new file mode 100644 index 0000000..5e83994 --- /dev/null +++ b/public/includes/functions.php @@ -0,0 +1,135 @@ +<?php + +## Help Constants and Functions ------------------------------------------------ +//////////////////////////////////////////////////////////////////////////////// + + // Cache fields options (json format) //////////////////////////////////////// + // --------------------------------------------------------------------------- + $formJSON = file_get_contents('config/kallassa.json'); + define("FORMJSON", $formJSON); + + // Cache CCODE attributes (json format) ////////////////////////////////////// + // --------------------------------------------------------------------------- + $codeJSON = file_get_contents('config/ccode.json'); + define("CODEJSON", $codeJSON); + + // Parse anythig from a field //////////////////////////////////////////////// + // ARGS: + // $fkey = keyname (as in json fields oprions) + // $inp = input value (string) + // RETURN: array( + // 'label' = field label, + // 'multi' = (true|false) is multiple choice (select|radio|check) or not, + // 'value' = human readable value (or array of values if multi) + // ) ------------------------------------------------------------------------- + function parse_any($fkey, $inp ="") { + $formARRAY = json_decode(FORMJSON); + + foreach ($formARRAY as $key => $section) { + foreach ($section->childs as $kk => $field) { + + // find the field + if ($field->nam == $fkey) { + + $values = array(); // human readble values if select (comma separated) + + if ($field->typ == 'select') { + $multi = true; + + if ($inp !='') { + $codes = explode(",", $inp); // split coded values + foreach ($field->opt as $kkk => $v) { + if (in_array($v->id, $codes)) { // check if option is in array + $values[] = ($field->nam == 'ccode') ? ($v->id.": ".$v->tag) : $v->tag; + } + } + } + + } + else $multi = false; + + // return everything in an array + return array( + 'label' => $field->lab, + 'multi' => $multi, + 'value' => ($multi ? $values : $inp) + ); + } + } + } + + // if not escaped already, then name return same + return array('label' => $fkey, 'multi' => false, 'value' => $inp ); + } + + // Parse anythig from ccode + function parse_ccode($ckey) { + $ccARRAY = json_decode(CODEJSON); + + foreach ($ccARRAY as $key => $val) { + // find the field + if ($val->id == $ckey) { + // return everything in an array + return $val; + } + } + } + + + // Get totals of alla categories ///////////////////////////////////////////// + // RETURN array of items (value) per category (array key) + // --------------------------------------------------------------------------- + function get_totals() { + $result = array(); + $sum = 0; + + $dbc = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_DBMS); + if ($dbc->connect_errno) { + echo "Database connection failed; Please try in a few minutes. "; + if (TESTING) echo $dbc->connect_error; + $dbc->close(); die(); + } + $dbc->set_charset("utf8"); + + // prepare statemet + $stm = $dbc->prepare("SELECT ccode, count(id) total FROM `items` GROUP BY ccode"); + $stm->execute(); // execute query + $stm->store_result(); // store result + $stm->bind_result($c, $tot); + while ($stm->fetch()) { + // using md5() you can have any unicode string as key ;) + // credit: https://stackoverflow.com/questions/10696067/characters-allowed-in-php-array-keys -> Rob's answer + // but newer versions of php (v7+) seem to handle unicide keys nicely + $result[$c] = $tot; + $sum += $tot; + } + + $result['all'] = $sum; + + return $result; + } + + + // Preview Local Datetime //////////////////////////////////////////////////// + // (in Greek format and names ) + // --------------------------------------------------------------------------- + function local_dt($t) { + $day = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"); + $dayL = array("Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"); + $mon = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); + $monL = array("Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαϊ", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"); + $tm = array("am", "pm"); + $tmL = array("πμ", "μμ"); + $r = date("D. j M. Y, h:i:sa", $t); + $r = str_replace($day, $dayL, $r); + $r = str_replace($mon, $monL, $r); + $r = str_replace($tm, $tmL, $r); + return $r; + } + + + // Part of string + // UTF-8 SAFE + function str_part($str, $len) { + return (mb_strlen($str) > $len) ? mb_substr($str, 0, $len-1) ."…" : $str; + } |
