From e25f7ba2938004f7843cae92b1c6daf642b504aa Mon Sep 17 00:00:00 2001 From: igor Date: Tue, 25 Aug 2020 16:47:33 +0600 Subject: [PATCH] =?UTF-8?q?GIF=20=D0=B8=20=D0=B4=D1=80=D1=83=D0=B3=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BC=D0=B5=D0=BB=D0=BE=D1=87=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- metadata/dbms/form/g_b.gif | Bin 0 -> 306 bytes metadata/dbms/form/g_w.gif | Bin 0 -> 316 bytes metadata/dbms/form/x_b.gif | Bin 0 -> 82 bytes metadata/dbms/form/x_w.gif | Bin 0 -> 82 bytes metadata/dbms/records.php | 315 ++++++++++++------------------------ metadata/dbms/showrecord.js | 2 +- metadata/dbms/tools.js | 4 +- 7 files changed, 107 insertions(+), 214 deletions(-) create mode 100644 metadata/dbms/form/g_b.gif create mode 100644 metadata/dbms/form/g_w.gif create mode 100644 metadata/dbms/form/x_b.gif create mode 100644 metadata/dbms/form/x_w.gif diff --git a/metadata/dbms/form/g_b.gif b/metadata/dbms/form/g_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..3c73e862af0b2abbeee09db67739b59ba3df255e GIT binary patch literal 306 zcmZ?wbhEHbWM+_MSgOe2*wd^ z@9!TF5D*v`7!(u~5)u*`8X6uR9uW}{6%`d79UT)B6B`>F7Z(>FAD@_*n3R;1l9G~^ zmX@BDo{^D}nVI>YmO$~JpmR}bVo7R>LV0FMhJw4NZvcbhPZmZl273k_1|R@=l!49a zK>q~iD-!zRJgJ(QPV;)(oEJtYtZUOr)PBLn5MQ96ATfpeMYGkxv>oyvI%=HOhv>}w OlXm}QwVi?^gEas#kD*im literal 0 HcmV?d00001 diff --git a/metadata/dbms/form/g_w.gif b/metadata/dbms/form/g_w.gif new file mode 100644 index 0000000000000000000000000000000000000000..f7a25d7bbaf616fbc2d2782f963e6893631e77c3 GIT binary patch literal 316 zcmZ?wbhEHbWM+_MSZc?xZr!@|>o;rw;`JLgZrr$e)27XvH*MLnWh)46-MV$#HXz=* zZ953;*uDb@b^^h!UAuOJz#b6Xvu7^|?Ay0@-~N63_V3?+00<5qICSXH;UkBS965aS z=+WcHjvYUK>;wp$1c6g0Pn|k-8U)UqJ#+Rf7@s?L?)>?4=P!W3rHep#>C$BoxO(O4 z)vH&o0m1caH?Cj5as9@P8`p2%y!jst6#of27o{eaq^2m8XO?6rxO@5rFz7G<0my?4 zY(59(6)b=Jv|z{Vw_%H~rWr-*uodr&TPv!))N7&7a-mKWsZOUC=h>fR7F*5fO=~_G jqcQE2i&CeH0v|sw7dH<(2PYdFD@!jUGZVukM+R#E99X)J literal 0 HcmV?d00001 diff --git a/metadata/dbms/form/x_b.gif b/metadata/dbms/form/x_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..8e8db121d1a537be9e0fbaf39c6de5d0292e4e29 GIT binary patch literal 82 zcmZ?wbhEHbjEB+I7E=o--Nlj5G&n(GMaQE~LU{L(Y!pOzI$e;sK h1X9kxB*N2Fc_8!bxyi=6sy23umENulC=+3@1^}id7r_7k literal 0 HcmV?d00001 diff --git a/metadata/dbms/form/x_w.gif b/metadata/dbms/form/x_w.gif new file mode 100644 index 0000000000000000000000000000000000000000..48a121f44d23dfd83847a890eb32c54478c9a93e GIT binary patch literal 82 zcmZ?wbhEHbquery($sql); + while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов + { + $xmls=''.trts($rowX['xml']).''; + } + if($xmls!='') + { + //sendError("Metadata node \"".$name."\" not find in database!"); + $objXMLDocument = new DOMDocument(); + try + { + $objXMLDocument->loadXML($xmls); + } catch (Exception $e) + { sendError($e->getMessage()); + } + $currNode=findNodeOnAttribute($objXMLDocument->documentElement, "type","n",$name); + return $currNode; + }else{ + return null; + } + } function special_handler($exception) { @@ -236,36 +264,18 @@ session_write_close(); //Разблокируем сессионный файл так как запросы могут быть достаточно долгими //if (!isset($_SESSION['USER_ID']) || $_SESSION['USER_ID']=='') sendError('Вы не авторизованы! '.$_SERVER['PHP_SELF']); - $name=findFirstNode($reqNode, "type")->getAttribute("n"); + $typename=findFirstNode($reqNode, "type")->getAttribute("n"); + $currNode=getMetadataNode($typename); - $xmls=''; - $sql='select xml from '.$Schema.'_metadata where del=false and name=\''.$name.'\';'; - $resX = $db->query($sql); - while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов - { - $xmls=''.trts($rowX['xml']).''; - } - if($xmls=='') - { - sendError("Metadata node \"".$name."\" not find in database!"); - } - - $objXMLDocument = new DOMDocument(); - try - { //$objXMLDocument->load('metadata.xml'); - $objXMLDocument->loadXML($xmls); - } catch (Exception $e) - { sendError($e->getMessage()); - } - - $currNode=findNodeOnAttribute($objXMLDocument->documentElement, "type","n",$name); if ($currNode!=null) { + $objXMLDocument=$currNode->ownerDocument; + //Вернём значение прав доступа для запрошенного объекта //$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 '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Insert_'.$name.'\') as allow;'; + //$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_'.$typename.'\' and a.group_id in (select group_id from "_UsersGroups" where user_id='.$_SESSION['USER_ID'].');' + $sql_query='select '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Insert_'.$typename.'\') as allow;'; $res = $db->query($sql_query); while ($row = $res->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов @@ -277,8 +287,8 @@ $currNode->setAttributeNode($xmlAttr); $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 '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Update_'.$name.'\') as allow;'; + //$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_'.$typename.'\' and a.group_id in (select group_id from "_UsersGroups" where user_id='.$_SESSION['USER_ID'].');'; + $sql_query='select '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Update_'.$typename.'\') as allow;'; $res = $db->query($sql_query); while ($row = $res->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов { @@ -289,8 +299,8 @@ $currNode->setAttributeNode($xmlAttr); $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 '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Delete_'.$name.'\') as allow;'; + //$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_'.$typename.'\' and a.group_id in (select group_id from "_UsersGroups" where user_id='.$_SESSION['USER_ID'].');'; + $sql_query='select '.$Schema.'p_getaccess('.getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']).',\'Delete_'.$typename.'\') as allow;'; $res = $db->query($sql_query); while ($row = $res->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов { @@ -318,36 +328,21 @@ Exit(); }else { - sendError('Не найден запрошенный узел: "'.$name.'"!'); + sendError('Не найден запрошенный узел: "'.$typename.'"!'); } }else if ($fn==1) //вставка записи (результат id записи) { + //if (!isset($_SESSION['USER_ID']) || $_SESSION['USER_ID']=='') sendError('Вы не авторизованы! '.$_SERVER['PHP_SELF']); session_write_close(); //Разблокируем сессионный файл так как запросы могут быть достаточно долгими - //if (!isset($_SESSION['USER_ID']) || $_SESSION['USER_ID']=='') sendError('Вы не авторизованы! '.$_SERVER['PHP_SELF']); + $typename=findFirstNode($reqNode,"type")->getAttribute("n"); - - $xmls=''; - $resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';'); - while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов - { - $xmls=''.trts($rowX['xml']).''; - } - if($xmls=='') - { - sendError("Metadata node \"".$name."\" is empty!"); - } - - $objXMLDocument = new DOMDocument(); - try - { //$objXMLDocument->load('metadata.xml'); - $objXMLDocument->loadXML($xmls); - } catch (Exception $e) - { sendError($e->getMessage()); - } - $currNode=findNodeOnAttribute($objXMLDocument->documentElement, "type","n",$typename); - if($currNode!=null) - { + $currNode=getMetadataNode($typename); + + if ($currNode!=null) + { + $objXMLDocument=$currNode->ownerDocument; + $sql_query=getCdataValue(findFirstNodeOnAttribute($currNode, "sql-query", "t", "i")); $nodeProp=findFirstNode($reqNode,"properties"); @@ -448,28 +443,12 @@ $obj_id=$nodeType->getAttribute("id"); $node_properties=findFirstNode($nodeType,"properties"); - $xmls=''; - $resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';'); - while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов - { - $xmls=''.trts($rowX['xml']).''; - } - if($xmls=='') - { - sendError("Metadata node \"".$name."\" is empty!"); - } - - $objXMLDocument = new DOMDocument(); - try - { //$objXMLDocument->load('metadata.xml'); - $objXMLDocument->loadXML($xmls); - } catch (Exception $e) - { sendError($e->getMessage()); - } + $currNode=getMetadataNode($typename); + + if ($currNode!=null) + { + $objXMLDocument=$currNode->ownerDocument; - $currNode=findNodeOnAttribute($objXMLDocument->documentElement, "type","n",$typename); - if($currNode!=null) - { $sql_query=getCdataValue(findFirstNodeOnAttribute($currNode, "sql-query", "t", "u")); //Представляем blob поля в SQL запросе в виде параметров $nodeProps=findFirstNode($reqNode,"properties"); @@ -572,27 +551,11 @@ $typename=$nodeType->getAttribute("n"); $obj_id=$nodeType->getAttribute("id"); - $xmls=''; - $resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';'); - while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов - { - $xmls=''.trts($rowX['xml']).''; - } - if($xmls=='') - { - sendError("Metadata node \"".$name."\" is empty!"); - } - - $objXMLDocument = new DOMDocument(); - try - { //$objXMLDocument->load('metadata.xml'); - $objXMLDocument->loadXML($xmls); - } catch (Exception $e) - { sendError($e->getMessage()); - } - $currNode=findNodeOnAttribute($objXMLDocument->documentElement, "type","n",$typename); - if($currNode!=null) - { + $currNode=getMetadataNode($typename); + if ($currNode!=null) + { + $objXMLDocument=$currNode->ownerDocument; + $sql_query=getCdataValue(findFirstNodeOnAttribute($currNode, "sql-query", "t", "d")); $sql_query=str_replace('${_user_id}',getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']),$sql_query); //Потому что PostgreSQL не может хранить id пользователя привязаного к сесии $sql_query=str_replace('${'.$currNode->getAttribute("ObjectID").'}',getSQLValue(gettype($obj_id),$obj_id),$sql_query); @@ -626,40 +589,22 @@ $nTypeR=findFirstNode($reqNode,'type'); $typename=$nTypeR->getAttribute("n"); $pagepos=$nTypeR->getAttribute("pp"); //текущяя страница page pos - - $xmls=''; - $resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';'); - while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов - { - $xmls=''.trts($rowX['xml']).''; - } - if($xmls=='') - { - sendError("Metadata node \"".$name."\" is empty!"); - } - - //Находим серверный XML узел по имени - $objXMLDocument = new DOMDocument(); - try - { //$objXMLDocument->load('metadata.xml'); - $objXMLDocument->loadXML($xmls); - } catch (Exception $e) - { sendError($e->getMessage()); - } - $nTypeS=findNodeOnAttribute($objXMLDocument->documentElement,"type","n",$typename); - if ($nTypeS!=null) - { + $currNode=getMetadataNode($typename); + if ($currNode!=null) + { + $objXMLDocument=$currNode->ownerDocument; + $objListR = findFirstNode($nTypeR,'objects-list'); //В переданном запросе может быть не полный фильтр заполняем серверный значениями из переданного - $f1=findNodeOnPath($nTypeS,'objects-list/filter'); + $f1=findNodeOnPath($currNode,'objects-list/filter'); $f2=findNodeOnPath($nTypeR,'objects-list/filter'); setFilter($f1,$f2);//заменить все значения первого фильтра значениями из второго //+++++++ //$objXMLDocument->saveXML($currNode) - $sql_query=getCdataValue(findNodeOnPath($nTypeS, "objects-list/sql-query")); + $sql_query=getCdataValue(findNodeOnPath($currNode, "objects-list/sql-query")); //sendError($sql_query); @@ -679,7 +624,7 @@ $sql_query=str_replace('${_user_id}',getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']),$sql_query); if($objListR!=null && $objListR->getAttribute('order')!='' && $objListR->getAttribute('order')!=null && $objListR->getAttribute('order')!='null') { - $sql_query=str_replace('${_order}',findNodeOnAttribute(findFirstNode($nTypeS,'objects-list'), "column","n",$objListR->getAttribute("order"))->getAttribute("order"),$sql_query); + $sql_query=str_replace('${_order}',findNodeOnAttribute(findFirstNode($currNode,'objects-list'), "column","n",$objListR->getAttribute("order"))->getAttribute("order"),$sql_query); }else $sql_query=str_replace('${_order}','1',$sql_query); //sendError($sql_query); @@ -708,7 +653,7 @@ } if(count($columns)==0)//Если нет ни одного столбца заполняем массив из серверного XML { - $nextnode=findNode($nTypeS,'objects-list'); + $nextnode=findNode($currNode,'objects-list'); if($nextnode) { $nextnode=$nextnode->firstChild;//Пытаемся заполнить из запроса $i=0; @@ -728,7 +673,7 @@ $xmlstring.=''."\n"; //Перечисляю название выбираемых столбцов через запятую $xmlstring.=''; - $nextnode=findNode($nTypeS,'objects-list')->firstChild; + $nextnode=findNode($currNode,'objects-list')->firstChild; while ($nextnode) { if ($nextnode->nodeName=='column') @@ -753,8 +698,8 @@ if(!array_key_exists("_u",$row)) { $access.="u"; } else { $access.=$row["_u"]; } if(!array_key_exists("_d",$row)) { $access.="d"; } else { $access.=$row["_d"]; } - $xmlstring.=' '; - $nextnode=findNode($nTypeS,'objects-list')->firstChild; + $xmlstring.=' '; + $nextnode=findNode($currNode,'objects-list')->firstChild; while ($nextnode) { if ($nextnode->nodeName=='column') @@ -794,28 +739,11 @@ $typename=$node->getAttribute("n"); $idval=$node->getAttribute("id"); //Значение идентификатора - $xmls=''; - $resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';'); - while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов - { - $xmls=''.trts($rowX['xml']).''; - } - if($xmls=='') - { - sendError("Metadata node \"".$name."\" is empty!"); - } - - //Находим серверный XML узел по имени - $objXMLDocument = new DOMDocument(); - try - { //$objXMLDocument->load('metadata.xml'); - $objXMLDocument->loadXML($xmls); - } catch (Exception $e) - { sendError($e->getMessage()); - } - $currNode=findNodeOnAttribute($objXMLDocument->documentElement, "type","n",$typename); - if($currNode!=null) - { + $currNode=getMetadataNode($typename); + if ($currNode!=null) + { + $objXMLDocument=$currNode->ownerDocument; + //Тип поля с ObjectID $nField=findFirstNodeOnAttribute(findNode($currNode, 'properties'), "prop", "n", $node->getAttribute('ObjectID')); $csql=findNode(findFirstNodeOnAttribute($currNode, "sql-query", "t", "s"), "#cdata-section"); @@ -910,35 +838,18 @@ //Теперь а нутри фильтра передаётся поэтому ненужно $propid=$tNodeR->getAttribute("id"); //-1 или '' то много записей иначе 1 должна вернуться //if($propid==-1 || $propid=='') $propid='NULL'; - $xmls=''; - $resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';'); - while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов - { - $xmls=''.trts($rowX['xml']).''; - } - if(!$xmls){ - sendError("XML node \"".$typename."\" not find!"); - } - - //ищем в метаданных нужный обьект и применяем фильтр для получения данных с помошью хранимой процедуры - $mdoc = new DOMDocument(); - try - { //$mdoc->load('metadata.xml'); - $mdoc->loadXML($xmls); - } catch (Exception $e) - { sendError($e->getMessage()); - } - //находим нужный узел - $node=findNodeOnAttribute($mdoc->documentElement, "type","n",$typename); - if($node==null) sendError("Not find \"".$typename."\"!"); + + $currNode=getMetadataNode($typename); + if($currNode==null) sendError("Not find \"".$typename."\"!"); + $objXMLDocument=$currNode->ownerDocument; $objListR = findFirstNode($tNodeR,'objects-list'); //Из запроса - $f1=findNodeOnPath($node, 'objects-list/filter'); + $f1=findNodeOnPath($currNode, 'objects-list/filter'); $f2=findNodeOnPath($tNodeR,'objects-list/filter'); setFilter($f1,$f2);//заменить все значения первого фильтра значениями из второго - $sql_query=getCdataValue(findNodeOnPath($node, "objects-list/sql-query")); + $sql_query=getCdataValue(findNodeOnPath($currNode, "objects-list/sql-query")); if($f1!=NULL) { $nextnode=$f1->firstChild; @@ -950,11 +861,11 @@ $nextnode = $nextnode->nextSibling; } } - //$sql_query=str_replace('${'.$node->getAttribute("ObjectID").'}',getSQLValue(gettype($propid),$propid),$sql_query); //Чтоб вернулась 1 запись если это не выпадающий + //$sql_query=str_replace('${'.$currNode->getAttribute("ObjectID").'}',getSQLValue(gettype($propid),$propid),$sql_query); //Чтоб вернулась 1 запись если это не выпадающий $sql_query=str_replace('${_user_id}',getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']),$sql_query); if($objListR!=null && $objListR->getAttribute('order')!='' && $objListR->getAttribute('order')!=null && $objListR->getAttribute('order')!='null') { - $sql_query=str_replace('${_order}',findNodeOnAttribute(findFirstNode($nTypeS,'objects-list'), "column","n",$objListR->getAttribute("order"))->getAttribute("order"),$sql_query); + $sql_query=str_replace('${_order}',findNodeOnAttribute(findFirstNode($currNode,'objects-list'), "column","n",$objListR->getAttribute("order"))->getAttribute("order"),$sql_query); }else $sql_query=str_replace('${_order}','1',$sql_query); try @@ -969,7 +880,7 @@ $xmlstring.=''."\n"; while ($row = $res->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов { - $xmlstring.=''; + $xmlstring.=''; $val=""; for($i=0;$igetAttribute("n"); $ext=$nTypeR->getAttribute("ext"); - $xmls=''; - $resX = $db->query('select xml from '.$Schema.'_metadata where del=false and name=\''.$typename.'\';'); - while ($rowX = $resX->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов - { - $xmls=''.trts($rowX['xml']).''; - } - if($xmls=='') - { - sendError("Metadata node \"".$name."\" is empty!"); - } - - //Находим серверный XML узел по имени - $objXMLDocument = new DOMDocument(); - try - { - //$objXMLDocument->load('metadata.xml'); - //$objXMLDocument->loadXML(parseGetText(file_get_contents('metadata.xml'))); - $objXMLDocument->loadXML($xmls); - } catch (Exception $e) - { sendError($e->getMessage()); - } + $currNode=getMetadataNode($typename); + if ($currNode!=null) + { + $objXMLDocument=$currNode->ownerDocument; - $nTypeS=findNodeOnAttribute($objXMLDocument->documentElement,"type","n",$typename); - if ($nTypeS!=null) - { //В переданном запросе может быть не полный фильтр заполняем серверный значениями из переданного - $f1=findNodeOnPath($nTypeS,'objects-list/filter'); + $f1=findNodeOnPath($currNode,'objects-list/filter'); $f2=findNodeOnPath($nTypeR,'objects-list/filter'); setFilter($f1,$f2);//заменить все значения первого фильтра значениями из второго + //Текстовые данные заполняются в поле caption и они вставляются в поля для информации что было заполнено //Выбираем параметры фильтра (Для информирования что было заполнено) - $filter=''.trt('Filter options').'
'; + $filter=''.trt('Filter_options').'
'; $nextnode=$f1->firstChild; while ($nextnode) { if ($nextnode->nodeName=='column') @@ -1153,7 +1045,8 @@ }else { //Ищем нужный узел и выполняем запрос - $nTypeO=findNodeOnAttribute($objXMLDocument->documentElement,"type","n",$nextnode->getAttribute("object")); + $nTypeO=getMetadataNode($nextnode->getAttribute("object")); + //$nTypeO=findNodeOnAttribute($objXMLDocument->documentElement,"type","n",$nextnode->getAttribute("object")); $sql_query=getCdataValue(findNodeOnPath($nTypeO, "objects-list/sql-query")); $sql_query=str_replace('${_user_id}',getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']),$sql_query); @@ -1205,7 +1098,7 @@ $nextnode = $nextnode->nextSibling; } - $sql_query=getCdataValue(findNodeOnPath($nTypeS, "objects-list/sql-query")); + $sql_query=getCdataValue(findNodeOnPath($currNode, "objects-list/sql-query")); $nextnode=$f1->firstChild; while ($nextnode) { if ($nextnode->nodeName=='column') @@ -1235,21 +1128,21 @@ { fwrite($fh, ''."\n"); fwrite($fh, ' '."\n"); - fwrite($fh, ' '.$nTypeS->getAttribute("d").''."\n"); + fwrite($fh, ' '.$currNode->getAttribute("d").''."\n"); fwrite($fh, ' '."\n"); fwrite($fh, ''); fwrite($fh, ' '."\n"); fwrite($fh, ' '."\n"); - fwrite($fh, ''.trt('Time and date of generation').': '.date('H:i:s m.d.Y').'
'); + fwrite($fh, ''.trt('Time_and_date_of_generation').': '.date('H:i:s m.d.Y').'
'); fwrite($fh, ''.trt('Creator').': '.$name); fwrite($fh, $filter); fwrite($fh, ' '."\n"); - fwrite($fh, ' '."\n"); + fwrite($fh, ' '."\n"); fwrite($fh, ' '."\n"); fwrite($fh, ' '); - $nextnode=findNode($nTypeS,'objects-list')->firstChild; + $nextnode=findNode($currNode,'objects-list')->firstChild; $col=0; while ($nextnode) { if ($nextnode->nodeName=='column') @@ -1263,7 +1156,7 @@ while ($row = $res->fetch(PDO::FETCH_ASSOC)) { fwrite($fh, ' '); - $nextnode=findNode($nTypeS,'objects-list')->firstChild; + $nextnode=findNode($currNode,'objects-list')->firstChild; while ($nextnode) { if ($nextnode->nodeName=='column') { @@ -1384,10 +1277,10 @@ { echo $e->getMessage(); } - $nTypeS=findNodeOnAttribute($objXMLDocument->documentElement,"type","n",$typename); - if ($nTypeS!=null) + $currNode=findNodeOnAttribute($objXMLDocument->documentElement,"type","n",$typename); + if ($currNode!=null) { - $pnode=findFirstNode($nTypeS,'properties'); + $pnode=findFirstNode($currNode,'properties'); $fnode=findFirstNodeOnAttribute($pnode,"prop","n",$field); //Поле в metedata.xml файла $nnode=findFirstNodeOnAttribute($pnode,"prop","n",$fnode->getAttribute("cd")); //Поле в metedata.xml с именем файла @@ -1408,12 +1301,12 @@ }else if($fnode->getAttribute("vt")=="file") //Отправить файл клиенту из файловой системы { //Тип поля с ObjectID - $nField=findFirstNodeOnAttribute(findNode($nTypeS, 'properties'), "prop", "n", $nTypeS->getAttribute('ObjectID')); - $csql=findNode(findFirstNodeOnAttribute($nTypeS, "sql-query", "t", "s"), "#cdata-section"); + $nField=findFirstNodeOnAttribute(findNode($currNode, 'properties'), "prop", "n", $currNode->getAttribute('ObjectID')); + $csql=findNode(findFirstNodeOnAttribute($currNode, "sql-query", "t", "s"), "#cdata-section"); if($csql!=NULL && $csql->nodeValue!="") //Есть ли SQL запрос { $sql_query=$csql->nodeValue; - $sql_query=str_replace('${'.$nTypeS->getAttribute("ObjectID").'}',getSQLValue($nField->getAttribute('vt'),$idval),$sql_query); + $sql_query=str_replace('${'.$currNode->getAttribute("ObjectID").'}',getSQLValue($nField->getAttribute('vt'),$idval),$sql_query); $sql_query=str_replace('${_user_id}',getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']),$sql_query); } diff --git a/metadata/dbms/showrecord.js b/metadata/dbms/showrecord.js index 1e01ded..3bd1182 100644 --- a/metadata/dbms/showrecord.js +++ b/metadata/dbms/showrecord.js @@ -1447,7 +1447,7 @@ class SRec this.rwin.setParent(this.win); this.rwin.setSize(280,130); this.rwin.setCaption(trt('Report')); - this.rwin.setContent('
'.findNode($nTypeS,'objects-list')->getAttribute("d").''.findNode($currNode,'objects-list')->getAttribute("d").'
'+trt('Preparing_of_report')+'
'); + this.rwin.setContent('
'+trt('Preparing_of_report')+'
'); this.appendFilter(); //Call data from server diff --git a/metadata/dbms/tools.js b/metadata/dbms/tools.js index 4662690..6a090ca 100644 --- a/metadata/dbms/tools.js +++ b/metadata/dbms/tools.js @@ -1260,8 +1260,8 @@ class TWin let imgB='g_b.png'; let imgX='x_w.png'; if(g_textColor1=='#000000') { //Если тёмный стиль - imgB = 'g_w.png'; - imgX = 'x_b.png'; + imgB = 'g_w.gif'; + imgX = 'x_b.gif'; } let str='';