php Имитируетподключениемодулявыгрузкитоваровиз1СУТнасайтБитриксУС
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Имитируетподключениемодулявыгрузкитоваровиз1СУТнасайтБитриксУС相关的知识,希望对你有一定的参考价值。
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
header("Content-type:text/html; charset=windows-1251");
$_SESSION["BX_CML2_IMPORT"]["NS"]["STEP"]=0;
function js_str($s)
{
return '"' . addcslashes($s, "\0..\37\"\\") . '"';
}
function js_array($array)
{
$temp = array_map('js_str', $array);
return '[' . implode(',', $temp) . ']';
}
$dir = '/var/www/upload/1c_catalog/goods/';
$dir_for_js = 'goods/';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);
$files_list = [];
foreach ($files2 as $key => $value) {
$dir_file = scandir($dir.$value);
foreach ($dir_file as $key2 => $value2) {
if (strpos($value2, 'import___') !== false) {
$files_list[$value] = $dir_for_js.$value.'/'.$value2;
}
}
}
ksort($files_list);
$js_array = json_encode($files_list);
print('<pre>');
//print_r($files_list);
//print(js_array($files_list));
print('</pre>');
?>
<a href="javascript:start('import.xml')">импорт import.xml</a>
<a href="javascript:startGlobal()">импорт всех import.xml</a>
<a href="javascript:start('offers.xml')">импорт offers.xml</a>
<a href="javascript:start('prices.xml')"> импорт prices.xml</a>
<a href="javascript:start('rests.xml')"> импорт rests.xml</a>
<a style='color:red;' href="javascript:reset()">обнулить шаг</a>
<a style='color:red;' href="javascript:status='stop'">остановить импорт</a><hr>
<div id='main' style='display:none;width:400;font-size:12;border:1px solid #ADC3D5; padding:5'>
<div id="log"></div>
<div align=right id="load"></div>
</div>
<div id="timer"></div>
<style type="text/css">
a {
border: 1px solid;
padding: 6px 10px;
margin: 5px;
}
</style>
<script type='text/javascript'>
<?php
echo "var file_list = ". $js_array . ";\n";
?>
</script>
<script type="text/javascript">
var
log = document.getElementById("log");
timer = document.getElementById("timer");
load = document.getElementById("load");
var zup_import=false;
//переменные таймера
m_second = 0;
seconds = 0;
minute = 0;
//переменные импорта
i = 1;
globalStep = 1;
a = '';
proccess = true;
status = "continue";
function createHttpRequest() {
var httpRequest;
if (window.XMLHttpRequest) {
httpRequest = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
try {
httpRequest = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e){}
try {
httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){}
}
return httpRequest;
}
//var tid = setTimeout(startGlobal, 1000);
var oneStart = 0;
function startGlobal() {
if (oneStart == 0) {
proccess = false;
oneStart = 1;
}
$nameNextFile = file_list[globalStep];
console.log('Идет обработка файла ' + $nameNextFile );
if (proccess == false) {
start($nameNextFile);
globalStep++;
if (!file_list[globalStep]) {
abortTimer();
load.innerHTML = "<b>Загрузка завершена</b>"
}
}
tid = setTimeout(startGlobal, 1000);
}
function abortTimer() {
clearTimeout(tid);
}
function start(file) {
document.getElementById("main").style.display = 'block';
load.innerHTML = "<b>Загрузка</b>...<img align='center' src='https://img-fotki.yandex.ru/get/483127/126771498.c/0_1fedb1_513c8853_orig' width='50' height='50'/>"
i = 1;
a = "";
m_second = 0;
seconds = 0;
proccess = true;
start_timer();
timer.innerHTML = "";
if (file == "company.xml") {
zup_import = true;
}
log.innerHTML = "<b>Импорт " + file + "</b><hr>";
query_1c(file);
}
function query_1c(file) {
var import_1c=createHttpRequest();
if (zup_import == true) {
r = "/bitrix/admin/1c_intranet.php?type=catalog&mode=import&filename="+file;
} else {
r = "/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename="+file;
}
load.style.display = "block";
import_1c.open("GET", r, true);
import_1c.onreadystatechange = function() {
a = log.innerHTML;
if (import_1c.readyState == 4 && import_1c.status == 0) {
error_text = "<em>Ошибка в процессе выгрузки</em><div style='width:270;font-size:11;border:1px solid black;background-color:#ADC3D5;padding:5'>Сервер упал и не вернул заголовков.</div>"
log.innerHTML = a + "Шаг " + i + ": " + error_text;
load.style.display = "none";
status = "continue";
alert("Import is crashed!");
}
if (import_1c.readyState == 4 && import_1c.status == 200) {
if ((import_1c.responseText.substr(0,8) != "progress") && (import_1c.responseText.substr(0,7) != "success")) {
error_text = "<em>Ошибка в процессе выгрузки</em><div style='width:270;font-size:11;border:1px solid black;background-color:#ADC3D5;padding:5'>"+import_1c.responseText + "</div>";
log.innerHTML = a + "Шаг " + i + ": " + error_text;
status = "error";
} else {
n = import_1c.responseText.lastIndexOf('s') + 1;
l = import_1c.responseText.length;
mess = import_1c.responseText.substr(n,l);
log.innerHTML = a + "Шаг " + i + ": " + mess + " (" + seconds + " сек.)" + "<br>";
seconds = 0;
load.style.display = "none";
i++;
}
if ((import_1c.responseText.substr(0,7) == "success") || (status == "error") || (status == "stop")) {
load.style.display = "none";
status = "continue"
proccess = false;
timer.innerHTML = "<hr>Время выгрузки: <b>" + minute + " мин. " + m_second + " сек.</b>";
} else {
query_1c(file);
}
}
};
import_1c.send(null);
}
function start_timer() {
if (m_second == 60) {
m_second = 0;
minute += 1;
}
if (proccess == true) {
seconds += 1;
m_second += 1;
setTimeout("start_timer()", 1000);
}
}
function reset() {
var rest = createHttpRequest();
//q="bx_1c_import_lite.php";
q = "local_import.php";
rest.open("GET", q, true);
rest.onreadystatechange = function() {
if (rest.readyState == 4 && rest.status == 200) {
alert("Шаг импорта обнулён!");
}
}
rest.send(null);
}
</script>
以上是关于php Имитируетподключениемодулявыгрузкитоваровиз1СУТнасайтБитриксУС的主要内容,如果未能解决你的问题,请参考以下文章
php Имитируетподключениемодулявыгрузкитоваровиз1СУТнасайтБитриксУС
php Подключениеклассов(модулей)вБитрикс
php Автоподключениеклассов(модулей)вБитриксе
php обрезаемпоследнююбукву - делаемизмножественногочислаединственное
sh Редактироватьконфигвредакторепоумолчанию。 Еслинезаданпараметр--global,торедактируется.git / confi