new
This commit is contained in:
@ -48,34 +48,36 @@
|
||||
{
|
||||
global $db_connstr;
|
||||
|
||||
if($t=='object')
|
||||
{ if (($v=='-1')||($v=='')) $v='NULL';
|
||||
if($t=='object' && gettype($v)=='string'){
|
||||
$t='string'; //Если id шники uuid
|
||||
}
|
||||
|
||||
if($t=='object'){
|
||||
if (($v=='-1')||($v=='')) $v='NULL';
|
||||
}else
|
||||
if($t=='i1' || $t=='i2' || $t=='i4' || $t=='integer')
|
||||
{ if($v=='') $v='NULL';
|
||||
if($t=='i1' || $t=='i2' || $t=='i4' || $t=='integer'){
|
||||
if($v=='') $v='NULL';
|
||||
}else
|
||||
if($t=='f8' || $t=='f4' || $t=='real' || $t=='double')
|
||||
{ if($v=='')$v='NULL';
|
||||
if($t=='f8' || $t=='f4' || $t=='real' || $t=='double'){
|
||||
if($v=='')$v='NULL';
|
||||
$v=str_replace(',','.',$v); //Разделитель целой и дробной части точка
|
||||
}else
|
||||
if($t=='b')
|
||||
{ if($v=='') $v='NULL'; else
|
||||
if($t=='b'){
|
||||
if($v=='') $v='NULL'; else
|
||||
if($v=='1') $v='true'; else
|
||||
if($v=='0') $v='false';
|
||||
}else
|
||||
if($t=='string' || $t=='text' || $t=='dateTime' || $t=='time' || $t=='date' || $t=='file')
|
||||
{ if($v=='')
|
||||
{ $v='NULL';
|
||||
}else
|
||||
{
|
||||
if($t=='string' || $t=='text' || $t=='dateTime' || $t=='time' || $t=='date' || $t=='file'){
|
||||
if($v==''){
|
||||
$v='NULL';
|
||||
}else{
|
||||
if(strpos($db_connstr, 'pgsql')!==false)
|
||||
$v=str_replace("'","''",$v); //так как в SQL строку вставляется
|
||||
else
|
||||
$v=str_replace('\'','\\\'',$v); //так как в SQL строку вставляется
|
||||
$v='\''.$v.'\'';
|
||||
}
|
||||
}else
|
||||
{
|
||||
}else{
|
||||
$v='\''.$v.'\'';
|
||||
}
|
||||
return $v;
|
||||
@ -83,24 +85,27 @@
|
||||
|
||||
function getValue($t,$v)
|
||||
{
|
||||
if($t=='object' && gettype($v)=='string') $t='string'; //Если id шники uuid
|
||||
if($t=='object')
|
||||
{ if (($v=='-1')||($v=='')) $v=null;
|
||||
if($t=='object' && gettype($v)=='string'){
|
||||
$t='string'; //Если id шники uuid
|
||||
}
|
||||
|
||||
if($t=='object'){
|
||||
if (($v=='-1')||($v=='')) $v=null;
|
||||
}else
|
||||
if($t=='i4' || $t=='integer')
|
||||
{ if($v=='') $v=null;
|
||||
if($t=='i4' || $t=='integer'){
|
||||
if($v=='') $v=null;
|
||||
}else
|
||||
if($t=='f8')
|
||||
{ if($v=='')$v=null;
|
||||
if($t=='f8'){
|
||||
if($v=='')$v=null;
|
||||
$v=str_replace(',','.',$v); //Разделитель целой и дробной части точка
|
||||
}else
|
||||
if($t=='b')
|
||||
{ if($v=='') $v=null; else
|
||||
if($t=='b'){
|
||||
if($v=='') $v=null; else
|
||||
if($v=='1') $v=true; else
|
||||
if($v=='0') $v=false;
|
||||
}else
|
||||
if($t=='string' || $t=='dateTime' || $t=='date')
|
||||
{ if($v=='') $v=null;
|
||||
if($t=='string' || $t=='dateTime' || $t=='date'){
|
||||
if($v=='') $v=null;
|
||||
}
|
||||
return $v;
|
||||
}
|
||||
@ -150,14 +155,14 @@
|
||||
//Функция для перевода текста без применения GetText
|
||||
function __($text)
|
||||
{
|
||||
global $db,$lng;
|
||||
global $db,$lng,$Schema;
|
||||
|
||||
$language_id=1;
|
||||
if($lng=='kz') $language_id=2;
|
||||
if($lng=='en') $language_id=3;
|
||||
|
||||
$result='';
|
||||
$sql='select translation from main._translations where del=false and language_id='.$language_id.' and identifier=\''.$text.'\';';
|
||||
$sql='select translation from '.$Schema.'_translations where del=false and language_id='.$language_id.' and identifier=\''.$text.'\';';
|
||||
$res = NULL;
|
||||
try
|
||||
{
|
||||
@ -213,6 +218,16 @@
|
||||
}
|
||||
set_exception_handler('special_handler'); //чтоб не пойманные исключения посылались в виде XML
|
||||
|
||||
//Схема базы по умолчанияю
|
||||
if(!isset($Schema)) {
|
||||
$Schema="";
|
||||
}
|
||||
//Тип идентификаторов
|
||||
$idType="object";
|
||||
if(!isset($idType)) {
|
||||
$idType="object";
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if(strpos($db_connstr, 'sqlite')!==false)
|
||||
@ -228,16 +243,16 @@
|
||||
}
|
||||
|
||||
//Пытаемся автоматически залогинется по GUID из COOKIE
|
||||
if($_SESSION['USER_ID']==null && $_COOKIE['GUID']!=null)
|
||||
/*if($_SESSION['USER_ID']==null && $_COOKIE['GUID']!=null)
|
||||
{
|
||||
$res = $db->query("select * from main.p__Login(null,null,null,'".$_COOKIE['GUID']."');");
|
||||
$res = $db->query("select * from ".$Schema."p__Login(null,null,null,'".$_COOKIE['GUID']."');");
|
||||
//$res = $db->query("select * from \"p__Login_1\"(null,null,null,'".$_COOKIE['GUID']."');");
|
||||
if($res->rowCount()>0)
|
||||
{
|
||||
$result = $res->fetch(PDO::FETCH_ASSOC);
|
||||
$_SESSION['USER_ID']=$result['id'];
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
$fn=filter_input(INPUT_GET, 'fn', FILTER_VALIDATE_INT, array('options'=>array('default'=>-1)));
|
||||
$reqid=0; //id запроса "уникальный".
|
||||
@ -283,7 +298,7 @@
|
||||
$name=findFirstNode($reqNode, "type")->getAttribute("n");
|
||||
|
||||
$xmls='';
|
||||
$sql='select xml from main._metadata where del=false and name=\''.$name.'\';';
|
||||
$sql='select xml from '.$Schema.'_metadata where del=false and name=\''.$name.'\';';
|
||||
$resX = $db->query($sql);
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
@ -309,7 +324,7 @@
|
||||
//$allow=true;
|
||||
$allow=false;
|
||||
//$sql_query='select a.*,at.name from "_Access" a, "_Actions" at where a.del=false and at.id=a.action_id and at.name=\'Insert_'.$name.'\' and a.group_id in (select group_id from "_UsersGroups" where user_id='.$_SESSION['USER_ID'].');'
|
||||
$sql_query='select main.p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Insert_'.$name.'\') as allow;';
|
||||
$sql_query='select '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Insert_'.$name.'\') as allow;';
|
||||
|
||||
$res = $db->query($sql_query);
|
||||
while ($row = $res->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
@ -322,7 +337,7 @@
|
||||
|
||||
$allow=false;
|
||||
//$sql_query='select a.*,at.name from "_Access" a, "_Actions" at where a.del=false and at.id=a.action_id and at.name=\'Update_'.$name.'\' and a.group_id in (select group_id from "_UsersGroups" where user_id='.$_SESSION['USER_ID'].');';
|
||||
$sql_query='select main.p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Update_'.$name.'\') as allow;';
|
||||
$sql_query='select '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Update_'.$name.'\') as allow;';
|
||||
$res = $db->query($sql_query);
|
||||
while ($row = $res->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
@ -334,7 +349,7 @@
|
||||
|
||||
$allow=false;
|
||||
//$sql_query='select a.*,at.name from "_Access" a, "_Actions" at where a.del=false and at.id=a.action_id and at.name=\'Delete_'.$name.'\' and a.group_id in (select group_id from "_UsersGroups" where user_id='.$_SESSION['USER_ID'].');';
|
||||
$sql_query='select main.p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Delete_'.$name.'\') as allow;';
|
||||
$sql_query='select '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Delete_'.$name.'\') as allow;';
|
||||
$res = $db->query($sql_query);
|
||||
while ($row = $res->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
@ -372,7 +387,7 @@
|
||||
$typename=findFirstNode($reqNode,"type")->getAttribute("n");
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -493,7 +508,7 @@
|
||||
$node_properties=findFirstNode($nodeType,"properties");
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -617,7 +632,7 @@
|
||||
$obj_id=$nodeType->getAttribute("id");
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -672,7 +687,7 @@
|
||||
$pagepos=$nTypeR->getAttribute("pp"); //текущяя страница page pos
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -839,7 +854,7 @@
|
||||
$idval=$node->getAttribute("id"); //Значение идентификатора
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -883,7 +898,7 @@
|
||||
}
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -955,7 +970,7 @@
|
||||
//if($propid==-1 || $propid=='') $propid='NULL';
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -1051,7 +1066,7 @@
|
||||
}elseif($cmd==1) //Logout
|
||||
{
|
||||
//filter_input(INPUT_COOKIE, 'S_HASH', FILTER_VALIDATE_INT, array('options'=>array('default'=>-1)));
|
||||
$sql='delete from main._Logins where sessionid='.getSQLValue('string',$_COOKIE['GUID']).' and user_id='.getSQLValue('i4',$_SESSION['USER_ID']).';';
|
||||
$sql='delete from '.$Schema.'_Logins where sessionid='.getSQLValue('string',$_COOKIE['GUID']).' and user_id='.getSQLValue('i4',$_SESSION['USER_ID']).';';
|
||||
try
|
||||
{ $db->exec($sql);
|
||||
} catch (Exception $e)
|
||||
@ -1082,7 +1097,7 @@
|
||||
}else
|
||||
{
|
||||
$xs.=' <![CDATA[1]]><cmd><![CDATA['.$cmd.']]></cmd>'."\n";
|
||||
$res = $db->query('select * from main.p__Login('.getSQLValue('i4',$_SESSION['USER_ID']).',null,null,null,null,null);');
|
||||
$res = $db->query('select * from '.$Schema.'p__Login('.getSQLValue($idType,$_SESSION['USER_ID']).',null,null,null,null,null);');
|
||||
if($row = $res->fetch(PDO::FETCH_ASSOC))
|
||||
{
|
||||
$xs.=' <name><![CDATA['.$row['name'].']]></name>'."\n";
|
||||
@ -1103,7 +1118,7 @@
|
||||
$name='';
|
||||
$surname='';
|
||||
$patronymic='';
|
||||
$sql="select * from main.p__Login(".getSQLValue('i4',$_SESSION['USER_ID']).",'$login','$password',null,null,null);";
|
||||
$sql="select * from ".$Schema."p__Login(".getSQLValue($idType,$_SESSION['USER_ID']).",'$login','$password',null,null,null);";
|
||||
$res = $db->query($sql);
|
||||
if($res->rowCount()>0)
|
||||
{ $result = $res->fetch(PDO::FETCH_ASSOC);
|
||||
@ -1139,7 +1154,7 @@
|
||||
|
||||
//Выбираем информацию о текущем пользователе
|
||||
$name='';
|
||||
$sql="select Coalesce(surname,'') || ' ' || Coalesce(name,'') || ' ' || Coalesce(patronymic,'') as name from main._users where id=".$_SESSION['USER_ID'].";";
|
||||
$sql="select Coalesce(surname,'') || ' ' || Coalesce(name,'') || ' ' || Coalesce(patronymic,'') as name from ".$Schema."_users where id=".$_SESSION['USER_ID'].";";
|
||||
$res = $db->query($sql);
|
||||
if($res->rowCount()>0)
|
||||
{ $result = $res->fetch(PDO::FETCH_ASSOC);
|
||||
@ -1152,7 +1167,7 @@
|
||||
$ext=$nTypeR->getAttribute("ext");
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -1409,7 +1424,7 @@
|
||||
$idval = $_REQUEST['i']; //Идентификатор поля в базе
|
||||
|
||||
$xmls='';
|
||||
$resX = $db->query('select xml from main._metadata where del=false and name=\''.$typename.'\';');
|
||||
$resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';');
|
||||
while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
||||
{
|
||||
$xmls='<?xml version="1.0" encoding="UTF-8"?><metadata>'.parseGT($rowX['xml']).'</metadata>';
|
||||
@ -1437,7 +1452,7 @@
|
||||
|
||||
if($fnode->getAttribute("vt")=="blob") //Отправить файл клиенту из базы данных
|
||||
{
|
||||
$stmt = $db->prepare("SELECT \"$field\",length(\"$field\"),substring(\"$name\", position('_' IN \"$name\")+1) as name FROM main.\"$typename\" WHERE id='$idval'");
|
||||
$stmt = $db->prepare("SELECT \"$field\",length(\"$field\"),substring(\"$name\", position('_' IN \"$name\")+1) as name FROM $Schema\"$typename\" WHERE id='$idval'");
|
||||
$stmt->execute();
|
||||
$stmt->bindColumn(1, $blob, PDO::PARAM_LOB);
|
||||
$stmt->bindColumn(2, $size, PDO::PARAM_INT);
|
||||
|
||||
Reference in New Issue
Block a user