From d64db8e9570ce8a1e7270fc7abbcf538e4d49acf Mon Sep 17 00:00:00 2001 From: edward Date: Wed, 30 Mar 2016 18:27:44 +0800 Subject: [PATCH] RooTrait.php --- RooTrait.php | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/RooTrait.php b/RooTrait.php index 47bd73fd..e4c5e1ce 100644 --- a/RooTrait.php +++ b/RooTrait.php @@ -261,4 +261,85 @@ trait Pman_Core_RooTrait { exit; } + + function jdata($ar,$total=false, $extra=array(), $cachekey = false) + { + // should do mobile checking??? + if ($total == false) { + $total = count($ar); + } + $extra= $extra ? $extra : array(); + require_once 'Services/JSON.php'; + $json = new Services_JSON(); + + $retHTML = isset($_SERVER['CONTENT_TYPE']) && + preg_match('#multipart/form-data#i', $_SERVER['CONTENT_TYPE']); + + if ($retHTML){ + if (isset($_REQUEST['returnHTML']) && $_REQUEST['returnHTML'] == 'NO') { + $retHTML = false; + } + } else { + $retHTML = isset($_REQUEST['returnHTML']) && $_REQUEST['returnHTML'] !='NO'; + } + + if ($retHTML) { + + header('Content-type: text/html'); + echo ""; + // encode html characters so they can be read.. + echo str_replace(array('<','>'), array('\u003c','\u003e'), + $json->encodeUnsafe(array('success' => true, 'total'=> $total, 'data' => $ar) + $extra)); + echo ""; + exit; + } + + + // see if trimming will help... + if (!empty($_REQUEST['_pman_short'])) { + $nar = array(); + + foreach($ar as $as) { + $add = array(); + foreach($as as $k=>$v) { + if (is_string($v) && !strlen(trim($v))) { + continue; + } + $add[$k] = $v; + } + $nar[] = $add; + } + $ar = $nar; + + } + + + $ret = $json->encode(array('success' => true, 'total'=> $total, 'data' => $ar) + $extra); + + if (!empty($cachekey)) { + + $fn = ini_get('session.save_path') . '/json-cache'.date('/Y/m/d').'.'. $cachekey . '.cache.json'; + if (!file_exists(dirname($fn))) { + mkdir(dirname($fn), 0777,true); + } + file_put_contents($fn, $ret); + } + echo $ret; + exit; + } + + + + /** a daily cache **/ + function jdataCache($cachekey) + { + $fn = ini_get('session.save_path') . '/json-cache'.date('/Y/m/d').'.'. $cachekey . '.cache.json'; + if (file_exists($fn)) { + header('Content-type: application/json'); + echo file_get_contents($fn); + exit; + } + return false; + + } } -- 2.39.2