2010-12-02 23:34:41 +00:00
< ? php
/**
* translationsAjax . php
2012-10-17 17:56:47 -04:00
*
2010-12-02 23:34:41 +00:00
* ProcessMaker Open Source Edition
* Copyright ( C ) 2004 - 2008 Colosa Inc . 23
2012-10-17 17:56:47 -04:00
*
2010-12-02 23:34:41 +00:00
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation , either version 3 of the
* License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
2012-10-17 17:56:47 -04:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2010-12-02 23:34:41 +00:00
* GNU Affero General Public License for more details .
2012-10-17 17:56:47 -04:00
*
2010-12-02 23:34:41 +00:00
* You should have received a copy of the GNU Affero General Public License
2012-10-17 17:56:47 -04:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
*
* For more information , contact Colosa Inc , 2566 Le Jeune Rd . ,
2010-12-02 23:34:41 +00:00
* Coral Gables , FL , 33134 , USA , or email info @ colosa . com .
*/
2012-10-17 17:56:47 -04:00
ini_set ( 'display_errors' , 'off' );
G :: LoadInclude ( 'ajax' );
$function = get_ajax_value ( 'function' );
$cat = get_ajax_value ( 'cat' );
$node = get_ajax_value ( 'node' );
$lang = get_ajax_value ( 'lang' );
$langLabel = get_ajax_value ( 'langLabel' );
$text = get_ajax_value ( 'text' );
$table = " TRANSLATION " ;
$dbc = new DBConnection ();
$ses = new DBSession ( $dbc );
switch ( $function ) {
case " editLabel " :
case " changeLabel " :
$query = $ses -> execute ( " select * from $table where TRN_CATEGORY=' $cat ' and TRN_ID=' $node ' and TRN_LANG=' $lang ' " , false );
if ( $query -> count () === 0 ) {
2016-03-02 20:51:57 +00:00
echo ( " Not found " . htmlspecialchars ( " $cat : $node : $lang " ) . " in table ' " . htmlspecialchars ( $table ) . " ' " );
2012-10-17 17:56:47 -04:00
return ;
}
if ( $query -> count () > 1 ) {
2016-03-02 20:51:57 +00:00
echo ( " The $ " . htmlspecialchars ( " $cat : $node : $lang " ) . " in table ' " . htmlspecialchars ( $table ) . " ' is not unique " );
2012-10-17 17:56:47 -04:00
return ;
}
$res = $query -> read ();
switch ( $function ) {
case " editLabel " :
$myID = " input_ " . $cat . " _ " . $node . " _ " . $lang ;
$myID = 'aux' ;
echo ( " <input id=' $myID ' type='text' value=' " . htmlspecialchars ( $res [ 'TRN_VALUE' ] ) . " ' " . ajax_event ( " onblur " , " translationsAjax.php " , 'lang_' . $cat . '_' . $node . '_' . $lang , " 'function=changeLabel&cat= " . urlencode ( $cat ) . " &node= " . urlencode ( $node ) . " &lang= " . urlencode ( $lang ) . " &langLabel='+encodeURI(getElementById(' $myID ').value) " , '' ) . " /> " );
break ;
case " changeLabel " :
$update = $ses -> execute ( " update $table set TRN_VALUE=' $langLabel ' where TRN_CATEGORY=' $cat ' and TRN_ID=' $node ' and TRN_LANG=' $lang ' " , false );
$query = $ses -> execute ( " select * from $table where TRN_CATEGORY=' $cat ' and TRN_ID=' $node ' and TRN_LANG=' $lang ' " , false );
if ( $query -> count () === 0 ) {
2016-03-02 20:51:57 +00:00
echo ( " Not found " . htmlspecialchars ( " $cat : $node : $lang " ) . " in table ' " . htmlspecialchars ( $table ) . " ' " );
2012-10-17 17:56:47 -04:00
return ;
}
if ( $query -> count () > 1 ) {
2016-03-02 20:51:57 +00:00
echo ( " The " . htmlspecialchars ( " $cat : $node : $lang " ) . " in table ' " . htmlspecialchars ( $table ) . " ' is not unique " );
2012-10-17 17:56:47 -04:00
return ;
}
$res = $query -> read ();
echo ( htmlspecialchars ( $res [ 'TRN_VALUE' ] ));
break ;
break ;
}
G :: LoadClass ( " translation " );
2010-12-02 23:34:41 +00:00
2012-10-17 17:56:47 -04:00
$dbc = new DBConnection ();
$obj = new Translation ();
$obj -> SetTo ( $dbc );
$translation2 = $obj -> generateFileTranslation ();
break ;
case " listLanguage " :
$query = $ses -> execute ( " select distinct TRN_LANG from $table " , false );
$template = new TemplatePower ( PATH_CORE . 'templates/tools/translationsTP.html' );
$template -> prepare ();
$template -> newBlock ( " languageList " );
$template -> assign ( " ajaxDelLang " , ajax_event ( " onclick " , " translationsAjax " , " showSpace " , " 'function=delLanguage&lang='+encodeURI(getElementById('language').value) " , 'hideLangBar' ) );
2010-12-02 23:34:41 +00:00
2012-10-17 17:56:47 -04:00
for ( $r = 1 ; $r <= $query -> count (); $r ++ ) {
$res = $query -> read ();
$template -> newBlock ( " languageItem " );
$template -> assign ( " langIdRadio " , $res [ 'TRN_LANG' ] );
}
$template -> printToScreen ();
break ;
case " show " :
case " search " :
case " addField " :
case " addLanguage " :
case " delLanguage " :
case " delField " :
switch ( $function ) {
case " show " :
$query = $ses -> execute ( " select * from $table ORDER BY TRN_CATEGORY ASC , TRN_ID ASC , TRN_LANG ASC " , false );
break ;
case " search " :
$query = $ses -> execute ( " select * from $table where (TRN_CATEGORY like '% $text %') or (TRN_ID like '% $text %') or (TRN_LANG like '% $text %') or (TRN_VALUE like '% $text %') ORDER BY TRN_CATEGORY ASC , TRN_ID ASC , TRN_LANG ASC " , false );
break ;
case " addField " :
if ( ! defined ( 'LANGUAGES' ))
define ( 'LANGUAGES' , SYS_LANG );
$languages = explode ( " , " , LANGUAGES );
foreach ( $languages as $lang ) {
//$langLabel=$cat;
/* $update = $ses -> execute ( " insert into $table (TRN_CATEGORY , TRN_ID , TRN_LANG , TRN_VALUE )
2010-12-02 23:34:41 +00:00
values ( '$cat' , '$node' , '$lang' , '$langLabel' ) " ,false);*/
2012-10-17 17:56:47 -04:00
$update = $ses -> execute ( " insert into $table (TRN_CATEGORY , TRN_ID , TRN_LANG , TRN_VALUE )
values ( 'LABEL' , '$node' , '$lang' , '$langLabel' ) " , false );
}
$query = $ses -> execute ( " select * from $table ORDER BY TRN_CATEGORY ASC , TRN_ID ASC , TRN_LANG ASC " , false );
break ;
case " addLanguage " :
//SELECT distinct TRN_CATEGORY, TRN_ID, 'ne', 'new value' FROM TRANSLATION WHERE TRN_LANG<>'ne'
//INSERT INTO TRANSLATION(TRN_CATEGORY, TRN_ID, TRN_LANG , TRN_VALUE ) SELECT distinct TRN_CATEGORY, TRN_ID, 'ne', TRN_VALUE FROM TRANSLATION WHERE TRN_LANG<>'ne'
$query1 = $ses -> execute ( " select * from $table where TRN_LANG=' $lang ' " , false );
$query2 = $ses -> execute ( " select distinct TRN_CATEGORY, TRN_ID from $table " , false );
$existe = array ();
for ( $r = 1 ; $r <= $query1 -> count (); $r ++ ) {
$res = $query1 -> read ();
$existe [ $res [ 'TRN_CATEGORY' ] . " _ " . $res [ 'TRN_ID' ]] = $res ;
}
for ( $r = 1 ; $r <= $query2 -> count (); $r ++ ) {
$res = $query2 -> read ();
$cat = $res [ 'TRN_CATEGORY' ];
$node = $res [ 'TRN_ID' ];
$langLabel = $res [ 'TRN_CATEGORY' ];
if ( ! array_key_exists ( $cat . " _ " . $node , $existe ))
2010-12-02 23:34:41 +00:00
/* $update = $ses -> execute ( " insert into $table (TRN_CATEGORY , TRN_ID , TRN_LANG , TRN_VALUE )
values ( '$cat' , '$node' , '$lang' , '$langLabel' ) " ,false);*/
2012-10-17 17:56:47 -04:00
$update = $ses -> execute ( " insert into $table (TRN_CATEGORY , TRN_ID , TRN_LANG , TRN_VALUE )
values ( 'LABELS' , '$node' , 'en' , '$langLabel' ) " , false );
unset ( $update );
}
unset ( $existe );
unset ( $query1 );
unset ( $query2 );
$query = $ses -> execute ( " select * from $table ORDER BY TRN_CATEGORY ASC , TRN_ID ASC , TRN_LANG ASC " , false );
break ;
case " delLanguage " :
$update = $ses -> execute ( " delete from $table where TRN_LANG=' $lang ' " , false );
$query = $ses -> execute ( " select * from $table ORDER BY TRN_CATEGORY ASC , TRN_ID ASC , TRN_LANG ASC " , false );
break ;
case " delField " :
$update = $ses -> execute ( " delete from $table where TRN_CATEGORY=' $cat ' and TRN_ID=' $node ' and TRN_LANG=' $lang ' " , false );
//echo("delete from $table where TRN_CATEGORY='$cat' and TRN_ID='$node' and TRN_LANG='$lang'");
$query = $ses -> execute ( " select * from $table ORDER BY TRN_CATEGORY ASC , TRN_ID ASC , TRN_LANG ASC " , false );
break ;
}
$template = new TemplatePower ( PATH_CORE . 'templates/tools/translationsTP.html' );
$template -> prepare ();
$template -> newBlock ( " CONTENT " );
$template -> newBlock ( " table " );
$aCat = " " ;
$aNode = " " ;
for ( $i = 1 ; $i <= $query -> count (); $i ++ ) {
$template -> newBlock ( " row " );
$res = $query -> read ();
$cat = $res [ 'TRN_CATEGORY' ];
$node = $res [ 'TRN_ID' ];
$lang = $res [ 'TRN_LANG' ];
$langLabel = $res [ 'TRN_VALUE' ];
if ( $cat != $aCat ) {
$template -> newBlock ( " TDcat " );
$template -> assign ( " catId " , $res [ 'TRN_CATEGORY' ] );
$template -> assign ( " ajaxDelField " , ajax_event ( 'onclick' , 'translationsAjax' , 'showSpace' , " 'function=delField " . " &cat= " . urlencode ( $cat ) . " &node= " . urlencode ( $node ) . " &lang= " . urlencode ( $lang ) . " ' " , '' ) );
}
if (( $cat != $aCat ) || ( $node != $aNode )) {
$template -> newBlock ( " TDnode " );
$template -> assign ( " nodeId " , $res [ 'TRN_ID' ] );
}
//$aCat=$cat;
//$aNode=$node;
$template -> goToBlock ( " row " );
$template -> assign ( " catId " , $res [ 'TRN_CATEGORY' ] );
$template -> assign ( " nodeId " , $res [ 'TRN_ID' ] );
$template -> assign ( " langId " , $lang );
$template -> assign ( " langLabel " , $langLabel );
$template -> assign ( " ajaxLabel " , " onclick= \" if (!document.getElementById('aux')) " . ajax_init ( 'translationsAjax.php' , 'lang_' . $cat . '_' . $node . '_' . $lang , " 'function=editLabel " . " &cat= " . urlencode ( $cat ) . " &node= " . urlencode ( $node ) . " &lang= " . urlencode ( $lang ) . " ' " , 'focusInputLabel' ) . '"' );
}
$template -> printToScreen ();
break ;
2010-12-02 23:34:41 +00:00
}
?>
< ? php
2012-10-17 17:56:47 -04:00
function ajax_event ( $event = " onclick " , $page , $div , $param , $freturn = " " )
2010-12-02 23:34:41 +00:00
{
2012-10-17 17:56:47 -04:00
if ( $freturn === '' )
$freturn = " '' " ;
return " $event = \" ajax_init(' $page ',' $div ', $param , $freturn ) \" " ;
2010-12-02 23:34:41 +00:00
}
2012-10-17 17:56:47 -04:00
function ajax_init ( $page , $div , $param , $freturn = " " )
2010-12-02 23:34:41 +00:00
{
2012-10-17 17:56:47 -04:00
if ( $freturn == '' )
$freturn = " '' " ;
return " ajax_init(' $page ',' $div ', $param , $freturn ); " ;
2010-12-02 23:34:41 +00:00
}
2012-10-17 17:56:47 -04:00