Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1949611
importlang_progress.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Oct 29, 6:54 AM
Size
9 KB
Mime Type
text/x-php
Expires
Sat, Oct 31, 6:54 AM (10 h, 25 m)
Engine
blob
Format
Raw Data
Handle
963486
Attached To
rINP In-Portal
importlang_progress.php
View Options
<?php
##############################################################
##In-portal ##
##############################################################
## In-portal ##
## Intechnic Corporation ##
## All Rights Reserved, 1998-2002 ##
## ##
## No portion of this code may be copied, reproduced or ##
## otherwise redistributed without proper written ##
## consent of Intechnic Corporation. Violation will ##
## result in revocation of the license and support ##
## privileges along maximum prosecution allowed by law. ##
##############################################################
// new startup: begin
define
(
'REL_PATH'
,
'admin/config'
);
$relation_level
=
count
(
explode
(
'/'
,
REL_PATH
)
);
define
(
'FULL_PATH'
,
realpath
(
dirname
(
__FILE__
)
.
str_repeat
(
'/..'
,
$relation_level
)
)
);
require_once
FULL_PATH
.
'/kernel/startup.php'
;
// new startup: end
$FrontEnd
=
2
;
require_once
(
$pathtoroot
.
$admin
.
"/include/elements.php"
);
require_once
(
$pathtoroot
.
"kernel/admin/include/navmenu.php"
);
//require_once ($pathtolocal."admin/include/navmenu.php");
require_once
(
$pathtoroot
.
$admin
.
"/toolbar.php"
);
require_once
(
$pathtoroot
.
$admin
.
"/listview/listview.php"
);
include_once
(
$pathtoroot
.
"kernel/include/xml.php"
);
$section
=
"in-portal:lang_import"
;
$ado
=
&
GetADODBConnection
();
$MaxInserts
=
200
;
$PhraseTable
=
"ses_"
.
$objSession
->
GetSessionKey
().
"_"
.
GetTablePrefix
().
"ImportPhrases"
;
$EventTable
=
"ses_"
.
$objSession
->
GetSessionKey
().
"_"
.
GetTablePrefix
().
"ImportEvents"
;
$OverWrite
=
$_POST
[
'overwrite'
];
if
(
count
(
$_POST
)>
0
)
{
$Offset
=
0
;
$CurrentLang
=
0
;
$file
=
$_FILES
[
"lang_file"
];
if
(
is_array
(
$file
))
{
if
((
int
)
$file
[
"size"
]>
0
)
{
$filename
=
$pathtoroot
.
$admin
.
"/export/"
.
$file
[
"name"
];
move_uploaded_file
(
$file
[
"tmp_name"
],
$filename
)?
1
:
0
;
@
chmod
(
$filename
,
0666
);
if
(
file_exists
(
$filename
))
{
/* parse xml file */
$fp
=
@
fopen
(
$filename
,
"r"
);
$xml
=
@
fread
(
$fp
,
filesize
(
$filename
));
@
fclose
(
$fp
);
$objInXML
=
new
xml_doc
(
$xml
);
$objInXML
->
parse
();
$ado
->
Execute
(
"DROP TABLE IF EXISTS $PhraseTable"
);
$ado
->
Execute
(
"DROP TABLE IF EXISTS $EventTable"
);
$sql
=
"CREATE TABLE $PhraseTable SELECT Phrase,Translation,PhraseType,LanguageId FROM "
.
GetTablePrefix
().
"Phrase WHERE PhraseId=-1"
;
$ado
->
Execute
(
$sql
);
$sql
=
"CREATE TABLE $EventTable SELECT Template,MessageType,EventId,LanguageId FROM "
.
GetTablePrefix
().
"EmailMessage WHERE EmailMessageId=-1"
;
$ado
->
Execute
(
$sql
);
//$sql = "ALTER TABLE $EventTable ADD `Type` INT(11) default 0";
//$ado->Execute($sql);
$sql
=
"SELECT EventId,Event,Type FROM "
.
GetTablePrefix
().
"Events"
;
$rs
=
$ado
->
Execute
(
$sql
);
$Events
=
array
();
while
(
$rs
&&
!
$rs
->
EOF
)
{
$Events
[
$rs
->
fields
[
"Event"
].
"_"
.
$rs
->
fields
[
"Type"
]]
=
$rs
->
fields
[
"EventId"
];
$rs
->
MoveNext
();
}
$objInXML
->
getTag
(
0
,
$name
,
$attribs
,
$contents
,
$tags
);
if
(
is_array
(
$tags
))
{
foreach
(
$tags
as
$t
)
{
$LangRoot
=&
$objInXML
->
getTagByID
(
$t
);
$PackName
=
$LangRoot
->
attributes
[
"PACKNAME"
];
$l
=
$objLanguages
->
GetItemByField
(
"PackName"
,
$PackName
);
if
(
is_object
(
$l
))
{
$LangId
=
$l
->
Get
(
"LanguageId"
);
}
else
{
$l
=
new
clsLanguage
();
$l
->
Create
();
$NewLang
=
TRUE
;
$LangId
=
$l
->
Get
(
"LanguageId"
);
}
foreach
(
$LangRoot
->
children
as
$tag
)
{
switch
(
$tag
->
name
)
{
case
"PHRASES"
:
foreach
(
$tag
->
children
as
$PhraseTag
)
{
$Phrase
=
$ado
->
qstr
(
$PhraseTag
->
attributes
[
"LABEL"
]);
$Translation
=
$ado
->
qstr
(
base64_decode
(
$PhraseTag
->
contents
));
$PhraseType
=
$PhraseTag
->
attributes
[
"TYPE"
];
$psql
=
"INSERT INTO $PhraseTable (Phrase,Translation,PhraseType,LanguageId) VALUES ($Phrase,$Translation,$PhraseType,$LangId)"
;
mysql_query
(
$psql
,
$ado
->
_connectionID
);
//$ado->Execute($psql);
//echo "$psql <br>\n";
}
break
;
case
"DATEFORMAT"
:
$DateFormat
=
$tag
->
contents
;
break
;
case
"TIMEFORMAT"
:
$TimeFormat
=
$tag
->
contents
;
break
;
case
"DECIMAL"
:
$Decimal
=
$tag
->
contents
;
break
;
case
"THOUSANDS"
:
$Thousands
=
$tag
->
contents
;
break
;
case
'CHARSET'
:
$Charset
=
$tag
->
contents
;
break
;
case
"EVENTS"
:
foreach
(
$tag
->
children
as
$EventTag
)
{
$event
=
$EventTag
->
attributes
[
"EVENT"
];
$MsgType
=
strtolower
(
$EventTag
->
attributes
[
"MESSAGETYPE"
]);
$template
=
base64_decode
(
$EventTag
->
contents
);
$Type
=
$EventTag
->
attributes
[
"TYPE"
];
$EventId
=
$Events
[
$event
.
"_"
.
$Type
];
$esql
=
"INSERT INTO $EventTable (Template,MessageType,EventId,LanguageId) VALUES ('$template','$MsgType',$EventId,$LangId)"
;
mysql_query
(
$esql
,
$ado
->
_connectionID
);
//$ado->Execute($esql);
//echo htmlentities($esql)."<br>\n";
}
break
;
}
if
(
$NewLang
)
{
$l
->
Set
(
"PackName"
,
$PackName
);
$l
->
Set
(
"LocalName"
,
$PackName
);
$l
->
Set
(
"DateFormat"
,
$DateFormat
);
$l
->
Set
(
"TimeFormat"
,
$TimeFormat
);
$l
->
Set
(
"DecimalPoint"
,
$Decimal
);
$l
->
Set
(
"ThousandSep"
,
$Thousands
);
$l
->
Set
(
'Charset'
,
(
isset
(
$Charset
)&&
$Charset
)?
$Charset
:
'iso-8859-1'
);
$l
->
Update
();
}
}
}
$Types
=
implode
(
","
,
$_POST
[
"langtypes"
]);
$objSession
->
SetVariable
(
"lang_types"
,
$Types
);
$objSession
->
SetVariable
(
"lang_overwrite"
,(
int
)
$_POST
[
"overwrite"
]);
$Total
=
$Types
?
TableCount
(
$PhraseTable
,
"PhraseType IN ($Types)"
,
0
):
0
;
$objSession
->
SetVariable
(
"phrase_total"
,
$Total
);
$Total
=
TableCount
(
$EventTable
,
""
,
0
);
$objSession
->
SetVariable
(
"event_total"
,
$Total
);
$Offset
=
0
;
$Status
=
0
;
//unlink($filename);
}
}
}
}
}
else
{
$Offset
=
(
int
)
$_GET
[
"Offset"
];
$Status
=
(
int
)
$_GET
[
"Status"
];
$OverWrite
=
$objSession
->
GetVariable
(
"lang_overwrite"
);
$Types
=
$objSession
->
GetVariable
(
"lang_types"
);
if
(
$Status
==
0
)
{
$Total
=
$objSession
->
GetVariable
(
"phrase_total"
);
}
else
$Total
=
$objSession
->
GetVariable
(
"event_total"
);
}
//echo $Total;
if
(
$Total
==
""
)
{
$url
=
$adminURL
.
"/config/importlang.php?env="
.
BuildEnv
().
"&importerror=1"
;
Header
(
"Location: $url"
);
//reload($url);
}
$title
=
admin_language
(
"la_Text_LangImport"
).
" - "
.
admin_language
(
"la_Step"
).
" 2"
;
int_header
(
NULL
,
NULL
,
$title
);
?>
<TABLE cellSpacing="0" cellPadding="2" width="100%" class="tableborder">
<?php
if
(
$Status
==
0
)
{
$Total
=
$objSession
->
GetVariable
(
"phrase_total"
);
stats
(
prompt_language
(
"la_lang_import_progress"
),
$Offset
,
$Total
);
$Offset
=
$objLanguages
->
ReadImportTable
(
$PhraseTable
,
1
,
$Types
,
$OverWrite
,
$MaxInserts
,
$Offset
);
if
(
$Offset
<
$Total
)
{
$url
=
$_SERVER
[
"PHP_SELF"
].
"?env="
.
BuildEnv
().
"&Offset=$Offset&Status=0"
;
}
else
{
if
(
$objSession
->
GetVariable
(
"event_total"
)>
0
)
{
$url
=
$_SERVER
[
"PHP_SELF"
].
"?env="
.
BuildEnv
().
"&Offset=0&Status=1"
;
}
else
{
$ado
->
Execute
(
"DROP TABLE IF EXISTS $PhraseTable"
);
$ado
->
Execute
(
"DROP TABLE IF EXISTS $EventTable"
);
$url
=
$adminURL
.
"/config/config_lang.php?env="
.
BuildEnv
();
}
}
reload
(
$url
);
}
else
{
$Total
=
$objSession
->
GetVariable
(
"event_total"
);
$Offset
=
$objMessageList
->
ReadImportTable
(
$EventTable
,
$OverWrite
,
$MaxInserts
,
$Offset
);
if
(
$Offset
<
$Total
)
{
$url
=
$_SERVER
[
"PHP_SELF"
].
"?env="
.
BuildEnv
().
"&Offset=$Offset&Status=1"
;
}
else
{
$ado
->
Execute
(
"DROP TABLE IF EXISTS $PhraseTable"
);
$ado
->
Execute
(
"DROP TABLE IF EXISTS $EventTable"
);
$url
=
$adminURL
.
"/config/config_lang.php?env="
.
BuildEnv
();
}
stats
(
prompt_language
(
"la_event_import_progress"
),
$Offset
,
$Total
);
reload
(
$url
);
}
function
stats
(
$caption
,
$myprogress
,
$totalnum
)
{
global
$rootURL
,
$CancelURL
,
$PageTitle
;
if
(
$totalnum
>
0
)
{
$pct
=
round
((
$myprogress
/
$totalnum
)*
100
);
}
else
$pct
=
100
;
$o
.=
"<table width=
\"
100%
\"
border=
\"
0
\"
cellspacing=
\"
0
\"
cellpadding=
\"
4
\"
class=
\"
tableborder
\"
>"
;
echo
"
\n
"
;
$o
.=
int_subsection_title_ret
(
$caption
.
" - "
.
$pct
.
"%"
);
$o
.=
"<TR><TD align=
\"
middle
\"
><br />"
;
$o
.=
" <TABLE CLASS=
\"
tableborder_full
\"
width=
\"
75%
\"
>"
;
$o
.=
" <TR border=1><TD width=
\"
"
.
$pct
.
"%
\"
STYLE=
\"
background:url('"
.
$rootURL
.
"admin/images/progress_bar_segment.gif');
\"
> </TD>"
;
$comp_pct
=
100
-
$pct
;
$o
.=
" <TD bgcolor=#FFFFFF width=
\"
"
.
$comp_pct
.
"%
\"
></TD></TR>"
;
$o
.=
" </TABLE>"
;
$o
.=
" <BR /><input type=button VALUE=
\"
"
.
admin_language
(
"la_Cancel"
).
"
\"
CLASS=
\"
button
\"
ONCLICK=
\"
document.location='"
.
$CancelURL
.
"config_lang.php?env="
.
BuildEnv
().
"&action=cancel';
\"
>"
;
echo
$o
.
"
\n
"
;
echo
"</TD></TR></TABLE>"
;
}
function
reload
(
$url
)
{
print
"<script language=
\"
javascript
\"
>"
;
print
"setTimeout(
\"
document.location='$url';
\"
,100);"
;
print
" </script>"
;
//echo "<A HREF=\"$url\">Next </A>";
}
?>
<?php
int_footer
();
?>
Event Timeline
Log In to Comment