= 1) $text = $text.' =====================';
error_log("$t, $d - $text");
$global_lastlog = $t;
}
//
function LimitRequest($name, $limit=1)
{
$t = controller()->memcache->get("yaamp-timestamp-$name-{$_SERVER['REMOTE_ADDR']}");
$a = controller()->memcache->get("yaamp-average-$name-{$_SERVER['REMOTE_ADDR']}");
if(!$a || !$t) $a = $limit;
else
{
$p = 33;
$a = ($a * (100-$p) + (microtime(true)-$t) * $p) / 100;
}
if($a < $limit) return false;
controller()->memcache->set("yaamp-timestamp-$name-{$_SERVER['REMOTE_ADDR']}", microtime(true), 300);
controller()->memcache->set("yaamp-average-$name-{$_SERVER['REMOTE_ADDR']}", $a, 300);
return true;
}
function getuserparam($address)
{
if(empty($address)) return null;
$address = substr($address, 0, 34);
$user = getdbosql('db_accounts', "username=:ad", array(':ad'=>$address));
return $user;
}
function getrenterparam($address)
{
if(empty($address)) return null;
$address = substr($address, 0, 34);
$renter = getdbosql('db_renters', "address=:ad", array(':ad'=>$address));
return $renter;
}
///////////////////////////////////////////////////////////
function GetSSModulePath($name)
{
$result = findfile('yaamp/models', "/\/{$name}.php/");
if(!$result)
$result = findfile('yaamp/modules', "/\/{$name}.php/");
// debuglog($result);
return $result;
}
function findfile($path, $pattern)
{
$result = null;
$path = rtrim(str_replace("\\", "/", $path), '/') . '/*';
foreach(glob($path) as $fullname)
{
if(is_dir($fullname))
{
$result = findfile($fullname, $pattern);
if($result) break;
}
else if(preg_match($pattern, $fullname))
{
$result = $fullname;
break;
}
}
return $result;
}
function mydump($obj, $level=2)
{
CVarDumper::dump($obj, $level, true);
echo "
";
}
function mydumperror($obj, $level=2)
{
CVarDumper::dumperror($obj, $level);
}
function debuglog($string, $level=2)
{
if(is_object($string))
{
mydumperror($string, $level);
return;
}
if(is_array($string))
{
mydumperror($string, $level);
return;
}
$now = now();
if(!is_dir(YAAMP_LOGS)) mkdir(YAAMP_LOGS);
error_log("[$now] $string\n", 3, YAAMP_LOGS."/debug.log");
}
function rentallog($string)
{
$now = now();
if(!is_dir(YAAMP_LOGS)) mkdir(YAAMP_LOGS);
error_log("[$now] $string\n", 3, YAAMP_LOGS."/rental.log");
debuglog($string);
}
/////////////////////////////////////////////////////////////////////////////////////////
function xmltoarray($xmlcontent)
{
$xml = simplexml_load_string($xmlcontent);
$json = json_encode($xml);
$array = json_decode($json, true);
return $array;
}
function XssFilter($data)
{
$data = str_replace(">", "", $data);
$data = str_replace("<", "", $data);
$data = str_replace("'", "", $data);
$data = str_replace('"', "", $data);
// $data = str_replace(".", "", $data);
$data = str_replace("\\", "", $data);
$data = str_replace("&", "", $data);
$data = str_replace(";", "", $data);
// mydump($data); die;
return $data;
}
function showDatetimePicker($model, $attribute, $options='')
{
$name = "{$model->tableSchema->name}[{$attribute}]";
$id = "{$model->tableSchema->name}_{$attribute}";
echo "";
echo "";
}
function showDatetimePicker2($name, $value, $options='', $callback='null')
{
$id = $name;
echo "";
if(empty($value)) $value = $name;
echo "";
}
function showSubmitButton($name)
{
echo "