mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-21 12:19:56 +09:00
merge from 1.7.3.5(r13153:r13167)
git-svn-id: http://xe-core.googlecode.com/svn/trunk@13168 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
cc47d2b247
commit
2d3f149b5a
2042 changed files with 129266 additions and 126243 deletions
|
|
@ -1,287 +1,318 @@
|
|||
<?php
|
||||
/**
|
||||
* extract class
|
||||
* Class to save each file by using tags in the large xml
|
||||
*
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @package /modules/importer
|
||||
* @version 0.1
|
||||
*/
|
||||
class extract
|
||||
{
|
||||
/**
|
||||
* extract class
|
||||
* Class to save each file by using tags in the large xml
|
||||
*
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @package /modules/importer
|
||||
* @version 0.1
|
||||
* Temp file's key. made by md5 with filename
|
||||
* @var string
|
||||
*/
|
||||
class extract {
|
||||
/**
|
||||
* Temp file's key. made by md5 with filename
|
||||
* @var string
|
||||
*/
|
||||
var $key = '';
|
||||
/**
|
||||
* Temp cache file path
|
||||
* @var string
|
||||
*/
|
||||
var $cache_path = './files/cache/importer';
|
||||
/**
|
||||
* Temp index cache file path
|
||||
* @var string
|
||||
*/
|
||||
var $cache_index_file = './files/cache/importer';
|
||||
/**
|
||||
* File name
|
||||
* @var string
|
||||
*/
|
||||
var $filename = null;
|
||||
/**
|
||||
* Start tag
|
||||
* @var string
|
||||
*/
|
||||
var $startTag = '';
|
||||
/**
|
||||
* End tag
|
||||
* @var string
|
||||
*/
|
||||
var $endTag = '';
|
||||
/**
|
||||
* Item start tag
|
||||
* @var string
|
||||
*/
|
||||
var $itemStartTag = '';
|
||||
/**
|
||||
* Item end tag
|
||||
* @var string
|
||||
*/
|
||||
var $itemEndTag = '';
|
||||
var $key = '';
|
||||
/**
|
||||
* Temp cache file path
|
||||
* @var string
|
||||
*/
|
||||
var $cache_path = './files/cache/importer';
|
||||
/**
|
||||
* Temp index cache file path
|
||||
* @var string
|
||||
*/
|
||||
var $cache_index_file = './files/cache/importer';
|
||||
/**
|
||||
* File name
|
||||
* @var string
|
||||
*/
|
||||
var $filename = null;
|
||||
/**
|
||||
* Start tag
|
||||
* @var string
|
||||
*/
|
||||
var $startTag = '';
|
||||
/**
|
||||
* End tag
|
||||
* @var string
|
||||
*/
|
||||
var $endTag = '';
|
||||
/**
|
||||
* Item start tag
|
||||
* @var string
|
||||
*/
|
||||
var $itemStartTag = '';
|
||||
/**
|
||||
* Item end tag
|
||||
* @var string
|
||||
*/
|
||||
var $itemEndTag = '';
|
||||
|
||||
/**
|
||||
* File resource
|
||||
* @var string
|
||||
*/
|
||||
var $fd = null;
|
||||
/**
|
||||
* Index file resource
|
||||
* @var string
|
||||
*/
|
||||
var $index_fd = null;
|
||||
/**
|
||||
* File resource
|
||||
* @var string
|
||||
*/
|
||||
var $fd = null;
|
||||
/**
|
||||
* Index file resource
|
||||
* @var string
|
||||
*/
|
||||
var $index_fd = null;
|
||||
|
||||
/**
|
||||
* Start tag open status
|
||||
* @var bool
|
||||
*/
|
||||
var $isStarted = false;
|
||||
/**
|
||||
* End tag close status
|
||||
* @var bool
|
||||
*/
|
||||
var $isFinished = true;
|
||||
/**
|
||||
* Start tag open status
|
||||
* @var bool
|
||||
*/
|
||||
var $isStarted = false;
|
||||
/**
|
||||
* End tag close status
|
||||
* @var bool
|
||||
*/
|
||||
var $isFinished = true;
|
||||
|
||||
/**
|
||||
* Buffer
|
||||
* @var string
|
||||
*/
|
||||
var $buff = 0;
|
||||
/**
|
||||
* Buffer
|
||||
* @var string
|
||||
*/
|
||||
var $buff = 0;
|
||||
|
||||
/**
|
||||
* File count
|
||||
* @var int
|
||||
*/
|
||||
var $index = 0;
|
||||
/**
|
||||
* File count
|
||||
* @var int
|
||||
*/
|
||||
var $index = 0;
|
||||
|
||||
/**
|
||||
* Get arguments for constructor, file name, start tag, end tag, tag name for each item
|
||||
* @param string $filename
|
||||
* @param string $startTag
|
||||
* @param string $endTag
|
||||
* @param string $itemTag
|
||||
* @param string $itemEndTag
|
||||
* @return Object
|
||||
*/
|
||||
function set($filename, $startTag, $endTag, $itemTag, $itemEndTag) {
|
||||
$this->filename = $filename;
|
||||
/**
|
||||
* Get arguments for constructor, file name, start tag, end tag, tag name for each item
|
||||
* @param string $filename
|
||||
* @param string $startTag
|
||||
* @param string $endTag
|
||||
* @param string $itemTag
|
||||
* @param string $itemEndTag
|
||||
* @return Object
|
||||
*/
|
||||
function set($filename, $startTag, $endTag, $itemTag, $itemEndTag)
|
||||
{
|
||||
$this->filename = $filename;
|
||||
|
||||
$this->startTag = $startTag;
|
||||
if($endTag) $this->endTag = $endTag;
|
||||
$this->itemStartTag = $itemTag;
|
||||
$this->itemEndTag = $itemEndTag;
|
||||
$this->startTag = $startTag;
|
||||
if($endTag) $this->endTag = $endTag;
|
||||
$this->itemStartTag = $itemTag;
|
||||
$this->itemEndTag = $itemEndTag;
|
||||
|
||||
$this->key = md5($filename);
|
||||
$this->key = md5($filename);
|
||||
|
||||
$this->cache_path = './files/cache/importer/'.$this->key;
|
||||
$this->cache_index_file = $this->cache_path.'/index';
|
||||
$this->cache_path = './files/cache/importer/'.$this->key;
|
||||
$this->cache_index_file = $this->cache_path.'/index';
|
||||
|
||||
if(!is_dir($this->cache_path)) FileHandler::makeDir($this->cache_path);
|
||||
if(!is_dir($this->cache_path)) FileHandler::makeDir($this->cache_path);
|
||||
|
||||
return $this->openFile();
|
||||
}
|
||||
return $this->openFile();
|
||||
}
|
||||
|
||||
/**
|
||||
* Open an indicator of the file
|
||||
* @return Object
|
||||
*/
|
||||
function openFile() {
|
||||
FileHandler::removeFile($this->cache_index_file);
|
||||
$this->index_fd = fopen($this->cache_index_file,"a");
|
||||
// If local file
|
||||
if(!preg_match('/^http:/i',$this->filename)) {
|
||||
if(!file_exists($this->filename)) return new Object(-1,'msg_no_xml_file');
|
||||
$this->fd = fopen($this->filename,"r");
|
||||
// If remote file
|
||||
} else {
|
||||
$url_info = parse_url($this->filename);
|
||||
if(!$url_info['port']) $url_info['port'] = 80;
|
||||
if(!$url_info['path']) $url_info['path'] = '/';
|
||||
/**
|
||||
* Open an indicator of the file
|
||||
* @return Object
|
||||
*/
|
||||
function openFile()
|
||||
{
|
||||
FileHandler::removeFile($this->cache_index_file);
|
||||
$this->index_fd = fopen($this->cache_index_file,"a");
|
||||
// If local file
|
||||
if(!preg_match('/^http:/i',$this->filename))
|
||||
{
|
||||
if(!file_exists($this->filename)) return new Object(-1,'msg_no_xml_file');
|
||||
$this->fd = fopen($this->filename,"r");
|
||||
// If remote file
|
||||
}
|
||||
else
|
||||
{
|
||||
$url_info = parse_url($this->filename);
|
||||
if(!$url_info['port']) $url_info['port'] = 80;
|
||||
if(!$url_info['path']) $url_info['path'] = '/';
|
||||
|
||||
$this->fd = @fsockopen($url_info['host'], $url_info['port']);
|
||||
if(!$this->fd) return new Object(-1,'msg_no_xml_file');
|
||||
// If the file name contains Korean, do urlencode(iconv required)
|
||||
$path = $url_info['path'];
|
||||
if(preg_match('/[\xEA-\xED][\x80-\xFF]{2}/', $path)&&function_exists('iconv')) {
|
||||
$path_list = explode('/',$path);
|
||||
$cnt = count($path_list);
|
||||
$filename = $path_list[$cnt-1];
|
||||
$filename = urlencode(iconv("UTF-8","EUC-KR",$filename));
|
||||
$path_list[$cnt-1] = $filename;
|
||||
$path = implode('/',$path_list);
|
||||
$url_info['path'] = $path;
|
||||
}
|
||||
|
||||
$header = sprintf("GET %s?%s HTTP/1.0\r\nHost: %s\r\nReferer: %s://%s\r\nConnection: Close\r\n\r\n", $url_info['path'], $url_info['query'], $url_info['host'], $url_info['scheme'], $url_info['host']);
|
||||
@fwrite($this->fd, $header);
|
||||
$buff = '';
|
||||
while(!feof($this->fd)) {
|
||||
$buff .= $str = fgets($this->fd, 1024);
|
||||
if(!trim($str)) break;
|
||||
}
|
||||
if(preg_match('/404 Not Found/i',$buff)) return new Object(-1,'msg_no_xml_file');
|
||||
}
|
||||
|
||||
if($this->startTag) {
|
||||
while(!feof($this->fd)) {
|
||||
$str = fgets($this->fd, 1024);
|
||||
$pos = strpos($str, $this->startTag);
|
||||
if($pos !== false) {
|
||||
$this->buff = substr($this->buff, $pos+strlen($this->startTag));
|
||||
$this->isStarted = true;
|
||||
$this->isFinished = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->isStarted = true;
|
||||
$this->isFinished = false;
|
||||
}
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* Close an indicator of the file
|
||||
* @return void
|
||||
*/
|
||||
function closeFile() {
|
||||
$this->isFinished = true;
|
||||
fclose($this->fd);
|
||||
fclose($this->index_fd);
|
||||
}
|
||||
|
||||
function isFinished() {
|
||||
return $this->isFinished || !$this->fd || feof($this->fd);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save item
|
||||
* @return void
|
||||
*/
|
||||
function saveItems() {
|
||||
FileHandler::removeDir($this->cache_path.$this->key);
|
||||
$this->index = 0;
|
||||
while(!$this->isFinished()) {
|
||||
$this->getItem();
|
||||
$this->fd = @fsockopen($url_info['host'], $url_info['port']);
|
||||
if(!$this->fd) return new Object(-1,'msg_no_xml_file');
|
||||
// If the file name contains Korean, do urlencode(iconv required)
|
||||
$path = $url_info['path'];
|
||||
if(preg_match('/[\xEA-\xED][\x80-\xFF]{2}/', $path)&&function_exists('iconv'))
|
||||
{
|
||||
$path_list = explode('/',$path);
|
||||
$cnt = count($path_list);
|
||||
$filename = $path_list[$cnt-1];
|
||||
$filename = urlencode(iconv("UTF-8","EUC-KR",$filename));
|
||||
$path_list[$cnt-1] = $filename;
|
||||
$path = implode('/',$path_list);
|
||||
$url_info['path'] = $path;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge item
|
||||
* @return void
|
||||
*/
|
||||
function mergeItems($filename) {
|
||||
$this->saveItems();
|
||||
$header = sprintf("GET %s?%s HTTP/1.0\r\nHost: %s\r\nReferer: %s://%s\r\nConnection: Close\r\n\r\n", $url_info['path'], $url_info['query'], $url_info['host'], $url_info['scheme'], $url_info['host']);
|
||||
@fwrite($this->fd, $header);
|
||||
$buff = '';
|
||||
while(!feof($this->fd))
|
||||
{
|
||||
$buff .= $str = fgets($this->fd, 1024);
|
||||
if(!trim($str)) break;
|
||||
}
|
||||
if(preg_match('/404 Not Found/i',$buff)) return new Object(-1,'msg_no_xml_file');
|
||||
}
|
||||
|
||||
$filename = sprintf('%s/%s', $this->cache_path, $filename);
|
||||
if($this->startTag)
|
||||
{
|
||||
while(!feof($this->fd))
|
||||
{
|
||||
$str = fgets($this->fd, 1024);
|
||||
$pos = strpos($str, $this->startTag);
|
||||
if($pos !== false)
|
||||
{
|
||||
$this->buff = substr($this->buff, $pos+strlen($this->startTag));
|
||||
$this->isStarted = true;
|
||||
$this->isFinished = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->isStarted = true;
|
||||
$this->isFinished = false;
|
||||
}
|
||||
|
||||
$index_fd = fopen($this->cache_index_file,"r");
|
||||
$fd = fopen($filename,'w');
|
||||
return new Object();
|
||||
}
|
||||
|
||||
fwrite($fd, '<items>');
|
||||
while(!feof($index_fd)) {
|
||||
$target_file = trim(fgets($index_fd,1024));
|
||||
if(!file_exists($target_file)) continue;
|
||||
$buff = FileHandler::readFile($target_file);
|
||||
fwrite($fd, FileHandler::readFile($target_file));
|
||||
/**
|
||||
* Close an indicator of the file
|
||||
* @return void
|
||||
*/
|
||||
function closeFile()
|
||||
{
|
||||
$this->isFinished = true;
|
||||
fclose($this->fd);
|
||||
fclose($this->index_fd);
|
||||
}
|
||||
|
||||
FileHandler::removeFile($target_file);
|
||||
}
|
||||
fwrite($fd, '</items>');
|
||||
fclose($fd);
|
||||
}
|
||||
function isFinished()
|
||||
{
|
||||
return $this->isFinished || !$this->fd || feof($this->fd);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get item. Put data to buff
|
||||
* @return void
|
||||
*/
|
||||
function getItem() {
|
||||
if($this->isFinished()) return;
|
||||
/**
|
||||
* Save item
|
||||
* @return void
|
||||
*/
|
||||
function saveItems()
|
||||
{
|
||||
FileHandler::removeDir($this->cache_path.$this->key);
|
||||
$this->index = 0;
|
||||
while(!$this->isFinished())
|
||||
{
|
||||
$this->getItem();
|
||||
}
|
||||
}
|
||||
|
||||
while(!feof($this->fd)) {
|
||||
$startPos = strpos($this->buff, $this->itemStartTag);
|
||||
if($startPos !== false) {
|
||||
$this->buff = substr($this->buff, $startPos);
|
||||
$this->buff = preg_replace("/\>/",">\r\n",$this->buff,1);
|
||||
break;
|
||||
} elseif($this->endTag) {
|
||||
$endPos = strpos($this->buff, $this->endTag);
|
||||
if($endPos !== false) {
|
||||
$this->closeFile();
|
||||
return;
|
||||
}
|
||||
}
|
||||
$this->buff .= fgets($this->fd, 1024);
|
||||
}
|
||||
/**
|
||||
* Merge item
|
||||
* @return void
|
||||
*/
|
||||
function mergeItems($filename)
|
||||
{
|
||||
$this->saveItems();
|
||||
|
||||
$startPos = strpos($this->buff, $this->itemStartTag);
|
||||
if($startPos === false) {
|
||||
$this->closeFile();
|
||||
return;
|
||||
}
|
||||
$filename = sprintf('%s/%s', $this->cache_path, $filename);
|
||||
|
||||
$filename = sprintf('%s/%s.xml',$this->cache_path, $this->index++);
|
||||
fwrite($this->index_fd, $filename."\r\n");
|
||||
$index_fd = fopen($this->cache_index_file,"r");
|
||||
$fd = fopen($filename,'w');
|
||||
|
||||
$fd = fopen($filename,'w');
|
||||
fwrite($fd, '<items>');
|
||||
while(!feof($index_fd))
|
||||
{
|
||||
$target_file = trim(fgets($index_fd,1024));
|
||||
if(!file_exists($target_file)) continue;
|
||||
$buff = FileHandler::readFile($target_file);
|
||||
fwrite($fd, FileHandler::readFile($target_file));
|
||||
|
||||
while(!feof($this->fd)) {
|
||||
$endPos = strpos($this->buff, $this->itemEndTag);
|
||||
if($endPos !== false) {
|
||||
$endPos += strlen($this->itemEndTag);
|
||||
$buff = substr($this->buff, 0, $endPos);
|
||||
fwrite($fd, $this->_addTagCRTail($buff));
|
||||
fclose($fd);
|
||||
$this->buff = substr($this->buff, $endPos);
|
||||
break;
|
||||
}
|
||||
FileHandler::removeFile($target_file);
|
||||
}
|
||||
fwrite($fd, '</items>');
|
||||
fclose($fd);
|
||||
}
|
||||
|
||||
fwrite($fd, $this->_addTagCRTail($this->buff));
|
||||
$this->buff = fgets($this->fd, 1024);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get item. Put data to buff
|
||||
* @return void
|
||||
*/
|
||||
function getItem()
|
||||
{
|
||||
if($this->isFinished()) return;
|
||||
|
||||
function getTotalCount() {
|
||||
return $this->index;
|
||||
}
|
||||
while(!feof($this->fd))
|
||||
{
|
||||
$startPos = strpos($this->buff, $this->itemStartTag);
|
||||
if($startPos !== false)
|
||||
{
|
||||
$this->buff = substr($this->buff, $startPos);
|
||||
$this->buff = preg_replace("/\>/",">\r\n",$this->buff,1);
|
||||
break;
|
||||
}
|
||||
elseif($this->endTag)
|
||||
{
|
||||
$endPos = strpos($this->buff, $this->endTag);
|
||||
if($endPos !== false)
|
||||
{
|
||||
$this->closeFile();
|
||||
return;
|
||||
}
|
||||
}
|
||||
$this->buff .= fgets($this->fd, 1024);
|
||||
}
|
||||
|
||||
function getKey() {
|
||||
return $this->key;
|
||||
}
|
||||
$startPos = strpos($this->buff, $this->itemStartTag);
|
||||
if($startPos === false)
|
||||
{
|
||||
$this->closeFile();
|
||||
return;
|
||||
}
|
||||
|
||||
function _addTagCRTail($str) {
|
||||
$str = preg_replace('/<\/([^>]*)></i', "</$1>\r\n<", $str);
|
||||
return $str;
|
||||
}
|
||||
}
|
||||
?>
|
||||
$filename = sprintf('%s/%s.xml',$this->cache_path, $this->index++);
|
||||
fwrite($this->index_fd, $filename."\r\n");
|
||||
|
||||
$fd = fopen($filename,'w');
|
||||
|
||||
while(!feof($this->fd))
|
||||
{
|
||||
$endPos = strpos($this->buff, $this->itemEndTag);
|
||||
if($endPos !== false)
|
||||
{
|
||||
$endPos += strlen($this->itemEndTag);
|
||||
$buff = substr($this->buff, 0, $endPos);
|
||||
fwrite($fd, $this->_addTagCRTail($buff));
|
||||
fclose($fd);
|
||||
$this->buff = substr($this->buff, $endPos);
|
||||
break;
|
||||
}
|
||||
|
||||
fwrite($fd, $this->_addTagCRTail($this->buff));
|
||||
$this->buff = fgets($this->fd, 1024);
|
||||
}
|
||||
}
|
||||
|
||||
function getTotalCount()
|
||||
{
|
||||
return $this->index;
|
||||
}
|
||||
|
||||
function getKey()
|
||||
{
|
||||
return $this->key;
|
||||
}
|
||||
|
||||
function _addTagCRTail($str) {
|
||||
$str = preg_replace('/<\/([^>]*)></i', "</$1>\r\n<", $str);
|
||||
return $str;
|
||||
}
|
||||
}
|
||||
/* End of file extract.class.php */
|
||||
/* Location: ./modules/importer/extract.class.php */
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,71 +1,77 @@
|
|||
<?php
|
||||
/**
|
||||
* importerAdminView class
|
||||
* admin view class of the importer module
|
||||
*
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @package /modules/importer
|
||||
* @version 0.1
|
||||
*/
|
||||
class importerAdminView extends importer
|
||||
{
|
||||
/**
|
||||
* importerAdminView class
|
||||
* admin view class of the importer module
|
||||
*
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @package /modules/importer
|
||||
* @version 0.1
|
||||
* Initialization
|
||||
* Importer module is divided by general use and administrative use \n
|
||||
* @return void
|
||||
*/
|
||||
class importerAdminView extends importer {
|
||||
/**
|
||||
* Initialization
|
||||
* Importer module is divided by general use and administrative use \n
|
||||
* @return void
|
||||
*/
|
||||
function init() {
|
||||
}
|
||||
function init()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a form to upload the xml file
|
||||
* @return void
|
||||
*/
|
||||
function dispImporterAdminContent() {
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
/**
|
||||
* Display a form to upload the xml file
|
||||
* @return void
|
||||
*/
|
||||
function dispImporterAdminContent()
|
||||
{
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
|
||||
$source_type = Context::get('source_type');
|
||||
switch($source_type) {
|
||||
case 'member' :
|
||||
$template_filename = "member";
|
||||
break;
|
||||
case 'ttxml' :
|
||||
$oModuleModel = &getModel('module');
|
||||
//$mid_list = $oModuleModel->getMidList(); //perhaps mid_list variables not use
|
||||
//Context::set('mid_list', $mid_list);
|
||||
|
||||
$template_filename = "ttxml";
|
||||
break;
|
||||
case 'module' :
|
||||
$oModuleModel = &getModel('module');
|
||||
//$mid_list = $oModuleModel->getMidList(); //perhaps mid_list variables not use
|
||||
//Context::set('mid_list', $mid_list);
|
||||
|
||||
$template_filename = "module";
|
||||
break;
|
||||
case 'message' :
|
||||
$template_filename = "message";
|
||||
break;
|
||||
case 'sync' :
|
||||
$template_filename = "sync";
|
||||
break;
|
||||
default :
|
||||
$template_filename = "index";
|
||||
break;
|
||||
}
|
||||
$source_type = Context::get('source_type');
|
||||
switch($source_type)
|
||||
{
|
||||
case 'member' :
|
||||
$template_filename = "member";
|
||||
break;
|
||||
case 'ttxml' :
|
||||
$oModuleModel = &getModel('module');
|
||||
//$mid_list = $oModuleModel->getMidList(); //perhaps mid_list variables not use
|
||||
//Context::set('mid_list', $mid_list);
|
||||
|
||||
$this->setTemplateFile($template_filename);
|
||||
}
|
||||
$template_filename = "ttxml";
|
||||
break;
|
||||
case 'module' :
|
||||
$oModuleModel = &getModel('module');
|
||||
//$mid_list = $oModuleModel->getMidList(); //perhaps mid_list variables not use
|
||||
//Context::set('mid_list', $mid_list);
|
||||
|
||||
/**
|
||||
* Display a form to upload the xml file
|
||||
* @return void
|
||||
*/
|
||||
function dispImporterAdminImportForm() {
|
||||
$oDocumentModel = &getModel('document'); //for document lang use in this page
|
||||
$template_filename = "module";
|
||||
break;
|
||||
case 'message' :
|
||||
$template_filename = "message";
|
||||
break;
|
||||
case 'sync' :
|
||||
$template_filename = "sync";
|
||||
break;
|
||||
default :
|
||||
$template_filename = "index";
|
||||
break;
|
||||
}
|
||||
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
$this->setTemplateFile($template_filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a form to upload the xml file
|
||||
* @return void
|
||||
*/
|
||||
function dispImporterAdminImportForm()
|
||||
{
|
||||
$oDocumentModel = &getModel('document'); //for document lang use in this page
|
||||
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
|
||||
}
|
||||
/* End of file importer.admin.view.php */
|
||||
/* Location: ./modules/importer/importer.admin.view.php */
|
||||
|
|
|
|||
|
|
@ -1,42 +1,48 @@
|
|||
<?php
|
||||
/**
|
||||
* importer
|
||||
* high class of importer module
|
||||
*
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @package /modules/importer
|
||||
* @version 0.1
|
||||
*/
|
||||
class importer extends ModuleObject
|
||||
{
|
||||
/**
|
||||
* importer
|
||||
* high class of importer module
|
||||
*
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @package /modules/importer
|
||||
* @version 0.1
|
||||
* Implement if additional tasks are necessary when installing
|
||||
* @return Object
|
||||
*/
|
||||
class importer extends ModuleObject {
|
||||
/**
|
||||
* Implement if additional tasks are necessary when installing
|
||||
* @return Object
|
||||
*/
|
||||
function moduleInstall() {
|
||||
return new Object();
|
||||
}
|
||||
function moduleInstall()
|
||||
{
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* A method to check if successfully installed
|
||||
* @return bool
|
||||
*/
|
||||
function checkUpdate() {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* A method to check if successfully installed
|
||||
* @return bool
|
||||
*/
|
||||
function checkUpdate()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute update
|
||||
* @return Object
|
||||
*/
|
||||
function moduleUpdate() {
|
||||
return new Object();
|
||||
}
|
||||
/**
|
||||
* Execute update
|
||||
* @return Object
|
||||
*/
|
||||
function moduleUpdate()
|
||||
{
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-generate the cache file
|
||||
* @return void
|
||||
*/
|
||||
function recompileCache() {
|
||||
}
|
||||
}
|
||||
?>
|
||||
/**
|
||||
* Re-generate the cache file
|
||||
* @return void
|
||||
*/
|
||||
function recompileCache()
|
||||
{
|
||||
}
|
||||
}
|
||||
/* End of file importer.class.php */
|
||||
/* Location: ./modules/importer/importer.class.php */
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@
|
|||
<value xml:lang="ko"><![CDATA[데이터 이전을 위한 사전 준비 중입니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[XE is preparing for importing.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[データ移転のため、準備中です。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[正准备数据导入...]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[匯入資料中...]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[正准备数据导入]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[匯入資料中]]></value>
|
||||
<value xml:lang="fr"><![CDATA[On est en train de préparer pour transférer les données.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Идет подготовка для импортирования данных...]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Идет подготовка для импортирования данных]]></value>
|
||||
<value xml:lang="es"><![CDATA[데이터 이전을 위한 사전 준비중입니다.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[XE içe aktarım için hazırlanıyor.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Đang chuẩn bị cho việc chuyển dữ liệu.]]></value>
|
||||
|
|
@ -268,7 +268,7 @@
|
|||
</item>
|
||||
<item name="2">
|
||||
<value xml:lang="ko"><![CDATA[이전할 데이터 XML파일의 경로를 입력해주세요.
|
||||
상대 또는 절대 경로를 입력하시면 됩니다.]]></value>
|
||||
상대 또는 절대 경로를 입력하면 됩니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Please input the XML file's location that contains data to import.
|
||||
You may input both the absolute and relative path.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[データ変換を行うXMLファイルパスを入力してください。同じアカウントのサーバ上では、相対または絶対パスを、異なるサーバにアップロードされている場合は「http://アドレス..」を入力してください。]]></value>
|
||||
|
|
@ -279,7 +279,7 @@ You may input both the absolute and relative path.]]></value>
|
|||
<value xml:lang="fr"><![CDATA[Entrez le chemin du fichier en XML pour transférer les données.
|
||||
S'il est localisé dans le même compte, entréz le chemin absolut ou relatif. Sinon, entrez l'URL commençant avec http://..]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Пожайлуста, введите расположение XML файла, который Вы хотите импортировать.
|
||||
Если он находится в одном аккаунте, то введите абсолютный/относительный путь. Если нет, то введите URL, начинающийся с http://...]]></value>
|
||||
Если он находится в одном аккаунте, то введите абсолютный/относительный путь. Если нет, то введите URL, начинающийся с http://]]></value>
|
||||
<value xml:lang="es"><![CDATA[Ingrese la ubicación del archivo XML para transfer los datos.
|
||||
Puede ser ruta absoluto o relativo.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[lütfen içe aktarılacak veriyi içeren XML dosyalarının konumunu giriniz.
|
||||
|
|
@ -288,27 +288,27 @@ Kesin yol ve ilgili yol girebilirsiniz.]]></value>
|
|||
Hãy nhập đường dẫn cho File chứa Data trên Host dưới dạng http://..]]></value>
|
||||
</item>
|
||||
<item name="3">
|
||||
<value xml:lang="ko"><![CDATA[회원정보와 게시물 정보가 이전 후에 맞지 않을 수 있습니다. 이때 동기화를 하시면 user_id를 기반으로 올바르게 동작하도록 합니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Member and article data may not be corrected after the import. If so, please synchronize to recover them with user_id.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[会員情報と変換後の書き込みデータが一致しない場合があります。この場合は、同期化を行うと「user_id」をもとに正しく動作するようになります。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[数据导入后可能会导致会员信息和文章内容信息的误差。这时以user_id进行同步即可解决问题。]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[資料匯入後,可能會導致會員資料和文章內容產生誤差。請以『user_id』進行同步即可解決。]]></value>
|
||||
<value xml:lang="ko"><![CDATA[게시물과 글쓴이의 회원 정보가 일치하지 않는 경우 아이디를 기반으로 게시물에 대한 글쓴이의 회원 정보를 바로잡아 줍니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Member and article data may not be corrected after the import. If so, please synchronize to recover them with ID.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[会員情報と変換後の書き込みデータが一致しない場合があります。この場合は、同期化を行うと「ID」をもとに正しく動作するようになります。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[数据导入后可能会导致会员信息和文章内容信息的误差。这时以ID进行同步即可解决问题。]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[資料匯入後,可能會導致會員資料和文章內容產生誤差。請以『ID』進行同步即可解決。]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Les données des membres et ceux des articles peuvent ne pas s'accorder après la transfèrement. Dans ce cas, synchronisez S.V.P. Ça arrangera les données en étant basé sur le compte d'utilisateur.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Данные пользователей и статей могут быть некорректны после импорта. В таком случае, выполните синхронизацию для восстановления, основанного на user_id.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Данные пользователей и статей могут быть некорректны после импорта. В таком случае, выполните синхронизацию для восстановления, основанного на ID.]]></value>
|
||||
<value xml:lang="es"><![CDATA[La información del usuario y del documento podría ser incorrecto luego de la transferencia. Si ese es el caso, sincroniza para la corrección basado a la ID del usuario.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Veri içe aktarımından sonra üye ve makale verileri doğru olmayabilir. Eğer böyleyse lütfen verileri doğru elde etmek için, kullanıcı_kimliğiyle (user_id) senkronize ediniz.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Đã không thể kết nối tới File Data thành viên và bài viết. Nếu đã đúng đường dẫn xin hãy kiểm tra Data với user_id.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Veri içe aktarımından sonra üye ve makale verileri doğru olmayabilir. Eğer böyleyse lütfen verileri doğru elde etmek için, kullanıcı_kimliğiyle (ID) senkronize ediniz.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Đã không thể kết nối tới File Data thành viên và bài viết. Nếu đã đúng đường dẫn xin hãy kiểm tra Data với ID.]]></value>
|
||||
</item>
|
||||
<item name="99">
|
||||
<value xml:lang="ko"><![CDATA[데이터 이전중입니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Importing...]]></value>
|
||||
<value xml:lang="en"><![CDATA[Importing]]></value>
|
||||
<value xml:lang="jp"><![CDATA[データを変換しています。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[正在数据导入中...]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[資料匯入中...]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[正在数据导入中]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[資料匯入中]]></value>
|
||||
<value xml:lang="fr"><![CDATA[En train de transférer]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Идет процесс импортирования данных]]></value>
|
||||
<value xml:lang="es"><![CDATA[데이터를 이전중입니다]]></value>
|
||||
<value xml:lang="tr"><![CDATA[İçe Aktarılıyor...]]></value>
|
||||
<value xml:lang="tr"><![CDATA[İçe Aktarılıyor]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Đang đồng bộ hóa dữ liệu.]]></value>
|
||||
</item>
|
||||
</item>
|
||||
|
|
@ -317,11 +317,6 @@ Hãy nhập đường dẫn cho File chứa Data trên Host dưới dạng http:
|
|||
<value xml:lang="en"><![CDATA[Please enter the path of XML file.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[XMLファイルのパスを入力してください。]]></value>
|
||||
</item>
|
||||
<item name="path_info">
|
||||
<value xml:lang="ko"><![CDATA[상대 경로와 절대 경로 모두 입력 가능합니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[You can enter either relative path or absolute path.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[相対パスと絶対パスを入力できます。]]></value>
|
||||
</item>
|
||||
<item name="data_destination">
|
||||
<value xml:lang="ko"><![CDATA[데이터의 목적지를 선택하세요.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Select the destination of data.]]></value>
|
||||
|
|
@ -337,13 +332,8 @@ Hãy nhập đường dẫn cho File chứa Data trên Host dưới dạng http:
|
|||
<value xml:lang="en"><![CDATA[Select the destination of guestbook data.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ゲストブックデータの目的地を選択してください。]]></value>
|
||||
</item>
|
||||
<item name="import_desc">
|
||||
<value xml:lang="ko"><![CDATA[가상 사이트의 도메인을 입력한 후 <em>사이트 찾기</em>를 클릭하면 됩니다. 도메인을 빈 칸으로 남겨두면 모든 사이트의 목록을 보여줍니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Enter the domain of virtual site, and click <em>Find Site</em>. If you leave the domain field empty, list of all the sites is displayed.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[仮想サイトのドメインを入力し、<em>サイト検索</em>をクリックします。ドメインを空欄にしておくと、すべてのサイトのリストを表示します。]]></value>
|
||||
</item>
|
||||
<item name="msg_sync_member">
|
||||
<value xml:lang="ko"><![CDATA[동기화 버튼을 클릭하시면 회원정보와 게시물 정보의 동기화를 시작합니다.]]></value>
|
||||
<value xml:lang="ko"><![CDATA[동기화 버튼을 클릭하면 회원정보와 게시물 정보의 동기화를 시작합니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Please click on Synchronize button to start data synchronization.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[同期化ボタンをクリックすると会員情報と書き込みデータの情報の同期化が始まります。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[按同步按钮即可开始对会员信息和文章信息进行同步。]]></value>
|
||||
|
|
@ -513,29 +503,29 @@ Hãy nhập đường dẫn cho File chứa Data trên Host dưới dạng http:
|
|||
<value xml:lang="vi"><![CDATA[Lựa chọn này sẽ đồng bộ thông tin thành viên trước khi đồng bộ Bài viết và thành viên.]]></value>
|
||||
</item>
|
||||
<item name="about_importer">
|
||||
<value xml:lang="ko"><![CDATA[다른 프로그램의 데이터를 XE 데이터로 이전할 수 있습니다. 이전을 위해서는 <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" onclick="winopen(this.href);return false;">XML Exporter</a>를 이용해서 원하는 데이터를 XML파일로 생성 후 업로드해주셔야 합니다.]]></value>
|
||||
<value xml:lang="ko"><![CDATA[다른 프로그램의 데이터를 XML 형식으로 변환 후 업로드하면 XE로 이전할 수 있습니다. <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" target="_blank">XML Exporter</a>를 이용하면 XML파일로 변환할 수 있습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Data Importer will help you import Zeroboard4, Zeroboard5 Beta or other program's data into XE.
|
||||
In order to import, you first have to use <a href="http://code.google.com/p/xe-migration/" onclick="winopen(this.href);return false;">XML Exporter</a> to convert the data you want into XML File.]]></value>
|
||||
In order to import, you first have to use <a href="http://code.google.com/p/xe-migration/" target="_blank">XML Exporter</a> to convert the data you want into XML File.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ゼロボード4、zb5betaまたは他のプログラムの書き込みデータをXEのデータに変換することができます。
|
||||
変換するためには、<a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" onclick="winopen(this.href);return false;">XML Exporter</a>を利用して変換したい書き込みデータをXMLファイルで作成してアップロードしてください。]]></value>
|
||||
変換するためには、<a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" target="_blank">XML Exporter</a>を利用して変換したい書き込みデータをXMLファイルで作成してアップロードしてください。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[不仅可以导入Zeroboard 4,Zb5beta的数据,也可以把其他程序数据导入到XE当中。
|
||||
导入数据时请利用 <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" onclick="winopen(this.href);return false;">XML Exporter</a>生成XML文件后再上传。]]></value>
|
||||
导入数据时请利用 <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" target="_blank">XML Exporter</a>生成XML文件后再上传。]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[不僅可以匯入 Zeroboard 4,Zb5beta 的資料,也能夠把其他程式資料匯入到 XE 當中。
|
||||
匯入資料時,請利用 <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" onclick="winopen(this.href);return false;">XML Exporter</a> 建立 XML 檔案後再上傳。]]></value>
|
||||
匯入資料時,請利用 <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" target="_blank">XML Exporter</a> 建立 XML 檔案後再上傳。]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Vous pouvez transférer les données de Zeroboard4, de Zeroboard5 Beta ou d'autres logiciels aux données de XE.
|
||||
Pour transférer, vous devez utiliser <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" onclick="winopen(this.href);return false;">Exporteur de XML</a> pour convertir les données en fichier de XML, et puis téléchargez-le.]]></value>
|
||||
Pour transférer, vous devez utiliser <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" target="_blank">Exporteur de XML</a> pour convertir les données en fichier de XML, et puis téléchargez-le.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Вы можете импортировать данные Zeroboard4, Zeroboard5 Beta или других программ в XE.
|
||||
Чтобы импортировать, Вам следует использовать <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" onclick="winopen(this.href);return false;">XML Экспортер (XML Exporter)</a>, чтобы конвертировать нужные данные в XML Файл и затем загрузить его.]]></value>
|
||||
Чтобы импортировать, Вам следует использовать <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" target="_blank">XML Экспортер (XML Exporter)</a>, чтобы конвертировать нужные данные в XML Файл и затем загрузить его.]]></value>
|
||||
<value xml:lang="es"><![CDATA[Es posible trasferir los datos de Zeroboard4, zb5beta o de otros programas a XE.
|
||||
Para la transferencia debe utilizar <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" onclick="winopen(this.href);return false;">XML Exporter</a> para transformar los datos en archivo XML, y luego subir ese archivo.]]></value>
|
||||
Para la transferencia debe utilizar <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" target="_blank">XML Exporter</a> para transformar los datos en archivo XML, y luego subir ese archivo.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Veri Alıcısı XE'ye, Zeroboard4, Zeroboard5 Beta veya başka programların verilerini aktarmada yardımcı olacaktır.
|
||||
İçe aktarımı gerçekleştirebilmek için öncelikle <a href="http://code.google.com/p/xe-migration/" onclick="winopen(this.href);return false;">XML DışAktarımcı</a>'yı kullanıp istediğiniz veriyi XML türüne çevirmelisiniz.]]></value>
|
||||
İçe aktarımı gerçekleştirebilmek için öncelikle <a href="http://code.google.com/p/xe-migration/" target="_blank">XML DışAktarımcı</a>'yı kullanıp istediğiniz veriyi XML türüne çevirmelisiniz.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Bạn có thể chuyển Data từ Zeroboard4, Zeroboard5 Beta hay Data của những mã nguồn khác vào Data của XE.
|
||||
Để hiểu rõ hơn công việc này, bạn có thể tham khảo cách chuyển đổi Data của bạn vào XE khi bạn đã Upload chúng tại <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" onclick="winopen(this.href);return false;">XML Exporter</a>.]]></value>
|
||||
Để hiểu rõ hơn công việc này, bạn có thể tham khảo cách chuyển đổi Data của bạn vào XE khi bạn đã Upload chúng tại <a href="http://svn.xpressengine.com/zeroboard_xe/migration_tools/" target="_blank">XML Exporter</a>.]]></value>
|
||||
</item>
|
||||
<item name="about_target_path">
|
||||
<value xml:lang="ko"><![CDATA[첨부 파일을 받기 위해 제로보드4가 설치된 위치를 입력해주세요.
|
||||
같은 서버에 있을 경우 /home/아이디/public_html/bbs 등과 같이 제로보드4의 위치를 입력하시고
|
||||
같은 서버에 있을 경우 /home/아이디/public_html/bbs 등과 같이 제로보드4의 위치를 입력하고
|
||||
다른 서버일 경우 http:도메인/bbs 처럼 제로보드4가 설치된 곳의 url을 입력해주세요.]]></value>
|
||||
<value xml:lang="en"><![CDATA[To get attachments from Zeroboard4, please input the path where Zeroboard4 is installed.
|
||||
If it is located in the same server, please input Zeroboard4's path such as /home/USERID/public_html/bbs
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
<!--@if(__DEBUG__)-->
|
||||
<load target="js/importer_admin.js" usecdn="true" />
|
||||
<!--@else-->
|
||||
<load target="js/importer_admin.min.js" usecdn="true" />
|
||||
<!--@end-->
|
||||
<load cond="__DEBUG__" target="js/importer_admin.js" usecdn="true" />
|
||||
<load cond="!__DEBUG__" target="js/importer_admin.min.js" usecdn="true" />
|
||||
{@ $type_list = array('module'=>$lang->type_module, 'ttxml'=>$lang->type_ttxml, 'member'=>$lang->type_member, 'sync'=>$lang->type_syncmember, 'message'=>$lang->type_message) }
|
||||
<h1 class="h1">{$lang->importer}</h1>
|
||||
<div class="x_page-header">
|
||||
<h1>{$lang->importer} <a class="x_icon-question-sign" href="./admin/help/index.html#UMAN_content_importer" target="_blank">{$lang->help}</a></h1>
|
||||
</div>
|
||||
<p>{nl2br($lang->about_importer)}</p>
|
||||
|
|
|
|||
|
|
@ -1,118 +1,83 @@
|
|||
<include target="./header.html" />
|
||||
<load target="js/importer_admin.js" usecdn="true" />
|
||||
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/importer/tpl/index/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
|
||||
<form action="./" class="form" method="get" onsubmit="return doPreProcessing(this, 'documentForm')" id="documentForm">
|
||||
<form class="section" action="./" method="get" onsubmit="return doPreProcessing(this, 'documentForm')" id="documentForm">
|
||||
<input type="hidden" name="act" value="" />
|
||||
<input type="hidden" name="type" value="module" />
|
||||
<input type="hidden" name="unit_count" value="10" />
|
||||
<h2 class="h2">{$lang->type_module}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q">{$lang->xml_path} {$lang->path_info}</p>
|
||||
<p class="a checkxml">
|
||||
<input type="text" name="xml_file" value="./" />
|
||||
<button type="button">{$lang->cmd_check_path}</button>
|
||||
<em class="desc"></em><!--//class="error|success"-->
|
||||
</p>
|
||||
</li>
|
||||
<li class="xml ttxml modulefinder">
|
||||
<p class="q">{$lang->data_destination} <br />{$lang->import_desc}</p>
|
||||
<div class="a">
|
||||
<input type="text" name="site_keyword" /> <a href="#suggestion1" class="tgAnchor findsite">{$lang->find_site}</a>
|
||||
<div id="suggestion1" class="tgContent suggestion">
|
||||
<ul></ul>
|
||||
</div>
|
||||
</div>
|
||||
<p class="a">
|
||||
<select class="moduleList" style="width:290px">
|
||||
<option>{$lang->select_module}</option>
|
||||
</select>
|
||||
</p>
|
||||
<p class="a">
|
||||
<select class="moduleIdList" style="width:290px" name="target_module">
|
||||
<option>{$lang->select_module_id}</option>
|
||||
</select>
|
||||
</p>
|
||||
</li>
|
||||
<li class="ttxml modulefinder">
|
||||
<p class="q">{$lang->guestbook_destination}</p>
|
||||
<div class="a">
|
||||
<input type="text" name="site_keyword" /> <a href="#suggestion3" class="tgAnchor findsite">{$lang->find_site}</a>
|
||||
<div id="suggestion3" class="tgContent suggestion">
|
||||
<ul></ul>
|
||||
</div>
|
||||
</div>
|
||||
<p class="a">
|
||||
<select class="moduleList" style="width:290px">
|
||||
<option>{$lang->select_module}</option>
|
||||
</select>
|
||||
</p>
|
||||
<p class="a">
|
||||
<select class="moduleIdList" style="width:290px" name="guestbook_target_module">
|
||||
<option>{$lang->select_module_id}</option>
|
||||
</select>
|
||||
</p>
|
||||
</li>
|
||||
<li class="ttxml">
|
||||
<p class="q">{$lang->about_ttxml_user_id}</p>
|
||||
<p class="a"><input type="text" name="user_id" value="{$logged_info->user_id}" /></p>
|
||||
</li>
|
||||
<li class="syncmember">
|
||||
<p class="q">{$lang->import_step_desc[3]}</p>
|
||||
<p class="a"><input type="checkbox" name="isSync" value="Y" /> {$lang->type_syncmember}</p>
|
||||
</li>
|
||||
</ul>
|
||||
<input type="hidden" name="xe_validator_id" value="modules/importer/tpl/index/1" />
|
||||
<h2>{$lang->type_module}</h2>
|
||||
<div class="x_control-group checkxml">
|
||||
<span class="x_input-append">
|
||||
<label>{$lang->xml_path}</label>
|
||||
<input type="text" name="xml_file" value="./" style="width:280px;font:11px Tahoma, Geneva, sans-serif" />
|
||||
<button type="button" class="x_btn">{$lang->cmd_check_path}</button>
|
||||
</span>
|
||||
<p class="x_help-inline" style="line-height:26px"></p>
|
||||
</div>
|
||||
<div class="x_control-group xml ttxml">
|
||||
<label>{$lang->data_destination}</label>
|
||||
<input type="text" name="target_module" class="module_search" />
|
||||
</div>
|
||||
<div class="x_control-group ttxml">
|
||||
<label>{$lang->guestbook_destination}</label>
|
||||
<input type="text" name="guestbook_target_module" class="module_search" />
|
||||
</div>
|
||||
<div class="ttxml x_control-group">
|
||||
<label>{$lang->about_ttxml_user_id}</label>
|
||||
<input type="text" name="user_id" value="{$logged_info->user_id}" />
|
||||
</div>
|
||||
<div class="syncmember x_control-group">
|
||||
<label><input type="checkbox" name="isSync" value="Y" /> {$lang->type_syncmember}</label>
|
||||
<p class="x_help-block">{$lang->import_step_desc[3]}</p>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="{$lang->importer}" /></span>
|
||||
<button type="submit" class="x_btn x_btn-primary">{$lang->importer}</button>
|
||||
</div>
|
||||
</form>
|
||||
<form action="./" class="form" method="get" onsubmit="return doPreProcessing(this, 'memberForm')" id="memberForm">
|
||||
<form class="section" action="./" method="get" onsubmit="return doPreProcessing(this, 'memberForm')" id="memberForm">
|
||||
<input type="hidden" name="type" value="member" />
|
||||
<input type="hidden" name="unit_count" value="100" />
|
||||
<h2 class="h2">{$lang->type_member}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q">{$lang->xml_path} {$lang->path_info}</p>
|
||||
<p class="a checkxml">
|
||||
<input type="text" name="xml_file" value="./" />
|
||||
<button type="button">{$lang->cmd_check_path}</button>
|
||||
<em class="desc">{$lang->msg_no_xml_file}</em>
|
||||
</p>
|
||||
</li>
|
||||
<li class="syncmember">
|
||||
<p class="q">{$lang->import_step_desc[3]}</p>
|
||||
<p class="a"><input type="checkbox" name="isSync" value="Y" /> {$lang->type_syncmember}</p>
|
||||
</li>
|
||||
</ul>
|
||||
<input type="hidden" name="xe_validator_id" value="modules/importer/tpl/index/1" />
|
||||
<h2>{$lang->type_member}</h2>
|
||||
<div class="x_control-group checkxml">
|
||||
<span class="x_input-append">
|
||||
<label>{$lang->xml_path}</label>
|
||||
<input type="text" name="xml_file" value="./" style="width:280px;font:11px Tahoma, Geneva, sans-serif" />
|
||||
<button type="button" class="x_btn">{$lang->cmd_check_path}</button>
|
||||
</span>
|
||||
<p class="x_help-inline" style="line-height:26px">{$lang->msg_no_xml_file}</p>
|
||||
</div>
|
||||
<div class="x_control-group syncmember">
|
||||
<label><input type="checkbox" name="isSync" value="Y" /> {$lang->type_syncmember}</label>
|
||||
<p class="x_help-block">{$lang->import_step_desc[3]}</p>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="{$lang->importer}" /></span>
|
||||
<button type="submit" class="x_btn x_btn-primary">{$lang->importer}</button>
|
||||
</div>
|
||||
</form>
|
||||
<form action="./" class="form" method="get" onsubmit="return doPreProcessing(this)" id="fo_import">
|
||||
<form class="section" action="./" method="get" onsubmit="return doPreProcessing(this)" id="fo_import">
|
||||
<input type="hidden" name="type" value="message" />
|
||||
<input type="hidden" name="unit_count" value="100" />
|
||||
<h2 class="h2">{$lang->type_message}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q">{$lang->xml_path} {$lang->path_info}</p>
|
||||
<p class="a checkxml">
|
||||
<input type="text" name="xml_file" value="./" />
|
||||
<button type="button">{$lang->cmd_check_path}</button>
|
||||
<em class="desc"></em><!--//class="error|success"-->
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<input type="hidden" name="xe_validator_id" value="modules/importer/tpl/index/1" />
|
||||
<h2>{$lang->type_message}</h2>
|
||||
<div class="x_control-group checkxml">
|
||||
<span class="x_input-append">
|
||||
<label>{$lang->xml_path}</label>
|
||||
<input type="text" name="xml_file" value="./" style="width:280px;font:11px Tahoma, Geneva, sans-serif" />
|
||||
<button type="button" class="x_btn">{$lang->cmd_check_path}</button>
|
||||
</span>
|
||||
<p class="x_help-inline" style="line-height:26px"></p>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="{$lang->importer}" /></span>
|
||||
<button type="submit" class="x_btn x_btn-primary">{$lang->importer}</button>
|
||||
</div>
|
||||
</form>
|
||||
<a href="#process" class="modalAnchor"></a>
|
||||
<div class="modal" id="process" style="display:none;">
|
||||
<form action="./" method="get" onsubmit="return doImport()" id="fo_process" class="fg">
|
||||
<div class="x_modal" id="process">
|
||||
<form action="./" method="get" onsubmit="return doImport()" id="fo_process">
|
||||
<input type="hidden" name="type" value="" />
|
||||
<input type="hidden" name="total" value="" />
|
||||
<input type="hidden" name="cur" value="" />
|
||||
|
|
@ -121,22 +86,22 @@
|
|||
<input type="hidden" name="guestbook_target_module" value="" />
|
||||
<input type="hidden" name="unit_count" value="100" />
|
||||
<input type="hidden" name="user_id" value="" />
|
||||
<p style="text-align:center">
|
||||
<span class="prgrs prgrsMedium">
|
||||
<strong id="preProgressMsg">{$lang->preprocessing}</strong>
|
||||
<strong id="progressMsg" style="display:none;">{$lang->import_step_desc[99]}</strong>
|
||||
<span class="pBar" style="width:300px;text-align:left">
|
||||
<span class="pAction" id="progressBar" style="width:0%"><!-- Progress status --></span>
|
||||
<span class="pNum"><span id="completeCount">0</span>/<span id="totalCount">0</span></span>
|
||||
</span>
|
||||
<strong id="progressPercent">0%</strong>
|
||||
</span>
|
||||
</p>
|
||||
<div class="x_modal-header">
|
||||
<h1 id="preProgressMsg">{$lang->preprocessing}</h1>
|
||||
<h1 id="progressMsg" hidden>{$lang->import_step_desc[99]}</h1>
|
||||
</div>
|
||||
<div class="x_modal-body">
|
||||
<div class="x_progress x_progress-striped x_active">
|
||||
<div class="x_bar" id="progressBar" style="width: 0%"></div>
|
||||
</div>
|
||||
<strong id="progressPercent">0%</strong>
|
||||
(<span id="completeCount">0</span>/<span id="totalCount">0</span>)
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
jQuery('a.modalAnchor')
|
||||
.bind('before-close.mw', function(event){
|
||||
return false;
|
||||
});
|
||||
.bind('before-close.mw', function(event){
|
||||
return false;
|
||||
});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ jQuery(function($){
|
|||
$('.checkxml')
|
||||
.find('input:text')
|
||||
.change(function(){
|
||||
$(this).closest('.checkxml').find('.desr').hide();
|
||||
$(this).closest('.checkxml').find('.x_help-inline').hide();
|
||||
})
|
||||
.end()
|
||||
.find('button')
|
||||
|
|
@ -22,20 +22,20 @@ $('.checkxml')
|
|||
$form = $this.closest('form');
|
||||
$container = $this.closest('.checkxml');
|
||||
$input = $container.find('input').prop('disabled', true).addClass('loading');
|
||||
$message = $container.find('.desc').hide();
|
||||
$message = $container.find('.x_help-inline').hide();
|
||||
|
||||
function on_complete(data) {
|
||||
var $ul, $ttxml, $xml;
|
||||
|
||||
$ul = $this.closest('ul');
|
||||
$xml = $ul.find('>.xml');
|
||||
$ttxml = $ul.find('>.ttxml');
|
||||
//$ul = $this.closest('ul');
|
||||
$xml = $form.find('>.xml');
|
||||
$ttxml = $form.find('>.ttxml');
|
||||
|
||||
$message.text(data.result_message);
|
||||
|
||||
// when the file doesn't exists or any other error occurs
|
||||
if(data.error || data.exists != 'true') {
|
||||
$message.attr('class', 'desc error').fadeIn(300);
|
||||
$message.attr('class', 'x_help-inline').fadeIn(300);
|
||||
$ttxml = $ttxml.filter(':visible');
|
||||
$ttxml.eq(-1).slideUp(100, function(){
|
||||
$ttxml = $ttxml.slice(0,-1).eq(-1).slideUp(100,arguments.callee);
|
||||
|
|
@ -44,7 +44,7 @@ $('.checkxml')
|
|||
return restore();
|
||||
}
|
||||
|
||||
$message.attr('class', 'desc success').fadeIn(300);
|
||||
$message.attr('class', 'x_help-inline').fadeIn(300);
|
||||
$form.find(':submit').removeAttr('disabled');
|
||||
|
||||
$syncmember = $form.find('.syncmember:hidden');
|
||||
|
|
@ -71,8 +71,8 @@ $('.checkxml')
|
|||
$.exec_json('importer.procImporterAdminCheckXmlFile', {filename:$.trim($input.val())}, on_complete);
|
||||
})
|
||||
.end()
|
||||
.find('.desc').hide().end()
|
||||
.closest('ul').find('>li.ttxml').hide().end().end()
|
||||
.find('.x_help-inline').hide().end()
|
||||
.closest('form').find('>.ttxml').hide().end().end()
|
||||
.closest('form').find(':submit').attr('disabled','disabled');
|
||||
|
||||
// hide 'sync member' block
|
||||
|
|
@ -109,7 +109,7 @@ function doPreProcessing(form, formId) {
|
|||
|
||||
// show modal window
|
||||
$process = $('#process');
|
||||
if(!$process.find('.bg').length) $process.prepend('<span class="bg" />').appendTo('body');
|
||||
if(!$('body').children('.x_modal-backdrop').length) $('body').append('<div class="x_modal-backdrop" />');
|
||||
$('a[href="#process"].modalAnchor').trigger('open.mw');
|
||||
|
||||
exec_xml(
|
||||
|
|
|
|||
12
modules/importer/tpl/js/importer_admin.min.js
vendored
12
modules/importer/tpl/js/importer_admin.min.js
vendored
|
|
@ -3,12 +3,12 @@
|
|||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief importer에서 사용하는 javascript
|
||||
**/
|
||||
jQuery(function($){$('.checkxml').find('input:text').change(function(){$(this).closest('.checkxml').find('.desr').hide()}).end().find('button').click(function(){var $this,$container,$input,$messages,$loading,$form,$syncmember,count;$this=$(this).prop('disabled',true);$form=$this.closest('form');$container=$this.closest('.checkxml');$input=$container.find('input').prop('disabled',true).addClass('loading');$message=$container.find('.desc').hide()
|
||||
function on_complete(data){var $ul,$ttxml,$xml;$ul=$this.closest('ul');$xml=$ul.find('>.xml');$ttxml=$ul.find('>.ttxml');$message.text(data.result_message);if(data.error||data.exists!='true'){$message.attr('class','desc error').fadeIn(300);$ttxml=$ttxml.filter(':visible');$ttxml.eq(-1).slideUp(100,function(){$ttxml=$ttxml.slice(0,-1).eq(-1).slideUp(100,arguments.callee)});$form.find(':submit').attr('disabled','disabled');return restore()};restore();$message.attr('class','desc success').fadeIn(300);$form.find(':submit').removeAttr('disabled');$syncmember=$form.find('.syncmember:hidden');if(data.type=='XML'){$xml.not(':visible').add($syncmember).slideDown(300)}else if(data.type=='TTXML'){$ttxml.not(':visible').add($syncmember).slideDown(300);$form.find('input[name=type]').val('ttxml')}}
|
||||
function restore(){$input.prop('disabled',false).removeClass('loading');$this.prop('disabled',false);$form.find('.syncmember:visible').slideUp(100);return false};show_waiting_message=false;$.exec_json('importer.procImporterAdminCheckXmlFile',{filename:$.trim($input.val())},on_complete)}).end().find('.desc').hide().end().closest('ul').find('>li.ttxml').hide().end().end().closest('form').find(':submit').attr('disabled','disabled');$('.syncmember').hide()})
|
||||
jQuery(function($){$('.checkxml').find('input:text').change(function(){$(this).closest('.checkxml').find('.x_help-inline').hide()}).end().find('button').click(function(){var $this,$container,$input,$messages,$loading,$form,$syncmember,count;$this=$(this).prop('disabled',true);$form=$this.closest('form');$container=$this.closest('.checkxml');$input=$container.find('input').prop('disabled',true).addClass('loading');$message=$container.find('.x_help-inline').hide()
|
||||
function on_complete(data){var $ul,$ttxml,$xml;$xml=$form.find('>.xml');$ttxml=$form.find('>.ttxml');$message.text(data.result_message);if(data.error||data.exists!='true'){$message.attr('class','x_help-inline').fadeIn(300);$ttxml=$ttxml.filter(':visible');$ttxml.eq(-1).slideUp(100,function(){$ttxml=$ttxml.slice(0,-1).eq(-1).slideUp(100,arguments.callee)});$form.find(':submit').attr('disabled','disabled');return restore()};$message.attr('class','x_help-inline').fadeIn(300);$form.find(':submit').removeAttr('disabled');$syncmember=$form.find('.syncmember:hidden');$input.prop('disabled',false).removeClass('loading');$this.prop('disabled',false);if(data.type=='XML'){$xml.not(':visible').add($syncmember).slideDown(300)}else if(data.type=='TTXML'){$ttxml.not(':visible').add($syncmember).slideDown(300);$form.find('input[name=type]').val('ttxml')}}
|
||||
function restore(){$input.prop('disabled',false).removeClass('loading');$this.prop('disabled',false);$form.find('.syncmember:visible').slideUp(100);return false};show_waiting_message=false;$.exec_json('importer.procImporterAdminCheckXmlFile',{filename:$.trim($input.val())},on_complete)}).end().find('.x_help-inline').hide().end().closest('form').find('>.ttxml').hide().end().end().closest('form').find(':submit').attr('disabled','disabled');$('.syncmember').hide()})
|
||||
function doSync(fo_obj){exec_xml('importer','procImporterAdminSync',[],function(ret){alert(ret.message);location.href=location.href});return false}
|
||||
function doPreProcessing(form,formId){var xml_file,type,resp,prepared=false,$=jQuery,$status,$process,$form;xml_file=form.elements['xml_file'].value;type=form.elements['type'].value;if(!xml_file)return false;$process=$('#process');if(!$process.find('.bg').length)$process.prepend('<span class="bg" />').appendTo('body');$('a[href="#process"].modalAnchor').trigger('open.mw');exec_xml('importer','procImporterAdminPreProcessing',{type:type,xml_file:xml_file},on_complete,resp=['error','message','type','total','cur','key','status'])
|
||||
function on_complete(ret){var $reload,$cont,fo_proc,elems,i,c,key,to_copy;prepared=true;if(ret.status==-1)return alert(ret.message);fo_proc=get_by_id('fo_process');elems=fo_proc.elements;for(i=0,c=resp.length;i<c;i++){key=resp[i];elems[key]?elems[key].value=ret[key]:0};fo_import=get_by_id(formId);if(fo_import){to_copy=['target_module','guestbook_target_module','user_id','unit_count'];for(i=0,c=to_copy.length;i<c;i++){key=to_copy[i];if(fo_import.elements[key])fo_proc.elements[key].value=fo_import.elements[key].value}};jQuery('#preProgressMsg').hide();jQuery('#progressMsg').show();doImport(formId)};return false}
|
||||
function doPreProcessing(form,formId){var xml_file,type,resp,prepared=false,$=jQuery,$status,$process,$form;xml_file=form.elements['xml_file'].value;type=form.elements['type'].value;if(!xml_file)return false;$process=$('#process');if(!$('body').children('.x_modal-backdrop').length)$('body').append('<div class="x_modal-backdrop" />');$('a[href="#process"].modalAnchor').trigger('open.mw');exec_xml('importer','procImporterAdminPreProcessing',{type:type,xml_file:xml_file},on_complete,resp=['error','message','type','total','cur','key','status'])
|
||||
function on_complete(ret){var $reload,$cont,fo_proc,elems,i,c,key,to_copy,fo_import;prepared=true;if(ret.status==-1)return alert(ret.message);fo_proc=get_by_id('fo_process');elems=fo_proc.elements;for(i=0,c=resp.length;i<c;i++){key=resp[i];elems[key]?elems[key].value=ret[key]:0};fo_import=get_by_id(formId);if(fo_import){to_copy=['target_module','guestbook_target_module','user_id','unit_count'];for(i=0,c=to_copy.length;i<c;i++){key=to_copy[i];if(fo_import.elements[key])fo_proc.elements[key].value=fo_import.elements[key].value}};jQuery('#preProgressMsg').hide();jQuery('#progressMsg').show();doImport(formId)};return false}
|
||||
function doImport(formId){var form=get_by_id('fo_process'),elems=form.elements,i,c,params={},resp;for(i=0,c=elems.length;i<c;i++)params[elems[i].name]=elems[i].value
|
||||
function on_complete(ret,response_tags){var i,c,key;for(i=0,c=resp.length;i<c;i++){key=resp[i];elems[key]?elems[key].value=ret[key]:0};ret.total=parseInt(ret.total,10)||0;ret.cur=parseInt(ret.cur,10)||0;percent=parseInt((ret.cur/ret.total)*100);jQuery('#totalCount').text(ret.total);jQuery('#completeCount').text(ret.cur);jQuery('#progressBar').width(percent+'%');jQuery('#progressPercent').html(percent+"%");if(ret.total>ret.cur){doImport(formId)}else{function resultAlertMessage(){alert(ret.message);jQuery('a[href="#process"].modalAnchor').unbind('before-close.mw').trigger('close.mw').find('#progressBar').width(1).end().find('#progressPercent').html('0%').end();try{form.reset();get_by_id(formId).reset()}catch(e){};jQuery('span.btn > input[type=submit]').attr('disabled','disabled')};fo_import=get_by_id(formId);if(fo_import!=null&&fo_import.isSync.checked){exec_xml('importer','procImporterAdminSync',params,function(ret){if(ret&&(!ret.error||ret.error=='0'))resultAlertMessage()},resp=['error','message'])}else resultAlertMessage()}};show_waiting_message=false;exec_xml('importer','procImporterAdminImport',params,on_complete,resp=['error','message','type','total','cur','key']);show_waiting_message=true;return false}
|
||||
function on_complete(ret,response_tags){var i,c,key,fo_import;for(i=0,c=resp.length;i<c;i++){key=resp[i];elems[key]?elems[key].value=ret[key]:0};ret.total=parseInt(ret.total,10)||0;ret.cur=parseInt(ret.cur,10)||0;percent=parseInt((ret.cur/ret.total)*100);jQuery('#totalCount').text(ret.total);jQuery('#completeCount').text(ret.cur);jQuery('#progressBar').width(percent+'%');jQuery('#progressPercent').html(percent+"%");if(ret.total>ret.cur){doImport(formId)}else{function resultAlertMessage(){alert(ret.message);jQuery('a[href="#process"].modalAnchor').unbind('before-close.mw').trigger('close.mw').find('#progressBar').width(1).end().find('#progressPercent').html('0%').end();try{form.reset();get_by_id(formId).reset()}catch(e){};jQuery('span.btn > input[type=submit]').attr('disabled','disabled')};fo_import=get_by_id(formId);if(fo_import!=null&&fo_import.isSync.checked){exec_xml('importer','procImporterAdminSync',params,function(ret){if(ret&&(!ret.error||ret.error=='0'))resultAlertMessage()},resp=['error','message'])}else resultAlertMessage()}};show_waiting_message=false;exec_xml('importer','procImporterAdminImport',params,on_complete,resp=['error','message','type','total','cur','key']);show_waiting_message=true;return false}
|
||||
function displayProgress(total,cur){var per,stat,$stat;per=Math.max(total?Math.round(cur/total*100):100,1);$stat=jQuery('#status');if(!$stat.find('div.progress1').length)$stat.html('<div class="progressBox"><div class="progress1"></div><div class="progress2"></div></div>');$stat.find('div.progress1').html(per+' ').css('width',per+'%').end().find('div.progress2').text(cur+'/'+total)}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<script type="text/javascript">
|
||||
<script>
|
||||
var preProcessingMsg = "{$lang->preprocessing}";
|
||||
</script>
|
||||
<div id="process" style="display:none;">
|
||||
|
|
@ -14,8 +14,8 @@
|
|||
<h3 class="h3">{$lang->import_step_title[99]} - {$lang->import_step_desc[99]}</h3>
|
||||
<div id="status"></div>
|
||||
<div class="btnArea">
|
||||
<span class="btn" id="btn_continue" style="display:none;"><input type="submit" value="{$lang->cmd_continue}" /></span>
|
||||
<span class="btn" id="btn_reload" style="display:block;"><input type="button" value="{$lang->cmd_reload}" onclick="location.reload(); return false;"/></span>
|
||||
<input class="btn" id="btn_continue" style="display:none;" type="submit" value="{$lang->cmd_continue}" />
|
||||
<input class="btn" id="btn_reload" style="display:block;" type="button" value="{$lang->cmd_reload}" onclick="location.reload()"/>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue