X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Pman.php;h=de79ee8a19761b7d780f76aa5e7edfca462b32b6;hb=refs%2Fheads%2Fwip_alan_T6494_translations_code_for_reports;hp=128bd7800eea8ad1d64ffa4c0fd7289d797fd1ea;hpb=ec828afb06c5ca5b9bb2762387f82ce617f81573;p=Pman.Base diff --git a/Pman.php b/Pman.php index 128bd78..de79ee8 100644 --- a/Pman.php +++ b/Pman.php @@ -41,7 +41,7 @@ class Pman extends HTML_FlexyFramework_Page use Pman_Core_AssetTrait; //outputJavascriptDir() //outputCssDir(); - + var $isDev = false; var $appName= ""; var $appLogo= ""; var $appShortName= ""; @@ -103,7 +103,9 @@ class Pman extends HTML_FlexyFramework_Page $this->version = $boot->version; $this->uiConfig = empty($boot->Pman['uiConfig']) ? false : $boot->Pman['uiConfig']; - if (!empty($boot->Pman['local_autoauth']) && + if (!empty($boot->Pman['local_autoauth']) && + !empty($_SERVER['SERVER_ADDR']) && + !empty($_SERVER['REMOTE_ADDR']) && ($_SERVER['SERVER_ADDR'] == '127.0.0.1') && ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') ) { @@ -113,6 +115,7 @@ class Pman extends HTML_FlexyFramework_Page if ( !empty($_REQUEST['isDev']) && + !empty($_SERVER['SERVER_ADDR']) && ( (($_SERVER['SERVER_ADDR'] == '127.0.0.1') && ($_SERVER['REMOTE_ADDR'] == '127.0.0.1')) || @@ -154,7 +157,8 @@ class Pman extends HTML_FlexyFramework_Page if (method_exists($c, $fn)) { call_user_func_array(array($c,$fn),$args); } - } + } + } function get($base, $opts=array()) @@ -169,12 +173,13 @@ class Pman extends HTML_FlexyFramework_Page // should really be moved to Login... - + /* if ($bits[0] == 'PasswordReset') { $this->linkFail = $this->resetPassword(@$bits[1],@$bits[2],@$bits[3]); header('Content-type: text/html; charset=utf-8'); return; - } + } + */ $au = $this->getAuthUser(); if ($au) { @@ -191,7 +196,7 @@ class Pman extends HTML_FlexyFramework_Page } - if (strlen($base)) { + if (strlen($base) && $bits[0] != 'PasswordReset') { $this->jerror("BADURL","invalid url: $base"); } // deliver template @@ -243,7 +248,9 @@ class Pman extends HTML_FlexyFramework_Page if (!is_a($this->company, 'DB_DataObject')) { // non-core pman projects return false; } - $this->company->get('comptype', 'OWNER'); + $e = DB_DataObject::Factory('core_enum')->lookupObject('COMPTYPE', 'OWNER'); + + $this->company->get('comptype_id', $e->id); return $this->company; } @@ -344,11 +351,26 @@ class Pman extends HTML_FlexyFramework_Page - + function jsencode($v, $header = false) + { + if ($header) { + header("Content-type: text/javascript"); + } + if (function_exists("json_encode")) { + $ret= json_encode($v); + if ($ret !== false) { + return $ret; + } + } + require_once 'Services/JSON.php'; + $js = new Services_JSON(); + return $js->encodeUnsafe($v); + + + + } - - - + /** * ---------------- Global Tools --------------- @@ -367,18 +389,42 @@ class Pman extends HTML_FlexyFramework_Page } } - + static $deleteOnExit = false; /** * generate a tempory file with an extension (dont forget to delete it) */ - function tempName($ext) + function deleteOnExitAdd($name) + { + if (self::$deleteOnExit === false) { + register_shutdown_function(array('Pman','deleteOnExit')); + self::$deleteOnExit = array(); + } + self::$deleteOnExit[] = $name; + } + + function tempName($ext, $deleteOnExit=false) { + $x = tempnam(ini_get('session.save_path'), HTML_FlexyFramework::get()->appNameShort.'TMP'); unlink($x); - return $x .'.'. $ext; + $ret = $x .'.'. $ext; + if ($deleteOnExit) { + $this->deleteOnExitAdd($ret); + } + return $ret; + } + static function deleteOnExit() + { + + foreach(self::$deleteOnExit as $fn) { + if (file_exists($fn)) { + unlink($fn); + } + } + } /** * ------------- Authentication password reset ------ ??? MOVEME? @@ -387,35 +433,6 @@ class Pman extends HTML_FlexyFramework_Page */ - function resetPassword($id,$t, $key) - { - - $au = $this->getAuthUser(); - if ($au) { - return "Already Logged in - no need to use Password Reset"; - } - - $u = DB_DataObject::factory('core_person'); - //$u->company_id = $this->company->id; - $u->active = 1; - if (!$u->get($id) || !strlen($u->passwd)) { - return "invalid id"; - } - - // validate key.. - if ($key != $u->genPassKey($t)) { - return "invalid key"; - } - $uu = clone($u); - $u->no_reset_sent = 0; - $u->update($uu); - - if ($t < strtotime("NOW - 1 DAY")) { - return "expired"; - } - $this->showNewPass = implode("/", array($id,$t,$key)); - return false; - } /** * jerrAuth: standard auth failure - with data that let's the UI know.. @@ -462,6 +479,11 @@ class Pman extends HTML_FlexyFramework_Page $this->transObj->query('ROLLBACK'); } + $cli = HTML_FlexyFramework::get()->cli; + if ($cli) { + echo "ERROR: " .$str . "\n"; // print the error first, as DB might fail.. + } + if ($type !== false) { if(!empty($errors)){ @@ -474,7 +496,6 @@ class Pman extends HTML_FlexyFramework_Page $cli = HTML_FlexyFramework::get()->cli; if ($cli) { - echo "ERROR: " .$str . "\n"; exit(1); // cli --- exit code to stop shell execution if necessary. } @@ -486,12 +507,7 @@ class Pman extends HTML_FlexyFramework_Page exit; } - - - require_once 'Services/JSON.php'; - $json = new Services_JSON(); - - // log all errors!!! + // log all errors!!! $retHTML = isset($_SERVER['CONTENT_TYPE']) && preg_match('#multipart/form-data#i', $_SERVER['CONTENT_TYPE']); @@ -508,14 +524,14 @@ class Pman extends HTML_FlexyFramework_Page if ($retHTML) { header('Content-type: text/html'); echo ""; - echo $json->encodeUnsafe(array( + echo $this->jsencode(array( 'success'=> false, 'errorMsg' => $str, 'message' => $str, // compate with exeption / loadexception. 'errors' => $errors ? $errors : true, // used by forms to flag errors. 'authFailure' => !empty($errors['authFailure']), - )); + ), false); echo ""; exit; } @@ -533,14 +549,14 @@ class Pman extends HTML_FlexyFramework_Page } - echo $json->encode(array( + echo $this->jsencode(array( 'success'=> false, 'data'=> array(), 'errorMsg' => $str, 'message' => $str, // compate with exeption / loadexception. 'errors' => $errors ? $errors : true, // used by forms to flag errors. 'authFailure' => !empty($errors['authFailure']), - )); + ),true); exit; @@ -557,8 +573,6 @@ class Pman extends HTML_FlexyFramework_Page echo "OK: " .$str . "\n"; exit; } - require_once 'Services/JSON.php'; - $json = new Services_JSON(); $retHTML = isset($_SERVER['CONTENT_TYPE']) && preg_match('#multipart/form-data#i', $_SERVER['CONTENT_TYPE']); @@ -576,13 +590,13 @@ class Pman extends HTML_FlexyFramework_Page echo ""; // encode html characters so they can be read.. echo str_replace(array('<','>'), array('\u003c','\u003e'), - $json->encodeUnsafe(array('success'=> true, 'data' => $str))); + $this->jsencode(array('success'=> true, 'data' => $str), false)); echo ""; exit; } - echo $json->encode(array('success'=> true, 'data' => $str)); + echo $this->jsencode(array('success'=> true, 'data' => $str),true); exit; @@ -601,8 +615,7 @@ class Pman extends HTML_FlexyFramework_Page $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']); @@ -621,7 +634,7 @@ class Pman extends HTML_FlexyFramework_Page 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)); + $this->jsencode(array('success' => true, 'total'=> $total, 'data' => $ar) + $extra, false)); echo ""; exit; } @@ -646,7 +659,7 @@ class Pman extends HTML_FlexyFramework_Page } - $ret = $json->encode(array('success' => true, 'total'=> $total, 'data' => $ar) + $extra); + $ret = $this->jsencode(array('success' => true, 'total'=> $total, 'data' => $ar) + $extra,true); if (!empty($cachekey)) { @@ -656,6 +669,7 @@ class Pman extends HTML_FlexyFramework_Page } file_put_contents($fn, $ret); } + echo $ret; exit; } @@ -727,7 +741,7 @@ class Pman extends HTML_FlexyFramework_Page $this->callModules('outputJavascriptIncludes', $this); } - + var $css_includes = array(); /** * outputCSSIncludes: * @@ -741,11 +755,25 @@ class Pman extends HTML_FlexyFramework_Page $mods = $this->modulesList(); + $is_bootstrap = in_array('BAdmin', $mods); + + $this->callModules('applyCSSIncludes', $this); + foreach($this->css_includes as $module => $ar) { + + if ($ar) { + $this->assetArrayToHtml( $ar , 'css'); + } + } + // old style... - probably remove this... $this->callModules('outputCSSIncludes', $this); foreach($mods as $mod) { // add the css file.. + if ($is_bootstrap && !file_exists($this->rootDir."/Pman/$mod/is_bootstrap")) { + echo '"; + continue; + } $this->outputCSSDir("Pman/$mod","*.css"); } @@ -836,15 +864,29 @@ class Pman extends HTML_FlexyFramework_Page ksort($arfiles); // just sort by name so it's consistant for serialize.. + // The original idea of this was to serve the files direct from a publicly available 'cache' directory. + // but that doesnt really make sense - as we can just serve it from the session directory where we stick + // cached data anyway. + + /* $compile = empty($ff->Pman['public_cache_dir']) ? 0 : 1; $basedir = $compile ? $ff->Pman['public_cache_dir'] : false; $baseurl = $compile ? $ff->Pman['public_cache_url'] : false; - + */ + $compile = 1; + $basedir = session_save_path(). '/translate-cache/'; + if (!file_exists($basedir)) { + mkdir($basedir,0755); + } + $baseurl = $this->baseURL . '/Admin/Translations'; - - $lsort = create_function('$a,$b','return strlen($a) > strlen($b) ? 1 : -1;'); - usort($files, $lsort); + if (PHP_VERSION_ID < 70000 ) { + $lsort = create_function('$a,$b','return strlen($a) > strlen($b) ? 1 : -1;'); + usort($files, $lsort); + } else { + usort($files, function($a,$b) { return strlen($a) > strlen($b) ? 1 : -1; }); + } $smod = str_replace('/','.',$mod);