+ Перевод текста на клиенте, функция: trts
This commit is contained in:
@ -208,20 +208,9 @@
|
|||||||
$idType="object";
|
$idType="object";
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
$db = connectToDB();
|
||||||
{
|
if($db==null)
|
||||||
if(strpos($db_connection, 'sqlite')!==false)
|
sendError(1,trt('Error_connection_to_DB'));
|
||||||
{
|
|
||||||
$db = new PDO($db_connection);
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
$db = new PDO($db_connection, $db_login, $db_password);
|
|
||||||
$db->exec("SET timezone TO 'UTC';"); //Пользователь должен сам передавать свою зону или она должна быть в настройках
|
|
||||||
}
|
|
||||||
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
||||||
} catch (Exception $e)
|
|
||||||
{ sendError(1,'Connect error '.$_SERVER['HTTP_HOST'].': "'.$e->getMessage().'"!');
|
|
||||||
}
|
|
||||||
|
|
||||||
//Пытаемся автоматически залогинется по GUID из COOKIE (TODO авторизация должна быть в отдельном файле! Смотри директорию password )
|
//Пытаемся автоматически залогинется по GUID из COOKIE (TODO авторизация должна быть в отдельном файле! Смотри директорию password )
|
||||||
/*if($_SESSION['USER_ID']==null && $_COOKIE['GUID']!=null)
|
/*if($_SESSION['USER_ID']==null && $_COOKIE['GUID']!=null)
|
||||||
@ -633,7 +622,7 @@
|
|||||||
$sql_query=str_replace('${_user_id}',getSQLValue(gettype($_SESSION['USER_ID']),$_SESSION['USER_ID']),$sql_query);
|
$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')
|
if($objListR!=null && $objListR->getAttribute('order')!='' && $objListR->getAttribute('order')!=null && $objListR->getAttribute('order')!='null')
|
||||||
{
|
{
|
||||||
$sql_query=str_replace('${_order}',findNodeOnAttribute(findFirstNode($currNode,'objects-list'), "column","n",$objListR->getAttribute("order"))->getAttribute("order"),$sql_query);
|
$sql_query=str_replace('${_order}',getSQLValue('i4',findNodeOnAttribute(findFirstNode($currNode,'objects-list'), "column","n",$objListR->getAttribute("order"))->getAttribute("order")),$sql_query);
|
||||||
}else $sql_query=str_replace('${_order}','1',$sql_query);
|
}else $sql_query=str_replace('${_order}','1',$sql_query);
|
||||||
|
|
||||||
//sendError(1,$sql_query);
|
//sendError(1,$sql_query);
|
||||||
@ -677,66 +666,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//перебираем RS и строим XML только из тех столбцов которые записанны в секци objects-list поля column в не зависимости от их видимости
|
//перебираем RS и строим XML только из тех столбцов которые записанны в секци objects-list поля column в не зависимости от их видимости
|
||||||
/*
|
|
||||||
$xmlstring='';
|
|
||||||
$xmlstring.='<?xml version="1.0" encoding="utf-8"?>'."\n";
|
|
||||||
$xmlstring.='<metadata fn="'.$fn.'"><type n="'.$typename.'" pc="'.$pagecount.'" pp="'.$pagepos.'">'."\n";
|
|
||||||
//Перечисляю название выбираемых столбцов через запятую
|
|
||||||
$xmlstring.='<objects-list>';
|
|
||||||
$nextnode=findNode($currNode,'objects-list')->firstChild;
|
|
||||||
while ($nextnode)
|
|
||||||
{
|
|
||||||
if ($nextnode->nodeName=='column')
|
|
||||||
{
|
|
||||||
$xmlstring.='<column n="'.$nextnode->getAttribute("n").'"/>';
|
|
||||||
}
|
|
||||||
$nextnode = $nextnode->nextSibling;
|
|
||||||
}
|
|
||||||
$xmlstring.='</objects-list>';
|
|
||||||
|
|
||||||
$node=findFirstNode($reqNode,'objects-list');
|
|
||||||
$pos=-1;
|
|
||||||
while ($row = $res->fetch(PDO::FETCH_ASSOC))// $row - ассоциативный массив значений, ключи - названия столбцов
|
|
||||||
{
|
|
||||||
$pos++;
|
|
||||||
if (($pagepos!=-1)&&(($pos<($pagepos*$rowspagecount))||($pos>=$pagepos*$rowspagecount+$rowspagecount))) { continue; }
|
|
||||||
|
|
||||||
//разрешать или запрещять редактировать запись надо проверять в хранимке а также запрещять либо разрешать редактировать колонку
|
|
||||||
//для каждой записи формируеться строка настроек со значениями что нужно запретить в таком виде "iuds"
|
|
||||||
//$access=$row["access"];
|
|
||||||
$access=''; //u = enable update field, d = enable delete field
|
|
||||||
if(!array_key_exists("_u",$row)) { $access.="u"; } else { $access.=$row["_u"]; }
|
|
||||||
if(!array_key_exists("_d",$row)) { $access.="d"; } else { $access.=$row["_d"]; }
|
|
||||||
|
|
||||||
if(array_key_exists($currNode->getAttribute("ObjectID"),$row))
|
|
||||||
$xmlstring.=' <record id="'.$row[$currNode->getAttribute("ObjectID")].'" a="'.$access.'">';
|
|
||||||
else
|
|
||||||
$xmlstring.=' <record id="" a="'.$access.'">';
|
|
||||||
$nextnode=findNode($currNode,'objects-list')->firstChild;
|
|
||||||
while ($nextnode)
|
|
||||||
{
|
|
||||||
if ($nextnode->nodeName=='column')
|
|
||||||
{
|
|
||||||
if(array_key_exists($nextnode->getAttribute("n"),$row))
|
|
||||||
{
|
|
||||||
$field = $nextnode->getAttribute("n");
|
|
||||||
$xmlstring.='<![CDATA['.$row[$field].']]>';
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
sendError(1,"Column \"".$nextnode->getAttribute("n")."\" not exists in \"$typename\" for select!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$nextnode = $nextnode->nextSibling;
|
|
||||||
}
|
|
||||||
$xmlstring.='</record>'."\n";
|
|
||||||
}
|
|
||||||
$res->closeCursor();
|
|
||||||
$xmlstring.='</type></metadata>'."\n";
|
|
||||||
|
|
||||||
header('Content-type: text/xml');
|
|
||||||
echo $xmlstring;
|
|
||||||
*/
|
|
||||||
|
|
||||||
$obj = new StdClass();
|
$obj = new StdClass();
|
||||||
$obj->errorCode=0;
|
$obj->errorCode=0;
|
||||||
$obj->errorMessage = '';
|
$obj->errorMessage = '';
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
}else
|
}else
|
||||||
if($fn=='1')
|
if($fn=='1')
|
||||||
{
|
{
|
||||||
@session_start();
|
@session_start(['cookie_lifetime' => 43200,'cookie_secure' => true,'cookie_httponly' => true]);
|
||||||
echo session_id();
|
echo session_id();
|
||||||
exit;
|
exit;
|
||||||
}else
|
}else
|
||||||
|
|||||||
@ -20,6 +20,35 @@ function trt(key)
|
|||||||
else return val;
|
else return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function trts(text)
|
||||||
|
{
|
||||||
|
let result='';
|
||||||
|
let pLen=4; //Длина преамбулы trt(
|
||||||
|
let cut=0;
|
||||||
|
let from = 0; // Позиция поиска для итерации
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
let pos1 = text.indexOf('trt(', from);
|
||||||
|
if(pos1 >= 0)
|
||||||
|
{
|
||||||
|
from = pos1+pLen+1;
|
||||||
|
let pos2 = -1;
|
||||||
|
if(text[pos1+pLen] == '"') pos2 = text.indexOf('")', from);
|
||||||
|
if(text[pos1+pLen] == "'") pos2 = text.indexOf("')", from);
|
||||||
|
if(pos2 > 0)
|
||||||
|
{
|
||||||
|
result+=text.substring(cut, pos1);
|
||||||
|
let toTranslate=text.substring(pos1+pLen+1, pos2 );
|
||||||
|
result+=trt(toTranslate);
|
||||||
|
cut=pos2+2;
|
||||||
|
from = pos2;
|
||||||
|
}
|
||||||
|
}else break;
|
||||||
|
}
|
||||||
|
result+=text.substring(cut); //Копируем остатки
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
function deleteOption(sel,id){
|
function deleteOption(sel,id){
|
||||||
if(typeof sel == 'string') sel=document.getElementById(sel);
|
if(typeof sel == 'string') sel=document.getElementById(sel);
|
||||||
let i=0;
|
let i=0;
|
||||||
@ -1680,7 +1709,7 @@ class TWin
|
|||||||
//Подгрузить содержимое окна из указаного места
|
//Подгрузить содержимое окна из указаного места
|
||||||
//json - объект который передастца в виде JSON строки по URL
|
//json - объект который передастца в виде JSON строки по URL
|
||||||
//func - функция которая выполниться после загрузки данных в форму
|
//func - функция которая выполниться после загрузки данных в форму
|
||||||
load(url,json,func)
|
load(url,json,func,tr)
|
||||||
{
|
{
|
||||||
this.showProgressBar();
|
this.showProgressBar();
|
||||||
var r=createRequestObject();
|
var r=createRequestObject();
|
||||||
@ -1688,7 +1717,8 @@ class TWin
|
|||||||
{
|
{
|
||||||
return function(){
|
return function(){
|
||||||
if(r.readyState == 4){
|
if(r.readyState == 4){
|
||||||
w.innerHTML=r.responseText;
|
if(tr) w.innerHTML=trts(r.responseText);
|
||||||
|
else w.innerHTML=r.responseText;
|
||||||
thiz.hideProgressBar();
|
thiz.hideProgressBar();
|
||||||
if(func !== undefined && func!=null) func();
|
if(func !== undefined && func!=null) func();
|
||||||
|
|
||||||
@ -1699,7 +1729,7 @@ class TWin
|
|||||||
thiz.setCenter();
|
thiz.setCenter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}(r,this.co,this,func)
|
}(r,this.co,this,func,tr)
|
||||||
r.open( "POST", url, true );
|
r.open( "POST", url, true );
|
||||||
if(json!=null)
|
if(json!=null)
|
||||||
r.send(JSON.stringify(json));
|
r.send(JSON.stringify(json));
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
@session_start();
|
@session_start(['cookie_lifetime' => 43200,'cookie_secure' => true,'cookie_httponly' => true]);
|
||||||
//if(isset($_SESSION['REMOTE_ADDR']) && $_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']) unset($_SESSION["USER_ID"]); //Делаемся не авторизованным если зашли с другого ip адреса
|
//if(isset($_SESSION['REMOTE_ADDR']) && $_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']) unset($_SESSION["USER_ID"]); //Делаемся не авторизованным если зашли с другого ip адреса
|
||||||
if (isset($_REQUEST['id'])) $id = $_REQUEST['id']; else $id = '';
|
if (isset($_REQUEST['id'])) $id = $_REQUEST['id']; else $id = '';
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
if(isset($_GET[session_name()]) && $_GET[session_name()]!='') //Чтоб ID сессии переданная гетом был главней а не создавался заново
|
if(isset($_GET[session_name()]) && $_GET[session_name()]!='') //Чтоб ID сессии переданная гетом был главней а не создавался заново
|
||||||
session_id($_GET[session_name()]);
|
session_id($_GET[session_name()]);
|
||||||
@session_start();
|
@session_start(['cookie_lifetime' => 43200,'cookie_secure' => true,'cookie_httponly' => true]);
|
||||||
if(isset($_SESSION['REMOTE_ADDR']) && $_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']) unset($_SESSION["USER_ID"]); //Делаемся не авторизованным если зашли с другого ip адреса
|
if(isset($_SESSION['REMOTE_ADDR']) && $_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']) unset($_SESSION["USER_ID"]); //Делаемся не авторизованным если зашли с другого ip адреса
|
||||||
|
|
||||||
//sleep(1); //Тестирование с задержкой
|
//sleep(1); //Тестирование с задержкой
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
if(isset($_GET[session_name()]) && $_GET[session_name()]!='') //Чтоб сессия переданная гетом была главней
|
if(isset($_GET[session_name()]) && $_GET[session_name()]!='') //Чтоб сессия переданная гетом была главней
|
||||||
session_id($_GET[session_name()]);
|
session_id($_GET[session_name()]);
|
||||||
@session_start();
|
@session_start(['cookie_lifetime' => 43200,'cookie_secure' => true,'cookie_httponly' => true]);
|
||||||
if(isset($_SESSION['REMOTE_ADDR']) && $_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']) unset($_SESSION["USER_ID"]); //Делаемся не авторизованным если зашли с другого ip адреса
|
if(isset($_SESSION['REMOTE_ADDR']) && $_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']) unset($_SESSION["USER_ID"]); //Делаемся не авторизованным если зашли с другого ip адреса
|
||||||
|
|
||||||
require_once("../include/zip.lib.php");
|
require_once("../include/zip.lib.php");
|
||||||
|
|||||||
Reference in New Issue
Block a user