Trigub_Ilia

Cкрипт для диагностики проблем интеграции с 1С

Jul 3rd, 2018
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 128.15 KB | None | 0 0
  1. <?
  2. ////////////////////////////////////////////////////////////
  3. ////Created by C_arter {< hello from bitrix's support >}////
  4. //https://dev.1c-bitrix.ru/community/blogs/carter/2285.php//
  5. ////////////////////////////////////////////////////////////
  6. global $DBDebugToFile;
  7. $DBDebugToFile = true;
  8. define('ver', '2.7');
  9. define('MENULINES', 5);
  10. $APicture=Array('jpg','jpeg','gif','png');
  11. $UPLOAD_DIR='/upload';
  12. $script_name=$_SERVER['SCRIPT_NAME'];
  13. define("SCRIPT_NAME",$_SERVER['SCRIPT_NAME']);
  14. $catalog_import_path='/bitrix/admin/1c_exchange.php';
  15. $user_import_path='/bitrix/admin/1c_intranet.php';
  16. $is_bitrix_dir=strpos($_SERVER['DOCUMENT_ROOT'].$script_name,$_SERVER['DOCUMENT_ROOT'].'/bitrix');
  17. $mess=Array(
  18.         'OPTIONS'=>'Ïðîâåðêà äîñòóïà ê ìåòîäàì',
  19.         'PROPFIND'=>'Ïîëó÷åíèå ñòðóêòóðû ôàéëîâ è ïàïîê',
  20.         'CREATE_FOLDER'=>'Ñîçäàíèå ïàïêè',
  21.         'DELETE_FOLDER'=>'Óäàëåíèå ïàïêè',
  22.         'EDIT_FOLDER'=>'Óäàëåíèå ïàïêè',
  23.         'COPY_FOLDER'=>'Êîïèðîâàíèå ïàïêè',
  24.         'CREATE_FILE'=>'Ñîçäàíèå ôàéëà',
  25.         'COPY_FILE'=>'Êîïèðîâàíèå ôàéëà',
  26.         'DELETE_FILE'=>'Óäàëåíèå ôàéëà',
  27.         'PROPPATCH_FILE'=>'Èçìåíåíèå ñâîéñòâà ôàéëà',
  28.         'EDIT_FILE'=>'Óäàëåíèå ôàéëà',
  29.         'PATH'=>'Ïóòü',
  30.         'ROOT'=>'Êîðåíü',
  31.         'LOGIN'=>'Ëîãèí',
  32.         'PASS'=>'Ïàðîëü',
  33.         'SERVER'=>'Ñåðâåð',
  34.         'TAB_TEST'=>'Òåñò',
  35.         'TAB_EXPLORER'=>'Îáçîð',
  36.         'TAB_XML'=>'XML',
  37.         'TAB_HEADERS'=>'Çàãîëîâêè',
  38.         'START_TEST'=>'ïðîòåñòèðîâàòü',
  39.         'TEST_CONTENT'=>'Ýòî òåñòîâûé ôàéë, ñîäåðæàùèé òåñòîâûé êîíòåíò!',
  40.         );
  41. function __ShowMessage($text,$lamp='red')
  42. {
  43.     if ($lamp=='green')
  44.         return '<span style="font-size:14px;color:green;">'.$text.'</span>';
  45.     else
  46.         return '<span style="color:red;font-size:14px;">'.$text.'</span>';
  47. }
  48. function basename2($path)
  49. {
  50.     $file_array = explode("/",$path);
  51.     $n = count($file_array);
  52.     $file= $file_array[$n-1];
  53.     return $file;
  54. }
  55. class iWebDav
  56. {
  57.     var $debug = false;
  58.     var $fp;
  59.     var $server;
  60.     var $port = 80;
  61.     var $path ='/';
  62.     var $user;
  63.     var $protocol = 'HTTP/1.1';
  64.     var $protocol_s = 'http://';
  65.     var $method = 'GET';
  66.     var $pass;
  67.     var $socket_timeout = 60;
  68.     var $errno;
  69.     var $errstr;
  70.     var $user_agent = 'Microsoft-WebDAV-MiniRedir/6.1.7600';
  71.     var $crlf = "\r\n";
  72.     var $req;
  73.     var $resp_status;
  74.     var $parser;
  75.     var $headers;
  76.     var $body="";
  77.     var $response;
  78.     var $log = true;
  79.     var $logfile="/wd_test_log.log";
  80.     function addHeader($header = false)
  81.     {
  82.         if ($header == false)
  83.             return false;
  84.         $this->headers.=$header.$this->crlf;
  85.     }
  86.     function setServer($server = false)
  87.     {
  88.         $this->server=$server;
  89.     }
  90.     function setPath($path = false)
  91.     {
  92.         $this->path=$path;
  93.     }
  94.     function setMethod($method = false)
  95.     {
  96.         $this->method=$method;
  97.     }
  98.     function request()
  99.     {
  100.         $pr="";
  101.         $AuthData=base64_encode($this->user.":".$this->pass);
  102.         if ($this->port==443)
  103.             $p='ssl://';
  104.         $this->fp = fsockopen($p.$this->server, $this->port, $this->errno, $this->errstr, $this->socket_timeout);
  105.         if ($this->errstr)
  106.         {
  107.             $aResult['error']=$this->errstr;
  108.             return $this->response=$aResult;
  109.         }
  110.         if ($this->fp)
  111.         {
  112.             $this->setPath(str_replace(Array('///','//'),'/',$this->path.'/'));
  113.             $headers=$this->method." ".str_replace(' ','%20',$this->path)." ".$this->protocol.$this->crlf;
  114.             $headers.="Host: ".$this->server.$this->crlf;
  115.             $headers.="User-Agent: ".$this->user_agent.$this->crlf;
  116.             $headers.="Authorization: Basic ".$AuthData.$this->crlf;
  117.             $this->headers=$headers.$this->headers.$this->crlf;
  118.             if (strlen($this->body)>0)
  119.                 $this->headers.=$this->body;
  120.             //echo $this->headers;
  121.             fwrite($this->fp, $this->headers);
  122.             while (!feof($this->fp))
  123.             $this->response.=fgets($this->fp, 128);
  124.             fclose($this->fp);
  125.             $response=explode($this->crlf.$this->crlf,$this->response);
  126.             $aResult['headers']=$this->ParseHeaders($response[0]);
  127.             $aResult['~headers']=$response[0];
  128.             $aResult['body']=$response[1];
  129.             //echo $aResult['body'];
  130.             if ($this->log)
  131.             {
  132.                 $f = fopen($_SERVER['DOCUMENT_ROOT'].$this->logfile, 'a+');
  133.                 fwrite ($f,$this->crlf.'----------'.$this->crlf);
  134.                 fwrite ($f,'Çàïðîñ:'.$this->crlf);
  135.                 fwrite ($f,$this->headers);
  136.                 fwrite ($f,$this->crlf.$this->crlf.'Îòâåò:'.$this->crlf);
  137.                 fwrite ($f,print_r($aResult['~headers'],true));
  138.                 fclose($f);
  139.             }
  140.         }
  141.         return $this->response=$aResult;
  142.     }
  143.     function ParseHeaders($headers)
  144.     {
  145.         $headers=explode($this->crlf,$headers);
  146.         foreach($headers as $header)
  147.         {
  148.             if (strpos($header,': '))
  149.             {
  150.                 $header=explode(': ',$header);
  151.                 $arResult[$header[0]]=$header[1];
  152.             }
  153.             else
  154.                 $arResult['STATUS']=$header;
  155.         }
  156.         return $arResult;
  157.     }
  158.     function parseURL($url = false)
  159.     {
  160.         if ($url == false)
  161.             return false;
  162.         if (strpos($url,'https://')===0)
  163.         {
  164.             $this->port=443;
  165.             $this->protocol_s="https://";
  166.             $url=str_replace('https://','',$url);
  167.         }
  168.         else
  169.         {
  170.             $this->port=80;
  171.             $this->protocol_s="http://";
  172.             $url=str_replace('http://','',$url);
  173.         }
  174.         $this->server=substr($url,0,strpos($url,'/'));
  175.         $url=str_replace($this->server,'',$url);
  176.         $this->path=$url;
  177.     }
  178. }
  179. class XmlToArray
  180. {
  181.     var $xml='';
  182.     function XmlToArray($xml)
  183.     {
  184.        $this->xml = $xml;
  185.     }
  186.    function _struct_to_array($values, &$i)
  187.     {
  188.         $child = array();
  189.         if (isset($values[$i]['value'])) array_push($child, $values[$i]['value']);
  190.         while ($i++ < count($values)) {
  191.             switch ($values[$i]['type']) {
  192.                 case 'cdata':
  193.                 array_push($child, $values[$i]['value']);
  194.                 break;
  195.                 case 'complete':
  196.                     $name = $values[$i]['tag'];
  197.                     if(!empty($name)){
  198.                     $child[$name]= ($values[$i]['value'])?($values[$i]['value']):'';
  199.                     if(isset($values[$i]['attributes'])) {
  200.                         $child[$name] = $values[$i]['attributes'];
  201.                     }
  202.                 }
  203.               break;
  204.                 case 'open':
  205.                     $name = $values[$i]['tag'];
  206.                     $size = isset($child[$name]) ? sizeof($child[$name]) : 0;
  207.                     $child[$name][$size] = $this->_struct_to_array($values, $i);
  208.                 break;
  209.                 case 'close':
  210.                 return $child;
  211.                 break;
  212.             }
  213.         }
  214.         return $child;
  215.     }
  216.     function createArray()
  217.     {
  218.         $xml    = $this->xml;
  219.         $values = array();
  220.         $index  = array();
  221.         $array  = array();
  222.         $parser = xml_parser_create();
  223.         xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
  224.         xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
  225.         xml_parse_into_struct($parser, $xml, $values, $index);
  226.         xml_parser_free($parser);
  227.         $i = 0;
  228.         $name = $values[$i]['tag'];
  229.         $array[$name] = isset($values[$i]['attributes']) ? $values[$i]['attributes'] : '';
  230.         $array[$name] = $this->_struct_to_array($values, $i);
  231.         return $array;
  232.     }
  233. }
  234. if ((@$_REQUEST['mode']!='query' && @$_REQUEST['mode']!='exchange'))
  235. define('NEED_AUTH',true);
  236. require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
  237. if ($_GET)
  238. {
  239.     if ($_REQUEST['login'])
  240.         setcookie("DV_USER", $_REQUEST['login'],0);
  241.     if ($_REQUEST['pass'])
  242.         setcookie("DV_PASS", $_REQUEST['pass'], 0);
  243.     $_SESSION['DAV_TEST']['DV_CURRENT_PATH']=$_REQUEST['current_path'];
  244.     if ($_REQUEST['server']!=$_REQUEST['current_path'] && $_REQUEST['current_path'])
  245.         $_REQUEST['server']=$_REQUEST['current_path'];
  246.     if ($_REQUEST['server'])
  247.         setcookie("DV_SERVER", $_REQUEST['server'],0);
  248.     /*$_REQUEST['current_path']=trim($_REQUEST['current_path'],'/');
  249.     $_REQUEST['root']=trim($_REQUEST['root'],'/');
  250.     $_REQUEST['server']=trim($_REQUEST['server'],'/');*/
  251. }
  252. if (@$_REQUEST['mode']=='exchange')
  253. {
  254.     $data=CUtil::JsObjectToPhp($_REQUEST['data']);
  255.     $req=new CHTTP;
  256.     $req->SetAuthBasic($data['login'],$data['pass']);
  257.     $URL=$data['url'];
  258.     if (!$data['phpsessid'])
  259.         $URL.='?mode=checkauth&type=catalog';
  260.     else
  261.     {
  262.         $URL.='?mode=import&type=catalog&filename='.$data['filename'];
  263.         $req->additional_headers['Cookie'] = 'PHPSESSID='.$data['phpsessid'].';';
  264.     }
  265.     $arUrl=$req->ParseURL($URL);
  266.     $req->Query('GET',$arUrl['host'],$arUrl['port'],$arUrl['path_query']);
  267.     $body=explode("\n",$req->result);
  268.     if (count($body)>1)
  269.     {
  270.         $response['status']=$body[0];
  271.         if ($response['status']=='success' && $body[1]=='PHPSESSID')
  272.                 $response['phpsessid']=$body[2];
  273.         else
  274.         {
  275.             if (ToUpper($req->headers['Content-Type'])!=ToUpper('text/html; charset=utf-8'))
  276.             $body=$APPLICATION->ConvertCharsetArray($body,'windows-1251','UTF-8');
  277.             $response['text']=$body[1];
  278.         }
  279.     }
  280.     else
  281.         $response['error']=$body;
  282.     foreach($req->headers as $key=>$value)
  283.         $response['headers'].="<b>".$key."</b>: ".$value."<br/>";
  284.     echo json_encode($response);
  285.     die();
  286. }
  287. if (@$_REQUEST['action']=='setsession' && $_REQUEST['mode']!='query')
  288. {
  289.     $_SESSION['bx_1c_import'][$_REQUEST['name']]=$_REQUEST['value'];
  290.     echo $_SESSION['bx_1c_import'][$_REQUEST['name']];
  291.     die();
  292. }
  293. if ($_REQUEST['action']=="PROPFIND" || $_REQUEST['action']=="GET" )
  294. {
  295.     $dav=new iWebDav;
  296.     if ($_REQUEST['filename'])
  297.     {
  298.         $path.='/'.$_REQUEST['filename'];
  299.             header('Location: '.$_REQUEST['server'].$path);
  300.             die();
  301.     }
  302.     $dav->setMethod($_REQUEST['action']);
  303.     $dav->user=$_REQUEST['login'];
  304.     $dav->pass=$_REQUEST['pass'];
  305.     $dav->log=false;
  306.     $dav->parseURL($_REQUEST['server']);
  307.     $dav->addHeader('Content-Length: '.strlen($dav->body));
  308.     $dav->addHeader('Connection: Close');
  309.     $result=$dav->request();
  310.     if (!$result['error'])
  311.     {
  312.         if (isset($_REQUEST['filename']))
  313.         {
  314.             echo $result['body'];
  315.             die();
  316.         }
  317.         $parser=xml_parser_create();
  318.         $server=$dav->protocol_s.$dav->server;
  319.         $n=strpos($result['body'],'<?');
  320.         if ($n===0 || $n>0)
  321.         {
  322.             $data=substr($result['body'],$n);
  323.             ob_start();
  324.             highlight_string($data);
  325.             $xml=ob_get_contents();
  326.             ob_end_clean();
  327.             $data=str_replace("D:","",$data);
  328.             $xmlObj= new XmlToArray($data);
  329.             $arrayData = $xmlObj->createArray();
  330.             //echo '<pre>';print_r($arrayData);
  331.             ob_start();
  332.             ?><div style="height:400px;overflow:scroll;"> <table  class="list"><?
  333.             if (trim($dav->path,'/')!=trim($_REQUEST['DV_ROOT'],'/'))
  334.                 echo "<a href='javascript:GetFileListDav(\"".$dav->protocol_s.$dav->server.dirname($dav->path)."\")' >...</a><br>";
  335.             foreach ($arrayData['multistatus']['response'] as $item)
  336.             {
  337.                 if(trim($dav->path,'/')!=trim($item['href'],'/'))
  338.                 {
  339.                     echo "<tr><td style=\"border-bottom: 1px solid #E7ECF5;\">";
  340.                     $type = $item['propstat'][0]['prop'][0]["getcontenttype"];
  341.                     if ($item['propstat'][0]['prop'][0]['iscollection']
  342.                     || (
  343.                             $type &&  strpos($type,"directory")
  344.                         )
  345.                     )
  346.                     {
  347.                         //echo "<img src='http://icons.iconarchive.com/icons/visualpharm/must-have/128/Check-icon.png'";
  348.                         //echo $item['href'];
  349.                             echo "<img src=\"http://icons.iconarchive.com/icons/gakuseisean/radium/128/My-Documents-icon.png\" width=20 height=20><a href='javascript:GetFileListDav(\"".$dav->protocol_s.$dav->server.urldecode($item['href'])."\")' >".urldecode(basename2($item['href']))."</a>";
  350.                     }
  351.                     else
  352.                     {
  353.                         echo "<img src=\"http://icons.iconarchive.com/icons/dario-arnaez/genesis-3G/128/User-Files-icon.png\" width=20 height=20><a href='javascript:GetFile(\"".basename2(urldecode($item['href']))."\")' >".basename2(urldecode($item['href']));
  354.                         //echo basename2($item['href'])." - file<br>";
  355.                     }
  356.                         echo "</td></tr>";
  357.                 }
  358.             }
  359.     ?>
  360.  
  361.     </table><div>
  362.             <?
  363.             $file_list=ob_get_contents();
  364.             ob_end_clean();
  365.             $cdata['xml']=$xml;
  366.             $cdata['response_array']=$arrayData;
  367.             $cdata['file_list']=$file_list;
  368.         }
  369.         $cdata['headers']='<pre>'.$result['~headers'].'</pre>';
  370.     }
  371.     else
  372.     {
  373.         $cdata['error']=$result['error'];
  374.         $cdata['file_list']='Îøèáêà çàïðîñà, ñìîòðèòå ðàçäåë "çàãîëîâêè"';
  375.     }
  376.     echo json_encode($cdata);
  377. die();
  378. }
  379. if ($_REQUEST['mode']=='test')
  380. {
  381.     $cdata['lamp']='red';
  382.     $dav=new iWebDav;
  383.     $dav->user=$_REQUEST['login'];
  384.     $dav->pass=$_REQUEST['pass'];
  385.     $dav->parseURL($_REQUEST['server']);
  386.     $dav->addHeader('Connection: Close');
  387.     switch ($_REQUEST['step'])
  388.     {
  389.         case 'CHECK_METHOD':
  390.             unlink($_SERVER['DOCUMENT_ROOT'].$dav->logfile);
  391.             $cdata['lamp']='green';
  392.             $dav->setMethod('OPTIONS');
  393.             $dav->addHeader("Content-Length: ".strlen($dav->body));;
  394.             $result=$dav->request();
  395.             $NeedMethods=Array('PROPFIND','PUT','PROPPATCH','MKCOL','COPY','DELETE');
  396.             $ServerMethods=explode(",", $result['headers']['Allow']);
  397.             foreach($NeedMethods as $method)
  398.             {
  399.                 if (!in_array($method,$ServerMethods))
  400.                     $FailMethod[]=$method;
  401.             }
  402.             if (!empty($FailMethod))
  403.             {
  404.                 $cdata['lamp']='red';
  405.                 $FailMethod=implode(',',$FailMethod);
  406.                 $cdata['text']=__ShowMessage($mess['OPTIONS'].": íå ïîääåðæèâàþòñÿ ìåòîäû - ".$FailMethod);
  407.             }
  408.             else
  409.                 $cdata['text']=__ShowMessage($mess['OPTIONS'].": âñå ìåòîäû ïîääåðæèâàþòñÿ",'green');
  410.             break;
  411.         case 'CREATE_FILE':
  412.             $dav->setMethod('PUT');
  413.             $dav->setPath($dav->path.'/content.txt');
  414.             $dav->body=$mess['TEST_CONTENT'];
  415.             $dav->addHeader("Content-Length: ".strlen($dav->body));
  416.             $result=$dav->request();
  417.             if (strpos($result['headers']['STATUS'],'201 Created'))
  418.                 $cdata['lamp']='green';
  419.             $cdata['text']=__ShowMessage($mess['CREATE_FILE'],$cdata['lamp']);
  420.             break;
  421.         case 'PROPPATCH_FILE':
  422.             $dav->setMethod('PROPPATCH');
  423.             $dav->setPath($dav->path.'/content.txt');
  424.             $dav->body='<?xml version="1.0"?>
  425.     <d:propertyupdate xmlns:d="DAV:" xmlns:o="urn:schemas-microsoft-com:office:office">
  426.       <d:set>
  427.         <d:prop>
  428.           <o:Author>support_test</o:Author>
  429.         </d:prop>
  430.       </d:set>
  431.     </d:propertyupdate>';
  432.             $dav->addHeader("Content-Type: text/xml; charset=\"utf-8\"");
  433.             $dav->addHeader("Content-Length: ".strlen($dav->body));
  434.             $result=$dav->request();
  435.             $data=substr($result['body'],$n);
  436.             $data=str_replace("D:","",$data);
  437.             $xmlObj= new XmlToArray($data);
  438.             $arrayData = $xmlObj->createArray();
  439.             $status=$arrayData['multistatus']['response'][0]['propstat'][0]['status'];
  440.             if (strpos($status,'HTTP/1.1 200')===0)
  441.                 $cdata['lamp']='green';
  442.             $cdata['text']=__ShowMessage($mess['PROPPATCH_FILE'],$cdata['lamp']);
  443.                 //echo '<div style="padding-left:200px">'.highlight_string($result['body']).'</div>';
  444.             break;
  445.         case 'COPY_FILE':
  446.             $dav->setMethod('COPY');
  447.             $dav->setPath($dav->path.'/content.txt');
  448.             $dav->addHeader('Destination: '.$path.'/content_copy.txt');
  449.             $result=$dav->request();
  450.             if (strpos($result['headers']['STATUS'],'201 Created'))
  451.             {
  452.                 $cdata['lamp']='green';
  453.                 $dav->setMethod('DELETE');
  454.                 $dav->headers="";
  455.                 $dav->setPath($dav->path.'/content_copy.txt');
  456.                 //$dav->request();
  457.             }
  458.             $cdata['text']=__ShowMessage($mess['COPY_FILE'],$cdata['lamp']);
  459.             break;
  460.         case 'DELETE_FILE':
  461.             $dav->setMethod('DELETE');
  462.             $dav->setPath($dav->path.'/content.txt');
  463.             $result=$dav->request();
  464.             if (strpos($result['headers']['STATUS'],'204 No Content'))
  465.                 $cdata['lamp']='green';
  466.             $cdata['text']=__ShowMessage($mess['DELETE_FILE'],$cdata['lamp']);
  467.             break;
  468.         case 'CREATE_FOLDER':
  469.             $dav->setMethod('MKCOL');
  470.             $dav->setPath($dav->path.'/test_folder/');
  471.             $result=$dav->request();
  472.             if (strpos($result['headers']['STATUS'],'201 Created'))
  473.                 $cdata['lamp']='green';
  474.             $cdata['text']=__ShowMessage($mess['CREATE_FOLDER'],$cdata['lamp']);
  475.             break;
  476.         case 'COPY_FOLDER':
  477.             $dav->setMethod('COPY');
  478.             $dav->setPath($dav->path.'/test_folder');
  479.             $dav->addHeader('Destination: '.$path.'/_copy_test_folder/');
  480.             $result=$dav->request();
  481.             if (strpos($result['headers']['STATUS'],'201 Created'))
  482.             {
  483.                 $cdata['lamp']='green';
  484.                 $dav->setMethod('DELETE');
  485.                 $dav->parseURL($path);
  486.                 $dav->setPath($dav->path.'/_copy_test_folder');
  487.             //  $dav->request();
  488.             }
  489.             $cdata['text']=__ShowMessage($mess['COPY_FOLDER'],$cdata['lamp']);
  490.             break;
  491.         case 'DELETE_FOLDER':
  492.             $dav->setMethod('DELETE');
  493.             $dav->parseURL($path);
  494.             $dav->setPath($dav->path.'/test_folder');
  495.             $result=$dav->request();
  496.             if (strpos($result['headers']['STATUS'],'204 No Content'))
  497.                 $cdata['lamp']='green';
  498.             $cdata['text']=__ShowMessage($mess['DELETE_FOLDER'],$cdata['lamp']);
  499.             break;
  500.     }
  501.     $cdata=$APPLICATION->ConvertCharsetArray($cdata,'windows-1251','UTF-8');
  502.     echo json_encode($cdata);
  503.     die();
  504. }
  505. if (@$_REQUEST['type']=='catalog')
  506. {
  507.     AddEventHandler("iblock", "OnAfterIBlockElementAdd",  "WriteElementAddDebug");
  508.     AddEventHandler("iblock", "OnAfterIBlockElementUpdate",  "WriteElementUpdateDebug");
  509.     if ($_SESSION['bx_1c_import']['skipmode']==1)
  510.     {
  511.         AddEventHandler("iblock", "OnBeforeIBlockElementUpdate",  "SkipHandler");
  512.         AddEventHandler("iblock", "OnBeforeIBlockElementAdd",  "SkipHandler");
  513.         function SkipHandler(&$arFields)
  514.         {
  515.             $a=false;
  516.             $b=false;
  517.             if ($_SESSION['bx_1c_import']['xml_id'])
  518.                 $a=($arFields['XML_ID']==$_SESSION['bx_1c_import']['xml_id']);
  519.             if ($_SESSION['bx_1c_import']['element_name'])
  520.                 $b=($arFields['NAME']==$_SESSION['bx_1c_import']['element_name']);
  521.             if (($a || $b))
  522.             {
  523.                 echo "debug:<br>"."<b>Ýòà èíôîðìàöèÿ âûâîäèòñÿ ïîòîìó, ÷òî âêëþ÷¸í SkipMode</b><hr><pre style='font-size:11px;font-family:Arial;'>";
  524.                     print_r($arFields);
  525.                 echo '</pre>';
  526.                 die('<hr>');
  527.             }
  528.             else
  529.                 return false;
  530.         }
  531.     }
  532.     function WriteElementAddDebug(&$arFields)
  533.     {
  534.         define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/import_element_log.txt");
  535.         AddMessage2Log(print_r($arFields,true), "------------ADD-----------");
  536.     }
  537.     function WriteElementUpdateDebug(&$arFields)
  538.     {
  539.         define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/import_element_log.txt");
  540.         AddMessage2Log(print_r($arFields,true), "------------UPDATE-----------");
  541.     }
  542.     $APPLICATION->IncludeComponent("bitrix:catalog.import.1c", "", Array(
  543.         "IBLOCK_TYPE" => COption::GetOptionString("catalog", "1C_IBLOCK_TYPE", "-"),
  544.         "SITE_LIST" => array(COption::GetOptionString("catalog", "1C_SITE_LIST", "-")),
  545.         "INTERVAL" => COption::GetOptionString("catalog", "1C_INTERVAL", "-"),
  546.         "GROUP_PERMISSIONS" => explode(",", COption::GetOptionString("catalog", "1C_GROUP_PERMISSIONS", "")),
  547.         "GENERATE_PREVIEW" => COption::GetOptionString("catalog", "1C_GENERATE_PREVIEW", "Y"),
  548.         "PREVIEW_WIDTH" => COption::GetOptionString("catalog", "1C_PREVIEW_WIDTH", "100"),
  549.         "PREVIEW_HEIGHT" => COption::GetOptionString("catalog", "1C_PREVIEW_HEIGHT", "100"),
  550.         "DETAIL_RESIZE" => COption::GetOptionString("catalog", "1C_DETAIL_RESIZE", "Y"),
  551.         "DETAIL_WIDTH" => COption::GetOptionString("catalog", "1C_DETAIL_WIDTH", "300"),
  552.         "DETAIL_HEIGHT" => COption::GetOptionString("catalog", "1C_DETAIL_HEIGHT", "300"),
  553.         "ELEMENT_ACTION" => COption::GetOptionString("catalog", "1C_ELEMENT_ACTION", "D"),
  554.         "SECTION_ACTION" => COption::GetOptionString("catalog", "1C_SECTION_ACTION", "D"),
  555.         "FILE_SIZE_LIMIT" => COption::GetOptionString("catalog", "1C_FILE_SIZE_LIMIT", 200*1024),
  556.         "USE_CRC" => COption::GetOptionString("catalog", "1C_USE_CRC", "Y"),
  557.         "USE_ZIP" => COption::GetOptionString("catalog", "1C_USE_ZIP", "Y"),
  558.         "USE_OFFERS" => COption::GetOptionString("catalog", "1C_USE_OFFERS", "N"),
  559.         "USE_IBLOCK_TYPE_ID" => COption::GetOptionString("catalog", "1C_USE_IBLOCK_TYPE_ID", "N"),
  560.         "USE_IBLOCK_PICTURE_SETTINGS" => COption::GetOptionString("catalog", "1C_USE_IBLOCK_PICTURE_SETTINGS", "N"),
  561.         "TRANSLIT_ON_ADD" => COption::GetOptionString("catalog", "1C_TRANSLIT_ON_ADD", "N"),
  562.         "TRANSLIT_ON_UPDATE" => COption::GetOptionString("catalog", "1C_TRANSLIT_ON_UPDATE", "N"),
  563.         )
  564.     );
  565.     require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
  566.     die();
  567. }
  568. //Ãîòîâèì êíîïêè
  569. $MenuArray=Array(
  570.             'main_info'=>Array(
  571.                 "msg"=>'îòêðîåòñÿ îêíî èíôîðìàöèè ïî ôàéëàì',
  572.                 "title"=>'Ïîèñê',
  573.                 "onclick"=>"BX('main_info').style.display='block'",
  574.                 "class"=>'small_but'
  575.                 ),
  576.             'param'=>Array(
  577.                     "msg"=>'îòêðîåòñÿ îêíî ïàðàìåòðîâ âûãðóçêè çàêàçîâ',
  578.                     "title"=>'Âûãðóçêà çàêàçîâ',
  579.                     "onclick"=>"BX('param').style.display='block'",
  580.                     "class"=>'small_but'
  581.             ),
  582.             'crtiblock'=>Array(
  583.                         "msg"=>'îòêðîåòñÿ îêíî ñîçäàíèÿ òèïà èíôîáëîêà',
  584.                         "title"=>'Ñîçäàòü òèï èíôîáëîêà',
  585.                         "onclick"=>"AddWindowRequest('".$script_name."?action=createiblocktypeform','custom_windows','iblock');",
  586.                         "class"=>'small_but'
  587.                         ),
  588.             'fileman_but'=>Array(
  589.                             "msg"=>'îòêðîåòñÿ FileMan',
  590.                             "title"=>'FileMan (shift+~)',
  591.                             "onclick"=>"BX('test_window').style.display='block';GetFileList2('','testfileman');",
  592.                             "class"=>'small_but'
  593.                             ),
  594.             'xmltree'=>Array(
  595.                                     "msg"=>'áóäåò îòîáðàæåíî ñîäåðæèìîå âðåìåííîé òàáëèöû',
  596.                                     "title"=>'Âðåìåííàÿ òàáëèöà',
  597.                                     "onclick"=>"AjaxRequest('".$script_name."?action=show_bxmltree','log2',false);bxtabs.AlertActiveTab('tab1');",
  598.                                     "class"=>'small_but'
  599.                                     ),
  600.                     );
  601. //  $CustomButton - ìàññèâ êàñòîìíûõ êíîïîê
  602. $CustomButton['searchbutton']=Array(
  603.                             "msg"=>'ïðîèçîéä¸ò ïîèñê',
  604.                             "title"=>'íàéòè',
  605.                             "onclick"=>"searchbyxmlid();",
  606.                             "class"=>'small_but_float'
  607.                             );
  608. $CustomButton['searchbutton_iblock']=Array(
  609.                             "msg"=>'ïðîèçîéä¸ò ïîèñê',
  610.                             "title"=>'íàéòè',
  611.                             "onclick"=>"search_iblock_byxmlid();",
  612.                             "class"=>'small_but_float'
  613.                             );
  614. $CustomButton['change1']=Array(
  615.                             "msg"=>'ñìåíèòñÿ âðåìÿ ïîñëåäíåãî îáìåíà ñ 1Ñ, ïîñëå ýòîãî ïîñìîòðåòü ñïèñîê çàêàçîâ, êîòîðûå âûãðóçÿòñÿ â 1Ñ ïðè ñëåäóþùåì îáìåíå',
  616.                             "title"=>'Ñìåíèòü',
  617.                             "onclick"=>"ChangeLastMoment();",
  618.                             "class"=>'small_but'
  619.                             );
  620. $CustomButton['delete']=Array(
  621.                             "msg"=>'óäàëèòñÿ âåñü ýòîò ñêðèïò',
  622.                             "title"=>'',
  623.                             "onclick"=>"delete_file()",
  624.                             "class"=>'delete_but light'
  625.                             );
  626. $CustomButton['refresh']=Array(
  627.                             "msg"=>'îáíóëèòñÿ øàã èìïîðòà',
  628.                             "title"=>'',
  629.                             "onclick"=>"reset()",
  630.                             "class"=>'refresh_but light'
  631.                             );
  632. $CustomButton['cat_imp']=Array(
  633.                             "msg"=>"Èìïîðò ôàéëà, ýòî èìïîðò êàòàëîãà",
  634.                             "title"=>'Êàòàëîã',
  635.                             "onclick"=>"ConfirmImport('import.xml');",
  636.                             "class"=>'small_but'
  637.                             );
  638. $CustomButton['cat_off']=Array(
  639.                             "msg"=>"Èìïîðò ôàéëà, ýòî èìïîðò ïðåäëîæåíèé",
  640.                             "title"=>'Ïðåäëîæåíèÿ',
  641.                             "onclick"=>"ConfirmImport('offers.xml');",
  642.                             "class"=>'small_but'
  643.                             );
  644. $CustomButton['order_import']=Array(
  645.                             "msg"=>"Èìïîðò ôàéëà, ýòî èìïîðò çàêàçîâ",
  646.                             "title"=>'Èìïîðò çàêàçîâ',
  647.                             "onclick"=>"OrderImport('ord_imp');",
  648.                             "class"=>'small_but'
  649.                             );
  650. $CustomButton['cat_comp']=Array(
  651.                             "msg"=>"Èìïîðò ôàéëà, ýòî èìïîðò ñîòðóäíèêîâ",
  652.                             "title"=>'Ñîòðóäíèêè',
  653.                             "onclick"=>"ConfirmImport('company.xml');",
  654.                             "class"=>'small_but'
  655.                             );
  656. $CustomButton['iblockbut']=Array(
  657.                             "msg"=>'ñîçäàñòñÿ òèï èíôîáëîêà',
  658.                             "title"=>'ñîçäàòü',
  659.                             "onclick"=>"CreateIBlock();",
  660.                             "class"=>'small_but'
  661.                             );
  662. $CustomButton['test_123']=Array(
  663.                             "msg"=>'îòêðîåòñÿ FileMan',
  664.                             "title"=>'FileMan (shift+~)',
  665.                             "onclick"=>"BX('test_window').style.display='block';GetFileList2('','testfileman');",
  666.                             "class"=>'small_but'
  667.                             );
  668. $CustomButton['crfile']=Array(
  669.                             "msg"=>'áóäåì ñîçäàâòü ôàéë',
  670.                             "title"=>'ñîçäàòü ôàéë',
  671.                             "onclick"=>"CreateFile('cfilename','path_fileman','testfileman')",
  672.                             "class"=>'small_but'
  673.                             );
  674. $CustomButton['upfile']=Array(
  675.                             "msg"=>'áóäåì çàãðóæàòü ôàéë',
  676.                             "title"=>'çàãðóçèòü ôàéë',
  677.                             "onclick"=>"BX('upload_file').style.display='block'",
  678.                             "class"=>'small_but'
  679.                             );
  680. $CustomButton['go']=Array(
  681.                             "msg"=>'ïåðåéòè',
  682.                             "title"=>'ïåðåéòè',
  683.                             "onclick"=>"GetFileList('path_fileman','testfileman');",
  684.                             "class"=>'small_but'
  685.                             );
  686. //ïóíêòû êîíòåêñòîãî ìåíþ
  687. $ContextMenu=Array(
  688.         Array(
  689.                 'msg'=>"ôàéë îòêðîåòñÿ íà ïðîñìîòð",
  690.                 'id'=>"view",
  691.                 'class'=>"menu",
  692.                 'aid'=>"v",
  693.                 'point_name'=>"ïðîñìîòð"
  694.             ),
  695.             Array(
  696.                 'msg'=>"ôàéë îòêðîåòñÿ íà ïðîñìîòð â UTF",
  697.                 'id'=>"viewu",
  698.                 'class'=>"menu",
  699.                 'aid'=>"vu",
  700.                 'point_name'=>"ïðîñìîòð utf"
  701.             ),
  702.         Array(
  703.                 'msg'=>"ôàéë îòêðîåòñÿ íà ðåäàêòèðîâàíèå",
  704.                 'id'=>"edit",
  705.                 'class'=>"menu2",
  706.                 'aid'=>"e",
  707.                 'point_name'=>"ïðàâêà"
  708.             ),
  709.         Array(
  710.                 'msg'=>"ôàéë áóäåò óäàë¸í",
  711.                 'id'=>"del",
  712.                 'class'=>"menu_del",
  713.                 'aid'=>"d",
  714.                 'point_name'=>"óäàëèòü"
  715.             ),
  716.         Array(
  717.                 'msg'=>"ýòî àðõèâ è îí áóäåò ðàñïàêîâàí",
  718.                 'id'=>"unzip_",
  719.                 'class'=>"menu_unzip",
  720.                 'aid'=>"u",
  721.                 'point_name'=>"ðàñïàêîâàòü"
  722.             ),
  723.         Array(
  724.                 'msg'=>"ñêà÷àåòñÿ ôàéë",
  725.                 'id'=>"down",
  726.                 'class'=>"menu_dw",
  727.                 'aid'=>"dw",
  728.                 'point_name'=>"ñêà÷àòü"
  729.             ),
  730. );
  731. foreach ($ContextMenu as $point)
  732. $mainmenu.="var ".$point['id']."=BX('".$point['aid']."');\n";
  733. //îïèñàíèå ñòèëåé îêîí
  734. $DefaultWinStyle=Array(
  735.                 "width"=>'40%',
  736.                 "border"=>'3px solid #c3d0e9;',
  737.                 "background"=>'#b7c8e8',
  738.                 "display"=>'none',
  739.                 "position"=>'absolute',
  740.                 "cursor"=>'hand',
  741.                 "left"=>"390px",
  742.                 "top"=>"100px",
  743.                 "padding"=>"5px",
  744.                 "z-index"=>1000,
  745.                 "is_moveable"=>'Y',
  746.                 "border-radius"=>'3px'
  747.                 );
  748. $DefaultWinStyleSmall=Array(
  749.                     "width"=>320,
  750.                     "height"=>200,
  751.                     "border"=>'1px solid black',
  752.                     "background"=>'#FFF8DC',
  753.                     "display"=>'block',
  754.                     "position"=>'fixed',
  755.                     "cursor"=>'hand',
  756.                     "left"=>550,
  757.                     "top"=>250,
  758.                     "padding"=>5,
  759.                     "z-index"=>1001,
  760.                     "is_moveable"=>'Y',
  761.                      "display"=>'none'
  762.                     );
  763. $DefaultFieldStyle=Array(
  764.                 "width"=>1000,
  765.                 "height"=>660,
  766.                 "border"=>'1px solid #c3c6c9',
  767.                 "background"=>'#FFF8DC',
  768.                 "display"=>'block',
  769.                 "position"=>'fixed',
  770.                 "cursor"=>'hand',
  771.                 "left"=>350,
  772.                 "top"=>20,
  773.                 "padding"=>"20px",
  774.                 "z-index"=>10,
  775.                 "workcolor"=>"#EEE8AA",
  776.                 "border-radius"=>"3px"
  777.                 );
  778. $WinStyleIBlock=Array(
  779.                     "width"=>320,
  780.                     "height"=>220,
  781.                     "border"=>'1px solid #c3c6c9',
  782.                     "background"=>'#FFF8DC',
  783.                     "display"=>'block',
  784.                     "position"=>'fixed',
  785.                     "cursor"=>'hand',
  786.                     "left"=>550,
  787.                     "top"=>250,
  788.                     "padding"=>5,
  789.                     "z-index"=>1001,
  790.                     "is_moveable"=>'Y',
  791.                     "border-radius"=>"3px"
  792.                     );
  793. $WinStyleIpfs=Array(
  794.                     "width"=>'320px',
  795.                     //"height"=>'400px',
  796.                     "border"=>'1px solid #c3c6c9',
  797.                     "background"=>'#a5afd6',
  798.                     "display"=>'block',
  799.                     "position"=>'fixed',
  800.                     "cursor"=>'hand',
  801.                     "left"=>'75%',
  802.                     "top"=>'62%',
  803.                     "padding"=>5,
  804.                     "z-index"=>100,
  805.                     "is_moveable"=>'Y',
  806.                     "border-radius"=>"3px"
  807.                     );
  808. $EditStyle=Array(
  809.                     "width"=>'70%',
  810.                     "height"=>'90%',
  811.                     "border"=>'1px solid #c3c6c9',
  812.                     "background"=>'#6699CC',
  813.                     "display"=>'block',
  814.                     "position"=>'fixed',
  815.                     "cursor"=>'defult',
  816.                     "left"=>350,
  817.                     "font-size"=>'14',
  818.                     "top"=>20,
  819.                     "color"=>"black",
  820.                     "padding"=>'10px',
  821.                     "z-index"=>10,
  822.                     "workcolor"=>"none",
  823.                     "is_moveable"=>'N',
  824.                     "fileman"=>'Y',
  825.                     "border-radius"=>"3px"
  826.                     );
  827. //ñòðîèì ìåíþ
  828. function BuildContextMenu()
  829. {
  830.     global $ContextMenu;
  831.     echo '<table class="menu">';
  832.     foreach ($ContextMenu as $point):
  833.         echo '<tr><td class=menu onmouseover=\'LightOn(this,"'.$point['msg'].'")\' onmouseout=LightOff() id="'.$point['id'].'"><a class="'.$point['class'].' point_menu" id="'.$point['aid'].'">'.$point['point_name'].'</a></td></tr>';
  834.     endforeach;
  835.     echo '</table>
  836.     <iframe id="dwframe" style="display:none" src=""></iframe>';
  837. }
  838. //ñïèñîê ôàéëîâ óêàçàíîé äèðåêòîðèè
  839. function ShowFileSelect($listid='test',$Title='undefined',$dir,$ext='xml',$listsize=1,$DblClickAction='')
  840. {
  841.     $ifile=Array();
  842.     if ($handle = opendir($_SERVER['DOCUMENT_ROOT'].$dir))
  843.     {
  844.         while (false !== ($file_1 = readdir($handle)))
  845.         {
  846.             $file_ext=substr(strrchr($file_1, '.'), 1);
  847.             if ($file_ext==$ext)
  848.                 $ifile[]=$file_1;
  849.         }
  850.     }
  851.     asort($ifile);
  852.      if ($ifile!=Array())
  853.       {
  854.         echo '<b style="font-size:10" align=\'left\'>'.$Title.'</b><br>';
  855.         echo '<select style="width:100%;font-size:11;" size='.$listsize.' oncontextmenu="return ShowMenuExp(event);"  style="font-size:10" align=\'right\' id='.$listid.' onDblClick='.$DblClickAction.'>';
  856.         $select=false;
  857.         foreach ($ifile as $value):
  858.             if ($select==false)
  859.             {
  860.                 $select=true;
  861.                 echo '<option  selected oncontextmenu="return ShowMenuExp(event);"  "value="'.$key.'">'.$value.'</option>';
  862.                 continue;
  863.             }
  864.         echo '<option "value="'.$key.'">'.$value.'</option>';
  865.         endforeach;
  866.                             echo '</select></br>';
  867.     }
  868. }
  869. function ShowMenuWindow($ID,$NAME,$ShowHideSectionID,$content='')
  870. {
  871.     $menu="";
  872.    $menu.='<table id='.$ID.' class=menu_table cellspacing=0 cellpadding=0>
  873.           <tr><td>
  874.        <b class="rtopwin">
  875.    <b class="r1win"></b> <b class="r2win"></b> <b class="r3win"></b> <b class="r4win"></b>
  876.    </b>
  877.    </td></tr>
  878.   <tr><td class=msection>
  879.   <div style="background:#B9D3EE;position:relative;left:10;width:180;color:black">'.$NAME.'</div></td></tr>
  880.   <tr><td class=menu_td>
  881.   <div  id='.$ShowHideSectionID.'_ps style="background:white;padding:10" align=center>'.$content.'</div>
  882.    </td></tr>
  883.    <tr><td>
  884.    <b class="rbottomwin">
  885.    <b class="r4win"></b> <b class="r3win"></b> <b class="r2win"></b> <b class="r1win"></b>
  886.    </b>
  887.    </td></tr>
  888.    </table>';
  889.    echo $menu;
  890. }
  891. function AddButton($value,$mainmenu=false,$returnbutton=false,$MyButtons=false)
  892. {
  893.     global $MenuArray;
  894.     global $CustomButton;
  895.     if (is_array($MyButtons))
  896.     $arButtons=$MyButtons;
  897.     elseif($mainmenu==true)
  898.     $arButtons=$MenuArray; else $arButtons=$CustomButton;
  899.     $but=$value;
  900.     if (!is_array($but))
  901.     {
  902.         $but=$arButtons[$value];
  903.         if (!is_array($but)) return false;
  904.     }
  905.     $Button='<div type=button class="'.$but['class'].'" align="center" OnClick="'.$but['onclick'].'" >'.$but['title'].'</div>';
  906.     if ($returnbutton==false)
  907.     echo $Button;
  908.     else return $Button;
  909. }
  910. function AddWindow($NewId="newwindow",$NewName="NoNameWindow",$WorkID=false,$inner=false,$WinStyle=false,$buttons="",$mainmenu=false,$beforeInner='',$afterInner="")
  911. {
  912.     global $MenuArray;
  913.     global $CustomButton;
  914.     global $DefaultWinStyle;
  915.     if (!is_array($buttons))
  916.     $button=AddButton($buttons,$mainmenu,true);
  917.     else
  918.     foreach ($buttons as $val)
  919.     $button.=AddButton($val,$mainmenu,true);
  920.     if (!$WinStyle)
  921.     $WinStyle=$DefaultWinStyle;
  922.     if (!$inner)
  923.        $inner="<div style='background-color:".$WinStyle['workcolor']."' id=".$WorkID."></div>".$button;
  924.     if ($WinStyle['is_moveable']=='Y')
  925.        $content.='<div id="'.$NewId.'" class="divwin_'.$NewId.' round_win"><b>'.$NewName.'</b><hr>
  926.               <div class="closeButton" OnMouseOver="LightOn(this,\'çàêðîåòñÿ îêíî\');" OnMouseOut="LightOff();" onclick="Close(\''.$NewId.'\')">X</div>';
  927.     else
  928.          $content.='<div id="'.$NewId.'" class="divwin_'.$NewId.' round_win"><b>'.$NewName.'</b><hr>';
  929.     $content.=$beforeInner;
  930.     if ($WinStyle['fileman']=='Y')
  931.         $content.=AddButton('test_123',false,true);
  932.     $content.=$inner.$afterInner;
  933.     $content.='</div>';
  934.     $content.='<style>.divwin_'.$NewId.'{';
  935.    foreach ($WinStyle as $atr=>$value)
  936.        $content.=$atr.':'.$value.';';
  937.    $content.='}</style>';
  938.    $content.="<script>
  939.         BX.ready(function()
  940.         {
  941.             dragMaster.makeDraggable(BX('".$NewId."'))
  942.         });
  943.   </script>";
  944.    echo $content;
  945. }
  946. function AddField($NewId="newwindow",$NewName="NoNameWindow",$WorkID=false,$inner=false,$WinStyle=false,$buttons="",$mainmenu=false,$tableft=5)
  947. {
  948.     global $MenuArray;
  949.     global $CustomButton;
  950.     global $DefaultFieldStyle;
  951.     if (!is_array($buttons))
  952.         $button=AddButton($buttons,$mainmenu,true);
  953.     else
  954.     foreach ($buttons as $val)
  955.         $button.=AddButton($val,$mainmenu,true);
  956.     if (!$WinStyle)
  957.         $WinStyle=$DefaultFieldStyle;
  958.     $field_id=$NewId.'_field';
  959.     $tab_id=$NewId.'_tab';
  960.     $content="";
  961.     $content.='<div id='.$NewId.'>';
  962.     $content.='<div id='.$field_id.' style="width:980;padding:5;left:5;height:600;position:absolute;top:55;border:1px solid #00C5CD;z-index:99;">';
  963.     $content.=$inner;
  964.     $content.='</div>';
  965.     $content.='<b><div id='.$tab_id.' onmousedown="ShowField(this,\''.$field_id.'\');"
  966.    style="
  967.    position:absolute;
  968.    left:'.$tableft.';
  969.    height:15;
  970.    top:28;
  971.    border-top:1px solid #00C5CD;
  972.    border-right:1px solid #00C5CD;
  973.    border-left:1px solid #00C5CD;
  974.    border-bottom:2px solid #FFF8DC;
  975.    background:#FFF8DC;
  976.    padding:5;
  977.    margin:0;
  978.    width:100;
  979.    z-index:100;">'.$NewName.'</div></b>';
  980.     $content.='</div>';
  981.     $content.='<script>
  982.    var old_node = BX("'.$NewId.'");
  983.    var oldparentNode = BX("'.$NewId.'").parentNode;
  984.    // alert(oldparentNode);
  985.    var clone = old_node.cloneNode(true);
  986.    var newparentNode = BX("'.$WorkID.'").appendChild(clone);
  987.    oldparentNode.removeChild(old_node);
  988.    </script>';
  989.     echo $content;
  990. }
  991. //óäàëåíèå ñêðèïòà
  992. if (@$_GET['delete']=="Y")
  993. {
  994.     header("Content-type:text/html; charset=windows-1251");
  995.     unlink(__File__);
  996.     echo "<div style='background-color:#B9D3EE;
  997.       border:1px solid red;
  998.       text-align:center;
  999.       color:red;
  1000.       height:30;
  1001.       z-index:10000;'> Ôàéëà òåïåðü íåò - îí óäàë¸í!</div>";
  1002.     die();
  1003. }
  1004. $UPLOAD_DIR="/".COption::GetOptionString("main", "upload_dir");
  1005. $interval=COption::GetOptionString("catalog", "1C_INTERVAL", "-");
  1006. if ((!$USER->IsAdmin())&&(@($_GET['mode']!='query')))
  1007. {
  1008.     echo 'Äîñòóï çàïðåù¸í. Âû íå àäìèíèñòðàòîð ñàéòà. Äî ñâèäàíèÿ.';
  1009.     localredirect("/404.php");
  1010. }
  1011. error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
  1012. header("Content-type:text/html; charset=windows-1251");
  1013. if (@$_GET['action']=="addfield")
  1014. {
  1015.     AddField('test_123','test','para1','test',false,false,false,5);
  1016.     AddField('testfield2','offers.xml','para1','test2',false,false,false,120);
  1017.     die();
  1018. }
  1019. if (@$_GET['action']=="createfile")
  1020. {
  1021.     if (file_exists($_SERVER['DOCUMENT_ROOT'].$_GET['path']))
  1022.     {
  1023.         echo 'error001';
  1024.         die();
  1025.     }
  1026.     if ($_GET['isdir']=='Y')
  1027.     {
  1028.         if (mkdir($_SERVER['DOCUMENT_ROOT'].$_GET['path'], 0, true))
  1029.             echo 'success'; else echo 'fail';
  1030.     }
  1031.     else
  1032.     {
  1033.         if ($f = fopen ($_SERVER['DOCUMENT_ROOT'].$_GET['path'], 'a+'))
  1034.            echo 'success'; else echo 'fail';
  1035.         fclose($f);
  1036.     }
  1037.     die();
  1038. }
  1039. if (@$_GET['action']=="createiblocktypeform")
  1040. {
  1041.     $inner='<div id="successiblock"></div>
  1042.    Ââåäèòå ID òèïà èíôîáëîêà:<br>
  1043.    <input id="iblocktype" size=45 value="support_test_iblock_type"><br>'.
  1044.     'Âûãðóæàòü â ýòîò òèï èíôîáëîêà <input type="checkbox" id="1ciblock" checked>'.AddButton('iblockbut',false,true);
  1045.     AddWindow('iblock','Ñîçäàíèå òèïà èíôîáëîêà',false,$inner,$WinStyleIBlock);
  1046.     die();
  1047. }
  1048. if (@$_GET['action']=="createiblocktype")
  1049. {
  1050. CModule::IncludeModule('iblock');
  1051. $arFields = Array(
  1052.     'ID'=>$_GET['iblocktype'],
  1053.     'SECTIONS'=>'Y',
  1054.     'IN_RSS'=>'N',
  1055.     'SORT'=>100,
  1056.     'LANG'=>Array(
  1057.             'en'=>Array(
  1058.                     'NAME'=>'Catalog',
  1059.                     'SECTION_NAME'=>'Sections',
  1060.                     'ELEMENT_NAME'=>'Products'
  1061.                     )
  1062.             )
  1063.     );
  1064. $obBlocktype = new CIBlockType;
  1065. $DB->StartTransaction();
  1066. $res = $obBlocktype->Add($arFields);
  1067. if(!$res)
  1068. {
  1069.     $DB->Rollback();
  1070.     echo '<div style="color:red;border:1px dashed red;padding:5">'.$obBlocktype->LAST_ERROR;
  1071. }
  1072. else
  1073. {
  1074.     echo '<div style="color:green;border:1px dashed green;padding:5">Òèï èíôîáëîêà ñîçäàí óñïåøíî!';
  1075.     $DB->Commit();
  1076. }
  1077. if (@$_GET['USE_IBLOCK_TYPE']=='Y')
  1078. {
  1079.     COption::SetOptionString("catalog",'1C_IBLOCK_TYPE', $_GET['iblocktype']);
  1080.     COption::SetOptionString("catalog", "1C_USE_IBLOCK_TYPE_ID", "Y");
  1081.     echo 'Êàòàëîã áóäåò âûãðóæàòüñÿ â òèï èíôîáëîêà '.$_GET['iblocktype'].'</div></br>';
  1082. }
  1083. else
  1084.     echo '</div></br>';
  1085. die();
  1086. }
  1087. if (@$_GET['action']=='getstep')
  1088. {
  1089.     echo $_SESSION["BX_CML2_IMPORT"]["NS"]["STEP"];
  1090.     die();
  1091. }
  1092. if (@$_GET['action']=='download')
  1093. {
  1094.     $filename=$_SERVER["DOCUMENT_ROOT"].$_GET['path'].$_GET['file'];
  1095.     $mimetype='application/octet-stream';
  1096.     if (file_exists($filename)) {
  1097.         header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');
  1098.         header('Content-Type: ' . $mimetype);
  1099.         header('Last-Modified: ' . gmdate('r', filemtime($filename)));
  1100.         header('ETag: ' . sprintf('%x-%x-%x', fileinode($filename), filesize($filename), filemtime($filename)));
  1101.         header('Content-Length: ' . (filesize($filename)));
  1102.         header('Connection: close');
  1103.         header('Content-Disposition: attachment; filename="' . basename($filename) . '";');
  1104.         echo file_get_contents($filename);
  1105.     } else {
  1106.         header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
  1107.         header('Status: 404 Not Found');
  1108.     }
  1109.     exit;
  1110. }
  1111. if ($_REQUEST['action']=='xmlgetinfo')
  1112. {
  1113.     $filename=$_SERVER['DOCUMENT_ROOT'].$_REQUEST['path'];
  1114.     $f=fopen($filename,"a+");
  1115.     $string=fgets($f);
  1116.     if(preg_match("/<"."\?XML[^>]{1,}encoding=[\"']([^>\"']{1,})[\"'][^>]{0,}\?".">/i", $string, $matches))
  1117.     $cdata['encoding']=$matches[1];
  1118.     $string=fgets($f);
  1119.     $string=$APPLICATION->ConvertCharset($string,$cdata['encoding'],'windows-1251');
  1120.     echo $string;
  1121.     preg_match('/<Êîììåð÷åñêàÿÈíôîðìàöèÿ/is',$string, $matches);
  1122.     $cdata['version']=$matches[1];
  1123.     print_r($matches);
  1124.     die();
  1125. }
  1126. if(@$_POST['action']=="deletefile")
  1127. {
  1128.     if (!$_POST['fullpath'])
  1129.         $path=$_SESSION['bx_1c_import']['path'];
  1130.     else
  1131.         $path="";
  1132.     if (is_dir($_SERVER['DOCUMENT_ROOT'].$path.$_POST['filename']))
  1133.         $res=rmdir($_SERVER['DOCUMENT_ROOT'].$path.$_POST['filename']);
  1134.     else
  1135.         $res=unlink($_SERVER['DOCUMENT_ROOT'].$path.$_POST['filename']);
  1136.     if ($res)
  1137.         echo 'success';
  1138.     else
  1139.         echo 'error';
  1140.     die();
  1141. }
  1142. if(@$_GET['action']=="getfiles")
  1143. {
  1144.     if (!isset($_GET['path']))
  1145.             $urlpath='/'; else $urlpath=$_GET['path'];
  1146.     $realpath=str_replace('//','/',$urlpath.'/');
  1147.     $_SESSION['bx_1c_import']['path']=$realpath;
  1148.     @$_SESSION['bx_1c_import']['filter']=$_GET['like_str'];
  1149.     if (isset($_GET['workarea']))
  1150.             $wa=$_GET['workarea']; else $wa="minifileman";
  1151.     $rows=400;
  1152.     $cols=1;
  1153.     $dirs=explode('/',$realpath);
  1154.     $i=1;
  1155.     $full="";
  1156.     $el['DIR']='[root]';
  1157.     $el['PATH']='/';
  1158.     $cat[]=$el;
  1159.     while ($i<=count($dirs))
  1160.     {
  1161.         $el=Array();
  1162.         $el['DIR']=$dirs[$i];
  1163.         if ($dirs[$i]!='')
  1164.         {
  1165.                 $el['PATH']=$full.$dirs[$i].'/';
  1166.                 $full.=$dirs[$i].'/';
  1167.                 $cat[]=$el;
  1168.         }
  1169.         $i++;
  1170.     }
  1171.     $link_path="/";
  1172.     $id=0;$l=1;
  1173.     echo '<div style="font-size:11px;background:#d8dcf0;padding:4px;">';
  1174.     foreach ($cat as $el_d)
  1175.     {
  1176.         $id="p_".$wa.'_'.$l++;
  1177.         $func=str_replace('//','/','/'.$el_d["PATH"]);?><a id="<?=$id?>" href="javascript:GetFileList2('<?=$func;?>','<?=$wa?>')"><?=$el_d["DIR"]?></a>/<?
  1178.     }
  1179.     echo '</div>';
  1180.     echo '<div style="overflow:auto;height:200px;width:100%;background:white;">';
  1181.     echo '<table style="font-size:9;width:100%">';
  1182.     if ($handle = opendir($_SERVER['DOCUMENT_ROOT'].$_GET['path']))
  1183.     {
  1184.             $i=-1;
  1185.             $col=0;
  1186.             $fun_str="";
  1187.             $q=$_GET['like_str'];
  1188.             $IfoundFiles=false;
  1189.             if ($q=='') {$q="all";$fun_str="all";}
  1190.             $id=0;$l=1;
  1191.             $mdir=Array();
  1192.             $mfile=Array();
  1193.             echo "<tr><td valign='top' style='font-size:12;width:50%;border-right:1px solid #DCDCDC;'>";
  1194.             while (false !== ($file_1 = readdir($handle)))
  1195.             {
  1196.                 if (is_dir($_SERVER['DOCUMENT_ROOT'].$_GET['path'].'/'.$file_1)):
  1197.                         $mdir[]=$file_1;
  1198.                 else:
  1199.                         $mfile[]=$file_1;
  1200.                 endif;
  1201.             }
  1202.             sort($mdir);
  1203.             sort($mfile);
  1204.             $mdirectory=array_merge($mdir,$mfile);
  1205.             $color='#FFF8DC';
  1206.             foreach ($mdirectory as $file)
  1207.             {
  1208.                 if ($color=='#FFF8DC') $color='#EEEEE0'; else $color='#FFF8DC';
  1209.                 if(($file!==".")&&($file!=="..")&&(strpos($file.$fun_str,$q)!==false))
  1210.                 {
  1211.                     $id="f_".$wa.'_'.$l++;
  1212.                     if ($i>$rows) {if(++$col==$cols)
  1213.                             break;
  1214.                     elseif($IfoundFiles==true)
  1215.                     {
  1216.                             echo '</td><td width=200 valign="top" style="font-size:9">';$IfoundFiles=false;}$i=1;
  1217.                     }
  1218.                     $IfoundFiles=true;?>
  1219.  
  1220.                     <div width=100% style="background:<?=$color?>;">
  1221.                     <?
  1222.                     if (is_dir($_SERVER['DOCUMENT_ROOT'].$_GET['path'].'/'.$file)):?>
  1223.  
  1224.                             <img src='/bitrix/images/fileman/folder.gif'> <a id="<?=$id?>" style="font-size:12;color:blue;" OnMouseOver="LinkLightOn('<?=$id?>','#363636');" OnMouseOut="LinkLightOff();" href="javascript:GetFileList2('<?=str_replace('//','/',$_GET['path'].'/').$file.'/'?>','<?=$wa?>')"><?=$file?></a>
  1225.                     <?else:?>
  1226.  
  1227.                     <img src='/bitrix/images/fileman/file.gif'>
  1228.                     <a id="<?=$id?>" style="font-size:12;" href="javascript:ShowFile('<?=$file?>','<?=$realpath?>','N')" oncontextmenu="return ShowMenu(event);" OnMouseOver="LinkLightOn('<?=$id?>','#1C1C1C');" OnMouseOut="LinkLightOff();" href="#" onmousedown="moveState = false;" onmousemove="moveState = false;"><?if (strlen($file)>50) echo substr($file,0,-(strlen($file)-8))."...".substr($file,-4); else echo $file;?></a>
  1229.                     <a  style="color:red;font-size:10;" href=javascript:Delete('<?=$file?>','<?=$wa?>') OnMouseOver="LightOn(this,'! óäàëèòñÿ <b> <?=$file?></b> !');" OnMouseOut=LightOff()>[X]</a><a style="color:green;font-size:10;" href=javascript:ShowInfo('<?=$realpath.$file?>') OnMouseOver="LightOn(this,'îòîáðàçèòñÿ èíôîðìàöèÿ ïî <b> <?=$file?></b>');" OnMouseOut=LightOff()>[!]</a>
  1230.                     </div>
  1231.                     <?endif;?>
  1232.                     <?
  1233.                     $i++;
  1234.                  }
  1235.             }
  1236.             closedir($handle);
  1237.     }
  1238.     echo '</td></tr></table>';
  1239.     echo '</div>';
  1240.     die();
  1241. }
  1242. //ðàñïàêîâêà ôàéëà
  1243. if (@$_POST['action']=="unzip")
  1244. {
  1245.     $zip = $_POST['filename'];
  1246.     CModule::IncludeModule('iblock');
  1247.     $result = CIBlockXMLFile::UnZip($zip);
  1248.     echo 1;
  1249.     die();
  1250. }
  1251. //ãðóçèì  ëþáîé ôàéë â óêàçàííóþ ïàïêó
  1252. if (@$_GET['upload']=="Y")
  1253. {
  1254.     if(is_array($_FILES['test_file']))
  1255.     {
  1256.         $tmp_name=$_FILES['test_file']['tmp_name'];
  1257.         if( $_SESSION['bx_1c_import']['path']=="")
  1258.         $test_file=$UPLOAD_DIR."/".$_FILES['test_file']['name'];
  1259.         else $test_file=$_SESSION['bx_1c_import']['path'].$_FILES['test_file']['name'];
  1260.         if(is_uploaded_file($tmp_name))
  1261.                         {
  1262.                                 move_uploaded_file($tmp_name,$_SERVER['DOCUMENT_ROOT'].$test_file);
  1263.                                 echo("<a href='".$test_file."' target='_blank'>".$_FILES['test_file']['name']."</a>");
  1264.                         }
  1265.         else
  1266.                 echo "error";
  1267.                 echo '<br>';
  1268.     }
  1269.     //ôîðìà äëÿ çàãðóçêè ôàéëà íà ñåðâåð
  1270.     if (isset($_POST['test_file']))
  1271.        echo "Ôàéë ".$_POST['test_file']." çàãðóæåí";
  1272.     echo "<div style='background-color:#FFE4B5'>
  1273.    <form action='".$script_name."?upload=Y' method=post enctype='multipart/form-data'>
  1274.    <input onmousedown='moveState = false;' onmousemove='moveState = false;' type='file' name='test_file'>
  1275.    <input type='submit' value='çàãðóçèòü' name='upload_file'>
  1276.    </form></div>
  1277.    ";
  1278.     die();
  1279. }
  1280. //ïîèñê ýëåìåíòà â ôàéëå è íà ñàéòå ïî XML_ID
  1281. if (isset($_GET['search']))
  1282. {
  1283.     if ($_GET['iblock']=="Y")
  1284.     {
  1285.           CModule::IncludeModule("iblock");
  1286.         $check=CIBlock::GetList(Array(),Array("XML_ID"=>'%'.$_GET['search'].'%'));
  1287.             if (!$check) echo 'íà ñàéòå òàêèõ íåò';
  1288.         while($res=$check->Fetch())
  1289.         {
  1290.     //  /bitrix/admin/iblock_edit.php?type=1c_catalog&ID=23&admin=Y
  1291.             echo "Íàçâàíèå - <em>".$res['NAME']."</em><br>
  1292.             Âíåøíèé êîä - <em>".$res['XML_ID']."</em><br>
  1293.             <a style=\"float:right\" href='/bitrix/admin/iblock_edit.php?type=".$res['IBLOCK_TYPE_ID']."&ID=".$res['ID']."&admin=Y'>ïåðåéòè</a><br clear='both'>
  1294.             <hr>";
  1295.         }
  1296.         die();
  1297.     }
  1298.     $q=$_GET['search'];
  1299.     CModule::IncludeModule("iblock");
  1300.     $check=CIBlockElement::GetList(Array(),Array("EXTERNAL_ID"=>$q));
  1301.     if (!$check) echo 'íà ñàéòå òàêèõ íåò';
  1302.     while($res=$check->Fetch())
  1303.     echo 'IBLOCK_ID='.$res["IBLOCK_ID"].' <a href="/bitrix/admin/iblock_element_edit.php?ID='.$res["ID"].'&IBLOCK_ID='.$res["IBLOCK_ID"].'&type='.$res["IBLOCK_TYPE_ID"].'" target="_blank">Ïåðåéòè</a><br>';
  1304.     die();
  1305. }
  1306. //ïîëó÷åíèå  òåêñòà xml-ôàéëà, êîòîðûé áóäåò ïåðåïðàâëåí ñ ñàéòà â 1Ñ ïðè ñëåäóþùåì îáìåíå.
  1307. if($_GET["mode"] == "query")
  1308. {
  1309.     CModule::IncludeModule("sale");
  1310.     $arParams=Array(
  1311.     "SITE_LIST" => COption::GetOptionString("sale", "1C_SALE_SITE_LIST", ""),
  1312.     "EXPORT_PAYED_ORDERS" => COption::GetOptionString("sale", "1C_1C_EXPORT_PAYED_ORDERS", ""),
  1313.     "EXPORT_ALLOW_DELIVERY_ORDERS" => COption::GetOptionString("sale", "1C_EXPORT_ALLOW_DELIVERY_ORDERS", ""),
  1314.     "EXPORT_FINAL_ORDERS" => COption::GetOptionString("sale", "1C_EXPORT_FINAL_ORDERS", ""),
  1315.     "FINAL_STATUS_ON_DELIVERY" => COption::GetOptionString("sale", "1C_FINAL_STATUS_ON_DELIVERY", "F"),
  1316.     "REPLACE_CURRENCY" => COption::GetOptionString("sale", "1C_REPLACE_CURRENCY", ""),
  1317.     "GROUP_PERMISSIONS" => explode(",", COption::GetOptionString("sale", "1C_SALE_GROUP_PERMISSIONS", "")),
  1318.     "USE_ZIP" => COption::GetOptionString("sale", "1C_SALE_USE_ZIP", "Y"));
  1319.     $arFilter = Array();
  1320.     if($arParams["EXPORT_PAYED_ORDERS"])
  1321.         $arFilter["PAYED"] = "Y";
  1322.     if($arParams["EXPORT_ALLOW_DELIVERY_ORDERS"]<>"N")
  1323.         $arFilter["ALLOW_DELIVERY"] = "Y";
  1324.     if(strlen($arParams["EXPORT_FINAL_ORDERS"])>0)
  1325.     {
  1326.         $bNextExport = false;
  1327.         $arStatusToExport = Array();
  1328.         $dbStatus = CSaleStatus::GetList(Array("SORT" => "ASC"), Array("LID" => LANGUAGE_ID));
  1329.         while ($arStatus = $dbStatus->Fetch())
  1330.         {
  1331.             if($arStatus["ID"] == $arParams["EXPORT_FINAL_ORDERS"])
  1332.                 $bNextExport = true;
  1333.             if($bNextExport)
  1334.                 $arStatusToExport[] = $arStatus["ID"];
  1335.         }
  1336.         $arFilter["STATUS_ID"] = $arStatusToExport;
  1337.     }
  1338.     if(strlen($arParams["SITE_LIST"])>0)
  1339.         $arFilter["LID"] = $arParams["SITE_LIST"];
  1340.     if(strlen(COption::GetOptionString("sale", "last_export_time_committed_/bitrix/admin/1c_excha", ""))>0)
  1341.     $arFilter[">=DATE_UPDATE"] = ConvertTimeStamp(COption::GetOptionString("sale", "last_export_time_committed_/bitrix/admin/1c_excha", ""), "FULL");
  1342.     ob_start();
  1343.     CSaleExport::ExportOrders2Xml($arFilter, false, $arParams["REPLACE_CURRENCY"]);
  1344.     $xml=ob_get_contents();
  1345.     ob_end_clean();
  1346.     $dres=CSite::GetList();
  1347.     $site=$dres->Fetch();
  1348.     if (strtoupper($site['CHARSET'])<>'WINDOWS-1251')
  1349.     $xml=$APPLICATION->ConvertCharset($xml,$site['CHARSET'],"WINDOWS-1251");
  1350.     if (@$_GET['save']=='Y')
  1351.     {
  1352.         unlink($_SERVER['DOCUMENT_ROOT'].$UPLOAD_DIR."/bx_orders.xml");
  1353.         $f = fopen ($_SERVER['DOCUMENT_ROOT'].$UPLOAD_DIR."/bx_orders.xml", 'a+');
  1354.         fwrite ($f,$xml);
  1355.         fclose($f);
  1356.         $xml=trim($xml);
  1357.         echo '<pre style="background:white; text-align:right">òåêñò xml-ôàéëà, êîòîðûé áóäåò ïåðåäàí â 1Ñ ïðè ñëåäóþùåì îáìåíå</pre>';
  1358.         echo '<div onmousedown="moveState = false;" onmousemove="moveState = false;" style="overflow-y:scroll;height:90%;width:100%;background:white;">';
  1359.         highlight_string($xml);
  1360.         echo '</div>';
  1361.     }
  1362.     else echo $xml;
  1363.     die();
  1364. }
  1365. if ($_GET["action"]=="show_bxmltree")
  1366. {
  1367.     CModule::IncludeModule('iblock');
  1368.     $xmlfile=new CIBlockXMLFile;
  1369.     $dbres=$xmlfile->GetList();
  1370.     if (!$dbres)
  1371.        die();
  1372.     echo '<div  style="overflow:auto;height:100%;width:100%;">';
  1373.     echo '<table cellspacing=2 cellpadding=5 style="border:0px solid #E6E6FA;font-size:11px;background:white;">';
  1374.     echo '<tr style="background:grey;color:white;">';
  1375.     echo '<td>'.'ID'.'</td>';
  1376.     echo '<td>'.'PARENT_ID'.'</td>';
  1377.     echo '<td>'.'LEFT_MARGIN'.'</td>';
  1378.     echo '<td>'.'RIGHT_MARGIN'.'</td>';
  1379.     echo '<td>'.'DEPTH_LEVEL'.'</td>';
  1380.     echo '<td>'.'NAME'.'</td>';
  1381.     echo '<td>'.'VALUE'.'</td>';
  1382.     echo '<td>'.'ATTRIBUTES'.'</td>';
  1383.     echo '</tr>';
  1384.     while($res=$dbres->Fetch())
  1385.     {
  1386.         echo '<tr>';
  1387.         foreach ($res as $value):
  1388.         echo '<td valign=top  style="width:50px;border:1px solid #E6E6FA">'.$APPLICATION->ConvertCharset($value,SITE_CHARSET,"windows-1251").'</td>';
  1389.         endforeach;
  1390.         echo '</tr>';
  1391.     }
  1392.     echo '</table>';
  1393.     echo '<div>';
  1394.     die();
  1395. }
  1396. //âûâîä ñîäåðæèìîãî ôàéëîâ
  1397. if ($_GET["mode"]=="show_xml")
  1398. {
  1399.     $filename=$_SERVER['DOCUMENT_ROOT'].$_GET["path"].$_GET["file"];
  1400.     echo '<pre style="background:white; text-align:left">Ðåäàêòèðîâàòü: <a href="/bitrix/admin/fileman_file_edit.php?path='.$_GET["path"].$_GET["file"].'&full_src=Y" target="_blank">'.$filename.'</a></pre>';
  1401.     if (isset($_GET["path"]))
  1402.         $filename=$_SERVER['DOCUMENT_ROOT'].$_GET["path"].$_GET["file"]; else
  1403.     $filename=$_SERVER['DOCUMENT_ROOT'].$UPLOAD_DIR."/1c_catalog/".$_GET["file"];
  1404.     $file_ext=substr(strrchr($filename, '.'), 1);
  1405.     if (in_array($file_ext,$APicture))
  1406.     {
  1407.         echo "<img src='".$_GET["path"].$_GET["file"]."'>";
  1408.         die();
  1409.     }
  1410.     $xml = file_get_contents($filename);
  1411.     if (!$xml)
  1412.         echo "Íåò òàêîãî ôàéëà";
  1413.     if(@$_GET['isutf']=='Y')
  1414.         $xml=$APPLICATION->ConvertCharset($xml,"UTF-8","windows-1251");
  1415.     elseif (ToUpper(SITE_CHARSET)!='WINDOWS-1251')
  1416.     $xml=$APPLICATION->ConvertCharset($xml,SITE_CHARSET,"windows-1251");
  1417.     function callback($buffer)
  1418.     {
  1419.         if (round(filesize($_SERVER['DOCUMENT_ROOT'].$UPLOAD_DIR."/1c_catalog/".$_GET['offers'])/1024,2)<2000)
  1420.         {
  1421.             $pattern=Array('/Òîâàð/','/Çíà÷åíèÿÑâîéñòâà/');
  1422.             $replacements=Array("<b style='color:red'>Òîâàð</b>","<b style='color:green'>Çíà÷åíèÿÑâîéñòâà</b>");
  1423.             $buffer=preg_replace($pattern, $replacements, $buffer);
  1424.         }
  1425.         if (!$f=fopen($_SERVER['DOCUMENT_ROOT'].$_GET["path"].$_GET["file"],'a'))
  1426.             $WriteError="<p style='font-size:10px;color:red;'>Îòêðûòü íà çàïèñü ôàéë íå óäàñòñÿ!</p>";
  1427.         fclose($f);
  1428.         return '
  1429.         <div  onmousedown="moveState = false;" onmousemove="moveState = false;" style="overflow:auto;height:90%;width:100%;background:white;">'.$buffer.'</div>
  1430.         ';
  1431.     }
  1432.     ob_start("callback");
  1433.     highlight_string($xml);
  1434.     ob_end_flush();
  1435.     die();
  1436. }
  1437. if ($_GET["mode"]=="edit")
  1438. {
  1439. if (isset($_GET["path"]))
  1440.     $filename=$_SERVER['DOCUMENT_ROOT'].$_GET["path"].$_GET["file"]; else
  1441. $filename=$_SERVER['DOCUMENT_ROOT'].$UPLOAD_DIR."/1c_catalog/".$_GET["file"];
  1442. echo '<pre style="background:white; text-align:right"><a href="/bitrix/admin/fileman_file_edit.php?path='.$_GET["path"].$_GET["file"].'&full_src=Y" target="_blank">'.$filename.'</a></pre>';
  1443.     $file_ext=substr(strrchr($filename, '.'), 1);
  1444.     if (in_array($file_ext,$APicture))
  1445.     {
  1446.     echo "<img src='".$_GET["path"].$_GET["file"]."'>";  die();
  1447.     }
  1448.     $xml = file_get_contents($filename);
  1449.     if (!$xml) echo "Íåò òàêîãî ôàéëà";
  1450.     if(@$_GET['isutf']=='Y')
  1451.             $xml=$APPLICATION->ConvertCharset($xml,"UTF-8","windows-1251");
  1452.     elseif (ToUpper(SITE_CHARSET)!='WINDOWS-1251')
  1453.             $xml=$APPLICATION->ConvertCharset($xml,SITE_CHARSET,"windows-1251");
  1454.     ?>
  1455.  
  1456.  
  1457.     <div id="sfstatus" onmousedown="moveState = false;" onmousemove="moveState = false;" style="display:none;color:green;border:1px dashed green;padding:5; text-align:center;width:250px;margin:5"></div>
  1458.     <table>
  1459.     <tr>
  1460.             <td>
  1461.                     <div onmousedown="moveState = false;" onmousemove="moveState = false;" id="savefile" align="center"  onclick="SaveFile('<?=$_GET["path"].$_GET["file"]?>')" OnMouseOver="LightOn(this,'ñäåëàííûå èçìåíåíèÿ áóäóò ñîõðàíåíû');" OnMouseOut="LightOff()"; class="small_but">Ñîõðàíèòü</div>
  1462.             </td>
  1463.             <td>
  1464.                     <div onmousedown="moveState = false;" onmousemove="moveState = false;" id="viewfile" align="center"  onclick="ShowFile('<?=$_GET["file"]?>','<?=$_GET["path"]?>','N')" OnMouseOver="LightOn(this,'ïåðåõîä â ðåæèì ïðîñìîòðà òåêóùåãî ôàéëà');" OnMouseOut="LightOff()"; class="small_but">Ïîñìîòðåòü</div>
  1465.             </td>
  1466.     </tr>
  1467.     </table>
  1468.     <?
  1469.     echo '
  1470.     <textarea onmousedown="moveState = false;" onmousemove="moveState = false;" id="textfile" rows="60" cols="119" style="position:absolute;overflow:auto;font-size:16pt;height:82%;width:98%;">'.htmlspecialchars($xml).'</textarea>
  1471.     ';
  1472.     die();
  1473. }
  1474. //save
  1475.     if ($_REQUEST["action"]=="save")
  1476.     {
  1477.         $filename=$_SERVER['DOCUMENT_ROOT'].$_REQUEST["filename"];
  1478.         $f = fopen($filename, 'w+');
  1479.         if (ToUpper(SITE_CHARSET)!='UTF-8')
  1480.             $text=$APPLICATION->ConvertCharset($_REQUEST["text"],'UTF-8',SITE_CHARSET);
  1481.         if (($f)&&(fwrite($f, $text)!=false))
  1482.         echo 'OK'; else echo 'error';
  1483.         fclose($f);
  1484.         die();
  1485.     }
  1486. //ïðîâåðêà ôàéëà,  íå ñóùåñòâóåò èëè íåò ïðàâ íà ÷òåíèå?
  1487. if (@$_GET['check_file']=="Y")
  1488. {
  1489.     unset($_SESSION["BX_CML2_IMPORT"]);
  1490.     $c=0;
  1491.     if(file_exists($_SERVER['DOCUMENT_ROOT'].$UPLOAD_DIR."/1c_catalog/".$_GET['file'])) $c=$c+2;
  1492.     else $c=$c+3;
  1493.     if($c==2)
  1494.         echo "<div style='width:270;font-size:11;border-left:1px solid black;border-right:1px solid black;border-bottom:1px solid black;background-color:FA8072;padding:5'>Íåò ïðàâ íà ÷òåíèå ôàéëà!</div>";
  1495.     if ($c==3)
  1496.         echo "<div style='width:270;font-size:11;border-left:1px solid black;border-right:1px solid black;border-bottom:1px solid black;background-color:FA8072;padding:5'>Ôàéëà ".$_GET['file']." íå ñóùåñòóåò!</div>";
  1497.     die();
  1498. }
  1499. $items[0]=Array();
  1500. $group[0]=Array();
  1501. $c_offers[0]=Array();
  1502. //ïîëó÷åíèå  èíôîðìàöèè ïî êîëè÷åñòâó ãðóïï, òîâàðîâ è ïðåäëîæåíèé, ïóò¸ì àíàëèçà ôàéëîâ êàòàëîãà è ïðåäëîæåíèé
  1503. if (@$_GET['info']=="Y")
  1504. {
  1505.     $content=file_get_contents($_SERVER['DOCUMENT_ROOT'].$_GET['file']);
  1506.     $offer=iconv("WINDOWS-1251", "UTF-8", '<Ïðåäëîæåíèå>');
  1507.     //  $product=iconv("WINDOWS-1251", "UTF-8", '<Òîâàð>');
  1508.     $section=iconv("WINDOWS-1251", "UTF-8", '<Ãðóïïà>');
  1509.     preg_match_all('/'.$product.'/', $content , $items);
  1510.     preg_match_all('/'.$section.'/', $content , $group);
  1511.     preg_match_all('/'.$offer.'/', $content, $c_offers);
  1512.     $file_size=round(filesize($_SERVER['DOCUMENT_ROOT'].$_GET['file'])/1024,2);
  1513.     ?>
  1514.  
  1515.     <table style="font-size:11;" cellpadding="0"><tr><td align="right">Ðàçìåð ôàéëà: </td><td><b><?=$file_size.' kb';?></b> | </td>
  1516.     <td align="right" >Ïðåäëîæåíèé: </td><td><b><?=count($c_offers[0]);?></b> | </td>
  1517.     <td align="right">Òîâàðîâ: </td><td><b><?=count($items[0]);?></b> | </td>
  1518.     <td align="right">Ãðóïï: </td><td><b><?=count($group[0]);?></b></td></tr>
  1519.     </table>
  1520.     <?  die();
  1521. }
  1522. //ñìåíà ìåòêè âðåìåíè ïîñëåäíåãî îáìåíà
  1523. if (!$_REQUEST['path1']==''):
  1524.     $path_companent = substr($_REQUEST['path1'], 0, 22);
  1525.     $full_path=$_REQUEST['path1'];
  1526. else:
  1527.     $path_companent = substr($catalog_import_path, 0, 22);
  1528.     $full_path=$catalog_import_path;
  1529. endif;
  1530. if((!$_REQUEST['date']=='')&&(isset($_REQUEST['change'])))
  1531. {
  1532.     if (!file_exists("bx_exchange_date.log"))
  1533.     {
  1534.         $f = fopen ("bx_exchange_date.log", 'a+');
  1535.         fwrite ($f, ConvertTimeStamp(COption::GetOptionString("sale", "last_export_time_committed_".$path_companent, ""), "FULL"));
  1536.         fclose($f);
  1537.     }
  1538.     $current_date=ConvertTimeStamp(COption::GetOptionString("sale", "last_export_time_committed_".$path_companent, ""), "FULL");
  1539.     COption::SetOptionString("sale", "last_export_time_committed_".$path_companent, MakeTimeStamp($_REQUEST['date'], "DD.MM.YYYY HH:MI:SS"));
  1540. }
  1541. if (isset($_REQUEST['AJAX']))
  1542. {
  1543.     echo $date;
  1544.     die();
  1545. }
  1546. //ïîëó÷íåèå ñïèñêà çàêàçîâ, êîòîðûå áóäóò âûãðóæåíû â 1ñ ïðè ñëåäóþùåì îáìåíå
  1547. if (isset($_REQUEST['check'])):
  1548.     CModule::IncludeModule("sale");
  1549.     $path_companent = substr($_REQUEST['path'], 0, 22);
  1550.     if(isset($_REQUEST['PAYED']))
  1551.         $arFilter['PAYED']="Y";
  1552.     if(isset($_REQUEST['ALLOW_DELIVERY']))
  1553.         $arFilter['ALLOW_DELIVERY']="Y";
  1554.     $arFilter[">=DATE_UPDATE"] = ConvertTimeStamp(COption::GetOptionString("sale", "last_export_time_committed_".$path_companent, ""), "FULL");
  1555.     $change=false;
  1556.     $dbOrderList = CSaleOrder::GetList(
  1557.                         array("ID" => "DESC"),
  1558.                         $arFilter,
  1559.                         false,
  1560.                         $count,
  1561.                         array("ID", "LID", "PERSON_TYPE_ID", "PAYED", "DATE_PAYED", "EMP_PAYED_ID", "CANCELED", "DATE_CANCELED", "EMP_CANCELED_ID", "REASON_CANCELED", "STATUS_ID", "DATE_STATUS", "PAY_VOUCHER_NUM", "PAY_VOUCHER_DATE", "EMP_STATUS_ID", "PRICE_DELIVERY", "ALLOW_DELIVERY", "DATE_ALLOW_DELIVERY", "EMP_ALLOW_DELIVERY_ID", "PRICE", "CURRENCY", "DISCOUNT_VALUE", "SUM_PAID", "USER_ID", "PAY_SYSTEM_ID", "DELIVERY_ID", "DATE_INSERT", "DATE_INSERT_FORMAT", "DATE_UPDATE", "USER_DESCRIPTION", "ADDITIONAL_INFO", "PS_STATUS", "PS_STATUS_CODE", "PS_STATUS_DESCRIPTION", "PS_STATUS_MESSAGE", "PS_SUM", "PS_CURRENCY", "PS_RESPONSE_DATE", "COMMENTS", "TAX_VALUE", "STAT_GID", "RECURRING_ID")
  1562.                     );
  1563. ?>
  1564.     Èçìåíåíèÿ â çàêàçàõ <hr>
  1565.     <div style="font-size:12;padding:3;background: white;"> Äàòà ïîñëåäíåãî îáìåíà - <?=$arFilter[">=DATE_UPDATE"]?></div>
  1566.     <br>
  1567. <?  $n=0;
  1568.     echo '<div style="font-size:11;padding:3;background: white;">';
  1569.     while($arOrder = $dbOrderList->Fetch())
  1570.     {
  1571.         $n++;
  1572.         echo '<a href="/bitrix/admin/sale_order_detail.php?ID='.$arOrder["ID"].'" target="_blank" >Çàêàç ¹'.$arOrder["ID"].'</a>';
  1573.         echo ' - äàòà èìåíåíèÿ ',$arOrder["DATE_UPDATE"];
  1574.         echo '<br>';
  1575.         $change=true;
  1576.     }
  1577.     if (!$change) echo "Íà ñàéòå íåò çàêàçîâ, èçìåí¸ííûõ ïîñëå äàòû ïîñëåäíåãî îáìåíà ñ 1Ñ!!!";
  1578.     echo '<br><b>ÂÑÅÃÎ ÇÀÊÀÇÎÂ: '.$n.'</b><br>';
  1579.     echo "</div>";
  1580.     die();
  1581. endif;
  1582. if (isset($_REQUEST['setstep']))
  1583. {
  1584.     $_SESSION["BX_CML2_IMPORT"]["NS"]["STEP"]=IntVal($_REQUEST['setstep']);
  1585.     echo $_SESSION["BX_CML2_IMPORT"]["NS"]["STEP"];
  1586.     die();
  1587. }
  1588. unset($_SESSION["BX_CML2_IMPORT"]);//ñáðîñ øàãà èìïîðòà
  1589. $host='http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];//õîñò
  1590. ?>
  1591. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  1592.  
  1593. <html>
  1594. <head>
  1595.      <link rel="stylesheet" href="http://codemirror.net/lib/codemirror.css">
  1596.     <script src="http://codemirror.net/lib/codemirror.js"></script>
  1597.     <script src="http://codemirror.net/mode/xml/xml.js"></script>
  1598.     <link rel="stylesheet" href="http://codemirror.net/mode/javascript/javascript.css">
  1599.  
  1600.     <link rel="stylesheet" href="http://codemirror.net/mode/clike/clike.css">
  1601.     <script src="http://codemirror.net/mode/javascript/javascript.js"></script>
  1602.     <script src="http://codemirror.net/mode/php/php.js"></script>
  1603.     <script src="http://codemirror.net/mode/clike/clike.js"></script>
  1604.  
  1605. <?CUtil::InitJSCore(Array('ajax','window'));
  1606. $APPLICATION->ShowHeadScripts();
  1607. $APPLICATION->ShowHeadStrings();
  1608. ?>
  1609. <style>
  1610. .CodeMirror-scroll
  1611. {
  1612.     height:100%;
  1613. }
  1614. .CodeMirror {
  1615.   overflow: auto;
  1616.   background:white;
  1617.   height: 85%;
  1618.   line-height: 1em;
  1619.   font-family: monospace;
  1620.   _position: relative; /* IE6 hack */
  1621. }
  1622.       .CodeMirror pre{
  1623.         font-size:14px;
  1624.         line-height: 1.3em;
  1625.       }
  1626.       .activeline {background: #E6E6FA !important;}
  1627. body
  1628. {
  1629.     background:white;
  1630.     font-family: Arial,sans-serif,Lucida Sans;
  1631.     font-size:12px;
  1632.     padding:0px;
  1633.     margin:0px;
  1634.     margin-left:5px;
  1635. }
  1636. input
  1637. {
  1638.     outline: none;
  1639. }
  1640. .button
  1641. {
  1642.    background-color:#B9D3EE;
  1643.    border:1px solid #ADC3D5;
  1644.    width:150;
  1645.    height:20px;
  1646.    font-size:13;
  1647.    color:#2B587A;
  1648.    padding-top:5px;
  1649.    padding-bottom:2px;
  1650.    margin:4px;
  1651. }
  1652. .field
  1653. {
  1654.     clear:both;
  1655.     height:90%;
  1656.     width:95%;
  1657.     position:absolute;
  1658.     padding:10px;
  1659. }
  1660. .tab_field_dav
  1661. {
  1662.     max-height:400px;
  1663.     max-width:750px;
  1664.     min-width:750px;
  1665.     background:white;
  1666. }
  1667. .button2
  1668. {
  1669.    background-color:#B9D3EE;
  1670.    border:none
  1671.    cursor:hand;
  1672.    text-align:center;
  1673.    width:150;
  1674.    height:20px;
  1675.    font-size:12;
  1676.    color:#2B587A;
  1677.    margin:5;
  1678.    padding-top:5;
  1679.    box-shadow:0px 0px 3px 0px #c3c6c9;
  1680.     -webkit-box-shadow:0px 0px 3px 0px #c3c6c9;
  1681.     -moz-box-shadow:0px 0px 3px 0px #c3c6c9;
  1682.     border-radius:5px;
  1683. }
  1684. .rtopwin, .rbottomwin{display:block;width:200;}
  1685. .rtopwin *,.rbottomwin *{display: block; height: 1px; overflow: hidden;background:#B9D3EE;}
  1686. .r1win{margin: 0 5px;}
  1687. .r2win{margin: 0 3px;}
  1688. .r3win{margin: 0 2px;}
  1689. .r4win{margin: 0 1px; height: 2px;}
  1690. .msection
  1691. {
  1692.     width:180;
  1693.     font-size:14;
  1694.     color:white;
  1695.     border-top:none;
  1696.     background:#B9D3EE;
  1697.     border-bottom:6px solid #B9D3EE;
  1698. }
  1699. .FrontTab
  1700. {
  1701.   position:absolute;
  1702.   height:15;
  1703.   top:30;
  1704.   border-top:1px solid black;
  1705.   border-right:1px solid black;
  1706.   border-left:1px solid black;
  1707.   border-bottom:2px solid #FFF8DC;
  1708.   background:#FFF8DC;
  1709.   padding:5;
  1710.   margin:0;
  1711.   width:100;
  1712.   z-index:100;
  1713. }
  1714. .message
  1715. {
  1716.    background-color:#B9D3EE;
  1717.    border:2px solid red;
  1718.    text-align:center;
  1719.    position:absolute;
  1720.    height:15px;
  1721.    padding:10;
  1722.    left:40%;
  1723.    top:50%;
  1724.    opacity:0.5;
  1725.    font-size:12;
  1726.    color:red;
  1727.    z-index:10000;
  1728. }
  1729. .tab
  1730. {
  1731.     border-top-left-radius:5px;
  1732.     border-top-right-radius:5px;
  1733.     -moz-border-top-left-radius:5px;
  1734.     -moz-border-top-right-radius:5px;
  1735.     border-right: 1px dotted #B0C4DE;
  1736.     border-left: 1px dotted #B0C4DE;
  1737.     padding-left:10px;
  1738.     padding-right:10px;
  1739.     padding-top:5px;
  1740.     padding-bottom:5px;
  1741.     font-size:16px;
  1742.     margin-left:2px;
  1743.     float:left;
  1744.     background: #d3e1fa;
  1745.     cursor:pointer;
  1746.     opacity:0.2;
  1747.     }
  1748. .tab_dav
  1749. {
  1750.     border-top-left-radius:5px;
  1751.     border-top-right-radius:5px;
  1752.     -moz-border-top-left-radius:5px;
  1753.     -moz-border-top-right-radius:5px;
  1754.     border-right: 1px dotted #B0C4DE;
  1755.     border-left: 1px dotted #B0C4DE;
  1756.     border-top: 1px solid #B0C4DE;
  1757.     padding:5px;
  1758.     font-size:12px;
  1759.     margin-left:2px;
  1760.     float:left;
  1761.     background: #d3e1fa;
  1762.     cursor:pointer;
  1763.     opacity:0.2;
  1764.     }
  1765. .tab_s
  1766. {
  1767.     border: 1px solid #d3e1fa;
  1768.         border-right: 1px dotted #B0C4DE;
  1769.     border-left: 1px dotted #B0C4DE;
  1770.     padding-left:10px;
  1771.     padding-right:10px;
  1772.     padding-top:5px;
  1773.     padding-bottom:5px;
  1774.     font-size:12px;
  1775.     margin-left:2px;
  1776.     margin-bottom:-2px;
  1777.     float:left;
  1778.     background: #d3e1fa;
  1779.     cursor:pointer;
  1780.     opacity:0.2;
  1781. }
  1782. .ver
  1783. {
  1784.     border-radius:5px;
  1785.     border-bottom-right-radius:5px;
  1786.     -moz-border-bottom-left-radius:5px;
  1787.     -moz-border-bottom-right-radius:5px;
  1788.     border: 1px solid #E7ECF5;
  1789.     padding:5px;
  1790.     float:right;
  1791.     font-size:10px;
  1792.     margin-left:2px;
  1793.     background: #E7ECF5;
  1794.     position:absolute;
  1795.     right:2%;
  1796.     top:2%;
  1797. }
  1798. .left_panel
  1799. {
  1800.     border-top-right-radius:5px;
  1801.     border-bottom-right-radius:5px;
  1802.     -moz-border-top-left-radius:5px;
  1803.     -moz-border-top-right-radius:5px;
  1804.     border: 1px solid #d3e1fa;
  1805.     padding-left:10px;
  1806.     padding-right:10px;
  1807.     float:left;
  1808.     right:0px;
  1809.     max-width:140px;
  1810.     padding-top:5px;
  1811.     padding-bottom:5px;
  1812.     font-size:12px;
  1813.     margin-left:2px;
  1814.     background: #d3e1fa;
  1815.     cursor:pointer;
  1816. }
  1817. .file_panel
  1818. {
  1819.     border: 1px dotted #E7ECF5;
  1820.     font-size:12px;
  1821.     padding:5px;
  1822.     background:white;
  1823. }
  1824. .divwin
  1825. {
  1826.     width: 300px;
  1827.     background: #a3b3cf;
  1828.     display: none;
  1829.     cursor:hand;
  1830.     left:320px;
  1831.     top:160px;
  1832. }
  1833. .divwin_times
  1834. {
  1835.     width: 300px;
  1836.     background: #a5afd6;
  1837.     display: none;
  1838.     left:50%;
  1839.     top:50%;
  1840. }
  1841. .divwin_param
  1842. {
  1843.     width: 300px;
  1844.     background: #a3b3cf;
  1845.     display: none;
  1846.     left:25%;
  1847.     top:25%;
  1848. }
  1849. .divwin_info
  1850. {
  1851.     width: 320px;
  1852.     background: #a5afd6;
  1853.     display: none;
  1854.     left:7px;
  1855.     top:60%;
  1856.     left:75%;
  1857. }
  1858. .divwin_main
  1859. {
  1860.     border: 1px solid black;
  1861.     background: #a5afd6;
  1862.     display: block;
  1863.     left:10px;
  1864.     top:20px;
  1865. }
  1866. .divwin_custom
  1867. {
  1868.     width: 500px;
  1869.     background: #a5afd6;
  1870.     display: block;
  1871.     left:225px;
  1872.     top:8px;
  1873. }
  1874. .round_win
  1875. {
  1876.     border-radius:3px;
  1877.     padding:10px 5px 5px 5px;
  1878.     position: fixed;
  1879.     cursor:default;
  1880.     border: 2px solid #c3d0e9;
  1881.     z-index:100;
  1882.     font-size:14px;
  1883. }
  1884. .round
  1885. {
  1886.     border-radius:5px;
  1887.     -moz-border-radius:5px;
  1888. }
  1889. .auth_form
  1890. {
  1891.     background:white;
  1892.     font-size:11px;
  1893.     padding:5px;
  1894.     width:30%;
  1895. }
  1896. .auth_form_text input
  1897. {
  1898.     padding:5px;
  1899.     border-radius:3px;
  1900.     font-size:13px;
  1901.     width:90%;
  1902. }
  1903. .import_form
  1904. {
  1905. right:0px;
  1906. float:right;
  1907. top:10px;
  1908. position:absolute;
  1909. background:white;
  1910.     font-size:11px;
  1911.     padding:5px;
  1912.     width:30%;
  1913. }
  1914. .auth_field
  1915. {
  1916.     font-size:11px;
  1917.     clear:both;
  1918.     width:99%;
  1919. }
  1920. .but
  1921. {
  1922.     border: 1px solid Gray;
  1923.     background-color: #DCDCDC;
  1924.     padding: 1px 1px 1px 1px;
  1925.     margin:1px;
  1926.     font-size:12;
  1927.     width:150px;
  1928.     color:black;
  1929.     align:center;
  1930. }
  1931. .small_but
  1932. {
  1933.     background-color: white;
  1934.     padding:5px;
  1935.     width:130px;
  1936.     font-size:12px;
  1937.     color:black;
  1938.     margin:2px;
  1939.     text-overflow:ellipsis;
  1940.     overflow:hidden;
  1941.     clear:both;
  1942.     border:1px solid #dae1ed;
  1943.     border-radius:5px;
  1944.     cursor:pointer;
  1945.     color:#777;
  1946.     white-space: nowrap;
  1947.     background-image: linear-gradient(bottom, rgb(201,191,255) 44%, rgb(206,194,255) 72%, rgb(185,176,255) 0%);
  1948. background-image: -o-linear-gradient(bottom, rgb(201,191,255) 44%, rgb(206,194,255) 72%, rgb(185,176,255) 0%);
  1949. background-image: -moz-linear-gradient(bottom, rgb(201,191,255) 44%, rgb(206,194,255) 72%, rgb(185,176,255) 0%);
  1950. background-image: -webkit-linear-gradient(bottom, rgb(201,191,255) 44%, rgb(206,194,255) 72%, rgb(185,176,255) 0%);
  1951. background-image: -ms-linear-gradient(bottom, rgb(201,191,255) 44%, rgb(206,194,255) 72%, rgb(185,176,255) 0%);
  1952. background-image: -webkit-gradient(
  1953.     linear,
  1954.     left bottom,
  1955.     left top,
  1956.     color-stop(0.44, rgb(201,191,255)),
  1957.     color-stop(0.72, rgb(206,194,255)),
  1958.     color-stop(0, rgb(185,176,255))
  1959. );
  1960. }
  1961. .small_but_float
  1962. {
  1963.     background-color: white;
  1964.     width:50px;
  1965.     font-size:11px;
  1966.     color:black;
  1967.     border:1px dotted #dae1ed;
  1968. }
  1969. .small_but_m
  1970. {
  1971.     background-color: white;
  1972.     padding:3px;
  1973.     width:130px;
  1974.     font-size:11px;
  1975.     color:black;
  1976.     margin:2px;
  1977.     clear:both;
  1978.     border:none;
  1979. }
  1980. .small_but_float:hover
  1981. {
  1982.         background-color: #e9edf5;
  1983.      box-shadow:inset 0px 0px 4px 0px white;
  1984.     -webkit-box-shadow:inset 0px 0px 4px 0px white;
  1985.     -moz-box-shadow:inset 0px 0px 4px 0px white;
  1986. }
  1987. .small_but_m:hover
  1988. {
  1989.         background-color: #e9edf5;
  1990.      box-shadow:inset 0px 0px 4px 0px white;
  1991.     -webkit-box-shadow:inset 0px 0px 4px 0px white;
  1992.     -moz-box-shadow:inset 0px 0px 4px 0px white;
  1993. }
  1994. .small_but:hover
  1995. {
  1996.         background-color: #e9edf5;
  1997.      box-shadow:inset 0px 0px 2px 0px white;
  1998.     -webkit-box-shadow:inset 0px 0px 2px 0px white;
  1999.     -moz-box-shadow:inset 0px 0px 2px 0px white;
  2000.    background-image: linear-gradient(bottom, rgb(201,191,255) 0%, rgb(206,194,255) 84%, rgb(185,176,255) 45%);
  2001. background-image: -o-linear-gradient(bottom, rgb(201,191,255) 0%, rgb(206,194,255) 84%, rgb(185,176,255) 45%);
  2002. background-image: -moz-linear-gradient(bottom, rgb(201,191,255) 0%, rgb(206,194,255) 84%, rgb(185,176,255) 45%);
  2003. background-image: -webkit-linear-gradient(bottom, rgb(201,191,255) 0%, rgb(206,194,255) 84%, rgb(185,176,255) 45%);
  2004. background-image: -ms-linear-gradient(bottom, rgb(201,191,255) 0%, rgb(206,194,255) 84%, rgb(185,176,255) 45%);
  2005. background-image: -webkit-gradient(
  2006.     linear,
  2007.     left bottom,
  2008.     left top,
  2009.     color-stop(0, rgb(201,191,255)),
  2010.     color-stop(0.84, rgb(206,194,255)),
  2011.     color-stop(0.45, rgb(185,176,255))
  2012. );
  2013. }
  2014. .closeButton {
  2015.     position: absolute;
  2016.     top: 0px;
  2017.     right: 0px;
  2018.     font-weight: bold;
  2019.     cursor: pointer;
  2020.     z-index:250;
  2021.     background: white;
  2022.     padding: 2px 5px 2px 5px;
  2023.     border-radius:1px;
  2024.     margin:3px;
  2025. }
  2026. .sysbutton
  2027. {
  2028.     position: absolute;
  2029.     top: 2px;
  2030.     right: 2px;
  2031.     font-size:12;
  2032.     border: 1px solid gray;
  2033.     cursor: pointer;
  2034.     z-index:250;
  2035.     background: white;
  2036.     padding: 2px 4px 2px 4px;
  2037. }
  2038. .main_div
  2039. {
  2040.     width:25%;
  2041.    background-color:#FFE4B5;
  2042.    border:1px solid #ADC3D5;
  2043.    text-align:center;
  2044.    position:fixed;
  2045.    left:74%;
  2046.    top:45px;
  2047.    font-size:11;
  2048. }
  2049. .main_table
  2050. {
  2051.    width:50%;
  2052.    text-align:center;
  2053. }
  2054. .th_table
  2055. {
  2056.     border:1px solid #ADC3D5;
  2057.     text-align:right;
  2058.     font-size:11
  2059. }
  2060. .th_table2
  2061. {
  2062.     border:1px solid #ADC3D5;
  2063.     text-align:right;
  2064. }
  2065. table.menu
  2066. {
  2067.     background-color:white;
  2068.    width:110;
  2069.    height:40;
  2070.    padding:5px;
  2071. }
  2072. td.menu
  2073. {
  2074.    background-color:white;
  2075.    width:110;
  2076.    height:25;
  2077.    padding:2px;
  2078.    z-index:7000;
  2079. }
  2080. .point_menu
  2081. {
  2082.    background-position:left;
  2083.    font-size:12px;
  2084.    background-repeat: no-repeat;
  2085.    padding:5px 10px 5px 20px;
  2086.    text-decoration: none;
  2087.    color:black;
  2088.    position:relative;
  2089. }
  2090. td.menu:hover
  2091. {
  2092.         background-color: #f1f4f9;
  2093.      box-shadow:inset 0px 0px 4px 0px white;
  2094.     -webkit-box-shadow:inset 0px 0px 4px 0px white;
  2095.     -moz-box-shadow:inset 0px 0px 4px 0px white;
  2096. }
  2097. a.menu
  2098. {
  2099.    background-image: url(/bitrix/images/fileman/view.gif);
  2100. }
  2101. a.menu2
  2102. {
  2103.    background-image: url(/bitrix/images/fileman/edit_text.gif);
  2104. }
  2105. a.menu_del
  2106. {
  2107.    background-image: url(/bitrix/images/fileman/htmledit2/c2del.gif);
  2108. }
  2109. a.menu_unzip
  2110. {
  2111.     background-image: url(/bitrix/images/fileman/htmledit2/redo.gif);
  2112. }
  2113. a.menu_dw
  2114. {
  2115.    background-image: url(/bitrix/images/fileman/types/file.gif);
  2116. }
  2117. .delete_but
  2118. {
  2119.    background-image: url(http://icons.iconarchive.com/icons/yusuke-kamiyamane/fugue/16/cross-icon.png);
  2120.     background-repeat:no-repeat;
  2121.     padding-left:10px;
  2122.     border:none;
  2123.     background-color:white;
  2124. }
  2125.  .refresh_but
  2126. {
  2127.    background-image: url(http://icons.iconarchive.com/icons/kyo-tux/aeon/16/Sign-Refresh-icon.png);
  2128.     background-repeat:no-repeat;
  2129.     padding-left:10px;
  2130.     border:none;
  2131.     background-color:white;
  2132. }
  2133. .light:hover
  2134. {
  2135.     cursor:pointer;
  2136.     background-color: #f1f4f9;
  2137.      box-shadow:inset 0px 0px 4px 0px white;
  2138.     -webkit-box-shadow:inset 0px 0px 4px 0px white;
  2139.     -moz-box-shadow:inset 0px 0px 4px 0px white;
  2140. }
  2141.    A {
  2142.    text-decoration: none;
  2143.    color:#36648B;
  2144.    }
  2145. .main_div
  2146. {
  2147.     border-bottom-left-radius:5px;
  2148.     border-bottom-right-radius:5px;
  2149.     border-top-right-radius:5px;
  2150.     -moz-border-bottom-left-radius:5px;
  2151.     -moz-border-bottom-right-radius:5px;
  2152.     -moz-border-top-right-radius:5px;
  2153.     border: 1px solid #E7ECF5;
  2154.     padding:10px;
  2155.     margin-left:2px;
  2156.     z-index:2000;
  2157.     width:70%;
  2158.     font-size:12px;
  2159.     background: #E7ECF5;
  2160. }
  2161. .authdiv
  2162. {
  2163.     border: 1px solid #E7ECF5;
  2164.     background:white;
  2165.     padding:10px;
  2166.     margin-bottom:10px;
  2167.     font-size:12px;
  2168.     width:80%;
  2169.     background: #E7ECF5;
  2170. }
  2171. .round
  2172. {
  2173.     border-bottom-left-radius:5px;
  2174.     border-bottom-right-radius:5px;
  2175.     border-top-right-radius:5px;
  2176.     border-top-left-radius:5px;
  2177.     -moz-border-bottom-left-radius:5px;
  2178.     -moz-border-bottom-right-radius:5px;
  2179.     -moz-border-top-right-radius:5px;
  2180. }
  2181. .list
  2182. {
  2183.     border-radius:5px;
  2184.     -moz-border-radius:5px;
  2185.     border: 1px solid white;
  2186.     background:white;
  2187.     padding:10px;
  2188.     font-size:12px;
  2189.     background:white;
  2190. }
  2191. .check_point_list
  2192. {
  2193.     border-bottom: 1px solid #E7ECF5;
  2194.     width:100%;
  2195.     font-weight:bold;
  2196. }
  2197. </style>
  2198. <script>
  2199. var dragObjects=new Array('log3','list','load','param','main_info','test_window','1cbitrix');
  2200. <?=$win;?>
  2201. </script>
  2202. </head>
  2203. <body class="body" style='overflow:hidden;' onmousedown="Hide(event)" onkeydown="ShowFileMan(event)">
  2204. <div id="custom_windows">
  2205.  
  2206. <?
  2207. ob_start();
  2208. ?>
  2209. <table class="file_panel" width=100%>
  2210. <tr>
  2211. <td class="auth_form_text">
  2212. <input id=search_str placeholder="ôèëüòð" style='width:90%;margin-bottom:2px;'  name='search_str' OnChange=GetFileList('path_fileman','testfileman') value='<?if(isset($_SESSION['bx_1c_import']['filter'])) echo $_SESSION['bx_1c_import']['filter'].'\'>'; else echo '\'>'?><br>
  2213. <input placeholder="ïóòü"  onmousedown="moveState = false;" onmousemove="moveState = false;" OnChange="GetFileList('path_fileman','testfileman');" id="path_fileman" style="width:90%;" name="path_fileman" value='<?if(isset($_SESSION['bx_1c_import']['path'])) echo $_SESSION['bx_1c_import']['path']; else echo $UPLOAD_DIR.'/1c_catalog/';?>'>
  2214. </td>
  2215. </tr>
  2216. <tr><td colspan=2 align=left>
  2217. <?=AddButton('go');?>
  2218. </td></tr>
  2219. </td></tr>
  2220. </table>
  2221. <?
  2222. $beforeInner=ob_get_contents();
  2223. ob_end_clean();
  2224. $afterinner='<hr><div id="info">----</div>';
  2225.  
  2226. $inner='<table cellspacing="0" cellpadding="0" style="width:100%;font-size:10px;"><tr><td>
  2227. <div id="testfileman" class="file_panel">çàãðóçêà...</disv></td>
  2228. <td class="file_panel" valign=top width=100>
  2229. <input type=checkbox id=isdir>ïàïêó<br>
  2230. <input  id=cfilename style="font-size:11px; onmousedown="moveState = false;" onmousemove="moveState = false;" value=\'bx_test.php\'>'.AddButton('crfile',false,true).'<hr>'.AddButton('upfile',false,true).'</td>
  2231. </tr>
  2232. </table>';
  2233. AddWindow("test_window","Ôàéëîâàÿ ñòðóêòóðà",'testsfileman',$inner,false,"",false,$beforeInner,$afterinner);
  2234. AddWindow("upload_file","Çàãðóçêà ôàéëà ôàéë",'upload_file_id','<iframe id="file_panel"  height=150 src="'.$script_name.'?upload=Y"></iframe>',$DefaultWinStyleSmall);
  2235. ?>
  2236. </div>
  2237. <div id='ind_'style="width:300px;display:none;left:360px;padding:1px;z-index:10000;position:absolute;background-color:#EEE8CD;border:1px solid grey;height:30px;cursor:move;">
  2238. <div>Ïðîãðåññ âûïîëíåíèÿ øàãà èìïîðòà...</div>
  2239. <div id='indicate' style="width:0;background-color:green;border:none;z-index:1;height:10;text-align:center;"></div>
  2240. </div><br>
  2241. <div id="main_info" class="divwin_info round_win">
  2242. <b>Ïîèñê ïî XML_ID</b><hr>
  2243. <div class="closeButton" onclick="Close('main_info')">X</div>
  2244. <table>
  2245. <tr>
  2246.     <td valign="top">
  2247.         <table style='width:310px;font-size:11px;border:1px solid #ADC3D5;background-color:white;'>
  2248.                             <tr>
  2249.                         <td align="left">
  2250. Èíôîáëîê<br>
  2251. <input style="font-size:11px" size=40 id="q_iblock" type="text" name="search_iblock" value="XML_ID">
  2252. <?AddButton('searchbutton_iblock');?>
  2253.                         </td>
  2254.                     </tr>
  2255.                     <tr>
  2256.                         <td align="left">
  2257. Ýëåìåíò<br>
  2258.                                         <input style="font-size:11px" size=40 id="q" type="text" name="search" value="XML_ID">
  2259.                                         <?AddButton('searchbutton');?>
  2260.                         </td>
  2261.                     </tr>
  2262.                     <tr>
  2263.                         <td align="left">
  2264.                             <div id="result" style="border:1px dashed #ADC3D5;background:white;padding:5px;font-size:12px;font-family:Arial;"></div>
  2265.                         </td>
  2266.                     </tr>
  2267.                 </table>
  2268.     </td>
  2269.                         </tr>
  2270. </table>
  2271. </div>
  2272. <div class="divwin round_win" id="log3">
  2273. <b>Ëîã èìïîðòà ôàéëà</b>
  2274. <hr>
  2275. <div class="closeButton" onclick="winClose()">Õ</div>
  2276. <div id="log" style='font-size:10px;padding:3px;background: white;overflow-y:scroll;height:300px'></div>
  2277. <div id="timer" style='font-size:12px;padding:5px;background: white;'></div>
  2278. </div>
  2279. <div id="param" class="divwin_param round_win" onselectstart="return false" >
  2280. <div class="closeButton" onclick="Close('param')">X</div>
  2281. <b>Ïðîâåðêà âûãðóçêè çàêàçîâ</b><hr>
  2282. <div style="background-color:white;border-top:1px solid #ADC3D5;font-size:11px;padding:5px;">
  2283. <table align="center" width="100%">
  2284. <tr><td COLSPAN=2>
  2285. <b>Íàñòðîéêè âûãðóçêè</b>
  2286.     <hr>
  2287. <input id="PAYED" type="checkbox" <?if(isset($_POST['PAYED'])) echo "checked";?> value='Y' name="PAYED"> Îïëà÷åííûå|<input onmousedown="moveState = false;" onmousemove="moveState = false;" id="DELIVERY" type="checkbox" <?if (isset($_POST['ALLOW_DELIVERY'])) echo "checked";?> value='Y' name="ALLOW_DELIVERY">Äîñòàâëåííûå
  2288. </td></tr>
  2289. <tr>
  2290. <td class="auth_form_text">
  2291. Ïóòü:<br>
  2292. <input id="path"
  2293. type="text" size="40" value="<?=$catalog_import_path;?>" name="path"></td>
  2294. </tr>
  2295. <tr><td COLSPAN=2 align="center">
  2296. <input type="button" class="small_but" OnClick="GetOrders()" value="Ïðîâåðèòü"></td></tr>
  2297.     <tr>
  2298.     <td COLSPAN=2 class="auth_form_text">
  2299.     <hr>
  2300.     <b>Äàòà ïîñëåäíåãî îáìåíà</b>
  2301.     <hr>
  2302.     <input id="date_e" placeholder = "äàòà ïîëåäíåãî îáìåíà â ôîðìàòå ñàéòà" type="text" size="40" value="<?=ConvertTimeStamp(COption::GetOptionString("sale", "last_export_time_committed_".substr($catalog_import_path, 0, 22), ""), "FULL");?>" name="date_e"></td>
  2303.     </tr>
  2304.     <tr><td COLSPAN=2 align="center"><?=AddButton('change1',false,true)?></td></tr>
  2305. </table>
  2306. </div>
  2307. <div id="list">
  2308. </div>
  2309. </div>
  2310.         <div id='para1' style='height:80%;top:5px;left:10px;postition:fixed;'>
  2311.         <table cellspacing='0' cellpadding='0' width='100%' height='100%' >
  2312.         <tr>
  2313.             <td id='tab_zone' valign=top height='25px'>
  2314.             </td>
  2315.             <td>
  2316.             <?//=AddButton('test_123',false,true);?>
  2317.             </td>
  2318.         </tr>
  2319.         <tr>
  2320.             <td id='field_zone' valign=top >
  2321.             </td>
  2322.                         <td width='26%' align=left valign=top>
  2323.                         <div id='main_menu_panel' class='left_panel'>
  2324. <div align="right">
  2325. <?
  2326. AddButton('refresh');
  2327. AddButton('delete');
  2328. ?>
  2329. </div>
  2330. <?
  2331. echo '<hr><div  style="padding:4px;text-align:center;background:#d8dcf0;width:124px;">Îñíîâíîå ìåíþ</div>';
  2332. foreach($MenuArray as $key=>$value)
  2333. AddButton($key,true);
  2334. ?>
  2335. <hr>
  2336. <div style="padding:4px;text-align:center;background:#d8dcf0">Çàêàçû</div>
  2337. <div class="small_but" align=center OnClick="SaveMe('<?=$host;?>')"> XML-ôàéë çàêàçîâ</div>
  2338.    <div class="small_but" align=center onclick="javascript:_BlankXML('<?='view-source:'.$host.'?mode=query'?>')" OnMouseOver="LightOn(this,'áóäåò îòêðûòî <b>îòäåëüíîå</b> îêíî ñ òåêñòîì xml-ôàéëà çàêàçîâ, êîòîðûå îòäàñò ñàéò 1ñ-êå ïðè ñëåäóþùåì îáìåíå çàêàçàèì ñ 1Ñ')" OnMouseOut="LightOff()">XML â îòäåëüíîì îêíå</div>
  2339. </div>
  2340. <br clear="both" />
  2341. <br>
  2342. <?if (file_exists($_SERVER["DOCUMENT_ROOT"]."/import_element_log.txt")) $display='block';
  2343. else $display='none';?>
  2344. <div id="element_log" class='left_panel' style="display:<?=$display?>"><a href='javascript:ShowFile("import_element_log.txt","/","N")'>ïîñìîòðåòü ëîã</a><span onclick='javascript:Delete("import_element_log.txt","","/");this.parentNode.style.display="none";'> X</span></div>
  2345.             </td>
  2346. </tr>
  2347.     <tr>
  2348.             <td>
  2349.         <div class='ver'><?echo '1C Diag ver. '.ver;?></div>
  2350.             </td>
  2351.         </tr>
  2352.         </table>
  2353.         </div>
  2354. <table id="tbl" cellpadding=4 cellspacing=0 style="position:relative;width:70%;z-index:1;left:350;text-align:left;font-size:10pt;">
  2355.         <tr><td style='padding-top:45px;text-align:right;'>
  2356.         </td>
  2357.         <td style='width:100%;'>
  2358.         </td></tr>
  2359. </table>
  2360. <div id="load" align="right" style='border:1px solid black;width:200px;z-index:10000;font-size:15px;position:fixed;top:85%;background-color:white;display:none;'>
  2361. Çàãðóçêà...
  2362. </div>
  2363. <div id="menu_1" style="z-index:7000;display:none;border:1px solid #B0C4DE">
  2364. <?BuildContextMenu();?>
  2365. </div>
  2366. <div id="menu_2" style="z-index:7000;display:none;background:white;border:1px solid #B0C4DE;">
  2367.     <button class = "small_but_m" OnClick="GetXmlInfo();" style="border:1px solid #B0C4DE" id='checkiblock' >Êóäà âûãðóæàåòñÿ?</button><br>
  2368.     <div style="text-align:center;background:black;color:white;padding:2px;">Øàã èìïîðòà</div>
  2369.     <button class="small_but_m" OnClick="StartStep(0)">Óäàëåíèå òàáëèöû</button><br>
  2370.     <button class="small_but_m" OnClick="StartStep(1)">Ñîçäàíèå òàáëèöû</button><br>
  2371.     <button class="small_but_m" OnClick="StartStep(2)">Èìïîðò âòàáëèöó</button><br>
  2372.     <button class="small_but_m" OnClick="StartStep(3)">Ñîçäàíèå èíäåêñà</button><br>
  2373.     <button class="small_but_m" OnClick="StartStep(4)">Èìïîðò ìåòàäàííûõ</button><br>
  2374.     <button class="small_but_m" OnClick="StartStep(5)">Èìïîðò ñåêöèé</button><br>
  2375.     <button class="small_but_m" OnClick="StartStep(6)">Óäàëåíèå ñåêöèé</button><br>
  2376.     <button class="small_but_m" OnClick="StartStep(7)">Îáðàáîòêà ýëåìåíòîâ</button><br>
  2377.     <button class="small_but_m" OnClick="StartStep(8)">Óäàëåíèå ýëåìåíòîâ</button><br>
  2378. </div>
  2379. <div style="width:100%" id="webdav">
  2380. <table height="50%";>
  2381. <tr>
  2382.     <td colspan=2>
  2383.     <div class="authdiv round">
  2384.                 <span class="auth_form_text" >
  2385.                 <input style="width:60%;" id="server_" placeholder="<?=$mess['SERVER']?>" name="server" size="30" value="<?=$_COOKIE['DV_SERVER']?>">
  2386.                 </span>
  2387.                 <input class="small_but" style="right:2px" type=button onclick="document.getElementById('action_').value='PROPFIND';document.getElementById('current_path_').value=document.getElementById('server_').value;dav_request()" name="post" value="îáçîð">
  2388.                 <input class="small_but" type=button onclick="Start_Dav();" value="<?=$mess['START_TEST'];?>">
  2389.      </div>
  2390.      </td>
  2391. </tr>
  2392. <tr>
  2393.     <td colspan=2>
  2394.                 <div id='dav_tab_zone' style="height:30px">
  2395.                 </div>
  2396.      </td>
  2397. </tr>
  2398. <tr>
  2399.     <td valign="top">
  2400.             <div id="dav_field_zone">
  2401.             </div>
  2402.     </td>
  2403.     <td valign="top">
  2404.          <div class="authdiv round auth_form_text" id="log_win" class="divwin_info" style="float:right;">
  2405.                 <input placeholder="<?=$mess['LOGIN']?>" id="login_" name="login" size=20 value="<?=$_COOKIE['DV_USER']?>"><br/>
  2406.                 <input id="pass_" placeholder="<?=$mess['PASS']?>" name="pass" size=20 type="password" value="<?=$_COOKIE['DV_PASS']?>">
  2407.                 <input type='hidden' id="current_path_" name="current_path" size=50 value="<?=$_COOKIE['DV_SERVER']?>">
  2408.                 <input type='hidden' id="action_" name="action" size=50 value="PROPFIND">
  2409.     </div>
  2410.     </td>
  2411. </tr>
  2412. </div>
  2413. <table id='ext_import' width='100%' height="99%">
  2414.     <tr>
  2415.         <td valign="top" id="ext_log" style="position:relative;background:white;width:50%;padding:5px">
  2416.         </td>
  2417.         <td class="auth_form" valign="top">
  2418.         <h3  style="padding:4px;text-align:center;background:#d8dcf0">Äàííûå äëÿ àâòîðèçàöèè</h3>
  2419.         <div class = "auth_form_text">
  2420.                 Ïóòü<br/>
  2421.                 <input class="auth_field" id="ext_path" name="current_path" placeholder="http://mysite/bitrix/admin/1c_exchange.php" value=""><br/>
  2422.                 Èìÿ ôàéëà<br/>
  2423.                 <input  class="auth_field"id="ext_filename"  name="ext_filename" placeholder="import.xml"><br/>
  2424.                 Ëîãèí<br/>
  2425.                 <input class="auth_field" id="login" name="login" placeholder="admin"><br/>
  2426.                 <input id="phpsessid" type="hidden" value="">
  2427.                 Ïàðîëü<br/>
  2428.                 <input class="auth_field" id="pass" name="pass" type="password" value="123456"><br/>
  2429.         </div>
  2430.                 <input class='small_but' type='button' name="start_ext_import" value="íà÷àòü" onclick="ext_start()"><hr/><h3  style="padding:4px;text-align:center;background:#d8dcf0">Çàãîëîâêè îòâåòà</h3>
  2431.             <div id="ext_headers_log" style="height:40%;overflow:auto;padding:3px;">
  2432.             </div>
  2433.         </td>
  2434.     </tr>
  2435. </table>
  2436. <?
  2437.     $inner ="<div class='import_form round' id='ipfs' style='padding:5px'>";
  2438.     $inner.="<div>
  2439.     <table width='100%'>
  2440.     <tr><td colspan=2>
  2441.     Ðåæèì äèàãíîñòèêè
  2442.     <hr>
  2443.     </td></tr>
  2444.     <tr>
  2445.     <td width='15px'>
  2446.     <input title='Èìïîðò îñóùåñòâëÿåòñÿ ñòàíäàðòíûì êîìïîíåíòîì + âñå èçìåíåíèÿ è äîáàâëåíèÿ òîâàðîâ ïèøóòñÿ â ëîã' type='checkbox' id='impself'></td><td align='left' width='100%'><label for='impself'>Èìïîðòèðîâàòü ýòèì ñêðèïòîì</label></td>
  2447.     </tr>
  2448.     <tr>
  2449.     <td width='15px'>
  2450.     <input type='checkbox' OnChange='CheckSkipMode(this)' title='Îòëàäî÷íûé ðåæèì. Íåíóæíûå ýëåìåíòû ïðè èìïîðòå áóäóò ïðîïóñêàòüñÿ. ' id='skipmode' name='skipmode'></td><td align='left' width='100%'><label for='skipmode' >SkipMode</label>
  2451.     </td>
  2452.     </tr>
  2453.     <tr>
  2454.     <td colspan=3 >
  2455.     <div id='xml_id_stop' class='auth_form_text' style='display:none;'>
  2456.       Âíåøíèé êîä ýëåìåíòà:<br>
  2457.       <input  OnChange='SetSessionParam(\"xml_id\",this.value)' size='60' value='".$_SESSION['bx_1c_import']['xml_id']."' id='external_id'><br>
  2458.       Èìÿ ýëåìåíòà:<br>
  2459.       <input  OnChange='SetSessionParam(\"element_name\",this.value)' size='60' value='".$_SESSION['bx_1c_import']['element_name']."' id='external_id'>
  2460.     </div>
  2461.     </td>
  2462.     </tr>
  2463.     </div>
  2464.     </table>
  2465.     <hr>";
  2466.     $inner.='<a href="javascript:OpenWin(\'/bitrix/admin/1c_admin.php?lang=ru\')">Íàñòðîéêè èíòåãðàöèè</a><hr>';
  2467.  
  2468.     ob_start();
  2469.     ShowFileSelect('cat_file','Ôàéë êàòàëîãà â '.$UPLOAD_DIR.'/1c_catalog/:',$UPLOAD_DIR.'/1c_catalog/','xml',2,'ConfirmImport(\'catalog\')');
  2470.     //ShowFileSelect('off_file','Ôàéë ïðåäëîæåíèé â /upload/1c_catalog/:','/upload/1c_catalog/','xml',2,'start(\'offers.xml\')');
  2471.     ShowFileSelect('order_file','Ôàéë çàêàçîâ â '.$UPLOAD_DIR.'/1c_exchange/:',$UPLOAD_DIR.'/1c_exchange/','xml',2,'OrderImport(\'hz\')');
  2472.     ShowFileSelect('worker','Ôàéë ñîòðóäíèêîâ â '.$UPLOAD_DIR.'/1c_intranet/:',$UPLOAD_DIR.'/1c_intranet/','xml',2,'ConfirmImport(\'users\')');
  2473.  
  2474.     $inner.=ob_get_contents();
  2475.      ob_end_clean();
  2476.  
  2477.      $inner.="</div>";
  2478.      echo $inner;
  2479. ?>
  2480. <img id='1cbitrix' style="opacity:0.2;position:fixed;right:0px;bottom:0px;" src="https://1c.1c-bitrix.ru/bitrix/templates/1c.1c-bitrix.ru/images/1c-bitrix-logo.gif">
  2481. </body>
  2482.  
  2483.  
  2484. </html>
  2485.  
  2486. <script>
  2487. var steps= new Array('CHECK_METHOD','CREATE_FILE','PROPPATCH_FILE','COPY_FILE','DELETE_FILE','CREATE_FOLDER','COPY_FOLDER','DELETE_FOLDER');
  2488. var isfile=false;
  2489. var step_count=steps.length;
  2490. var step_no=0;
  2491. var i,status,des,a
  2492. var log=BX("log");
  2493. var fileinfo=BX("info");
  2494. var result=BX("result");
  2495. var timer=BX("timer");
  2496. var load=BX("load");
  2497. var zup_import=false;
  2498. var text_mess=BX('text_mess');
  2499. var mess_decorate=BX('mess_decorate');
  2500. var load=BX("load");
  2501. globalpath='<?=$_SESSION['bx_1c_import']['path']?>';
  2502. var ImportStep=0;
  2503. var mywindows=new Array("log3","main","list","main_info","bx_main_menu","stepdiag","param");
  2504. if (!new_id)
  2505. var new_id=new Array();
  2506. var moveState = false;
  2507. var x0, y0;
  2508. var divX0, divY0;
  2509. var lastwin="main_info";
  2510. var i=1;
  2511. var status="continue";
  2512. var menu=BX("menu_1");
  2513. var menu2=BX("menu_2");
  2514. var NewFieldID=1;
  2515. var numfile=0;
  2516. var filecount=0;
  2517. var circule=false;
  2518. function CreateFileDialog(Name,where)
  2519. {
  2520.     var where='testfileman';
  2521.     var newP=document.createElement('input');
  2522.     //var newP=document.createElement('div');
  2523.     var newField=document.createElement('div');
  2524.     var FieldID=NewFieldID+'_field';
  2525.     var TabID=NewFieldID+'_tab';
  2526.         NewFieldID++;
  2527.         //alert(TabID);
  2528.         //ñîçäà¸ì ïîëå äëÿ òàáà
  2529.         newField.style.width='350px';
  2530.         newField.style.height='80px';
  2531.         newField.style.padding='5px';
  2532.         newField.style.background = '#FFF8DC';
  2533.         newField.style.position='absolute';
  2534.         newField.style.top='250px';
  2535.         newField.style.left='130px';
  2536.         newField.style.display='block';
  2537.         newField.style.border='1px solid #00C5CD';
  2538.         newField.style.zIndex='99';
  2539.         newField.innerHTML='<input type=checkbox id=isdir>Ñîçäà¸ì ïàïêó, à íå ôàéë<br><br>';
  2540.         newField.innerHTML+='Èìÿ ôàéëà/ïàïêè:<br>'+'<input id=cfilename value=\'bx_test.php\'size=40><input type=button value=\'ñîçäàòü\' onclick=CreateFile(\'cfilename\',\'path_fileman\',\'testfileman\')>';
  2541.         BX(where).appendChild(newField);
  2542.         return newField.id;
  2543. }
  2544. function CreateIBlock()
  2545. {
  2546.     var iblock1c=BX('1ciblock');
  2547.     var iblocktype=BX('iblocktype');
  2548.     q="<?=$script_name?>?action=createiblocktype&iblocktype="+iblocktype.value;
  2549.     if (iblock1c.value=='on')
  2550.     q=q+'&USE_IBLOCK_TYPE=Y';
  2551.     AjaxRequest(q,'successiblock',false);
  2552. }
  2553. function AddWindowRequest(url,id,windowid)
  2554. {
  2555.     if ((("#" + mywindows.join("#,#") + "#").search("#"+windowid+"#") != -1)||(("#" + new_id.join("#,#") + "#").search("#"+windowid+"#") != -1))
  2556.     {
  2557.         BX(windowid).style.display="block";
  2558.     }
  2559.     else
  2560.     {
  2561.         AjaxRequest(url,id,true);
  2562.         new_id[new_id.length]=windowid;
  2563.         dragObjects[dragObjects.length]=windowid;
  2564.     }
  2565. }
  2566. function AjaxRequest(url,id,AddResult)
  2567. {
  2568.     var ajaxreq=createHttpRequest();
  2569.     load.style.display="block";
  2570.     load.innerHTML=' <img align="center" src="http://vkontakte.ru/images/upload.gif" width="50"/> çàãðóçêà...';
  2571.     var callback=function(ajaxreq)
  2572.     {
  2573.         if (ajaxreq.readyState == 4)
  2574.         {
  2575.             if (AddResult==false)
  2576.             {
  2577.                 BX(id).innerHTML=ajaxreq.responseText;
  2578.             }
  2579.             else
  2580.             {
  2581.                 BX(id).innerHTML+=ajaxreq.responseText;
  2582.             }
  2583.         }
  2584.         InitMoveableObjects();
  2585.     }
  2586.     AjaxGet(url,callback)
  2587. }
  2588. function Download(file,path)
  2589. {
  2590.     JustHide();
  2591.     BX("dwframe").src="<?=$script_name?>?action=download&file="+file+"&path="+path;
  2592. }
  2593. // ñîçäàíèå îáúåêòà XMLHttpRequest
  2594. function createHttpRequest()
  2595.    {
  2596.     var httpRequest;
  2597.         if (window.XMLHttpRequest)
  2598.         httpRequest = new XMLHttpRequest();
  2599.         else if (window.ActiveXObject) {
  2600.         try {
  2601.         httpRequest = new ActiveXObject('Msxml2.XMLHTTP');
  2602.         } catch (e){}
  2603.         try {
  2604.         httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
  2605.         } catch (e){}
  2606.         }
  2607.     return httpRequest;
  2608. }
  2609.     var edit=BX('e');
  2610.     //var   editutf=BX('eutf');
  2611.     var view=BX('v');
  2612.     var viewutf=BX('vu');
  2613.     var del=BX('d');
  2614.     var unzip=BX('u');
  2615.     var down=BX('dw');
  2616. // ïîêàçûâàåì íåäîìåíþ
  2617. function ShowMenu(event)
  2618. {
  2619.     <?=$mainmenu;?>
  2620.     var evt=fixEvent(event);
  2621.     var ext;
  2622.     ext=evt.target.textContent.substr(evt.target.textContent.length-4,evt.target.textContent.length);
  2623.     menu.style.display="block";
  2624.     menu.style.zIndex=10000;
  2625.     menu.style.top=evt.clientY+'px';
  2626.     menu.style.left=evt.clientX+'px';
  2627.     menu.style.position="absolute";
  2628.     view.href=evt.target.href;
  2629.     viewutf.href="javascript:ShowFile('"+evt.target.textContent+"','"+globalpath+"','Y')";
  2630.     //editutf.href="javascript:Showforedit('"+evt.target.textContent+"','"+globalpath+"','Y')";
  2631.     edit.href="javascript:Showforedit('"+evt.target.textContent+"','"+globalpath+"','N')";
  2632.     del.href="javascript:Delete('"+evt.target.textContent +"','"+evt.target.parentNode.parentNode.parentNode.parentNode.parentNode.id+"')";
  2633.     down.href="javascript:Download('"+evt.target.textContent+"','"+globalpath+"')";
  2634.     if(ext=='.zip')
  2635.     {
  2636.         BX("unzip_").style.display='block';
  2637.         unzip.href="javascript:UnZip('"+evt.target.textContent+"','"+evt.target.parentNode.parentNode.parentNode.parentNode.parentNode.id+"')";
  2638.     } else BX("unzip_").style.display='none';
  2639.        return false;
  2640. }
  2641. function ShowMenuExp(event)
  2642. {
  2643.     var evt=fixEvent(event);
  2644.     var ext;
  2645.     menu2.style.display="block";
  2646.     menu2.style.zIndex=10000;
  2647.     menu2.style.top=evt.clientY+'px';
  2648.     menu2.style.left=evt.clientX+'px';
  2649.     menu2.style.position="absolute";
  2650.     menu2.style.top=evt.clientY+'px';
  2651.     menu2.style.left=evt.clientX+'px';
  2652.        return false;
  2653. }
  2654. //ôóíêöèÿ çàïóñêàåò ïðîöåññ èìïîðòà
  2655. function CStart()
  2656. {
  2657.     var path;
  2658.     var filecount=BX('cat_file').options.length;
  2659.     if (filecount>1)
  2660.             circule=true;
  2661.         numfile=1;
  2662.     CatalogImport();
  2663. }
  2664. function CatalogImport()
  2665. {
  2666.     var file=BX('cat_file').options[BX('cat_file').selectedIndex].innerHTML;
  2667.     if(!file)
  2668.         alert('Íå óêàçàí ôàéë!');
  2669.     path='<?=$script_name?>';
  2670.     if(BX('impself').checked==false)
  2671.         path='<?=$catalog_import_path?>';
  2672.     url=path+"?type=catalog&mode=import&filename="+file;
  2673.     if (!BX('log2'))
  2674.     {
  2675.         var log2=document.createElement('DIV');
  2676.         log2.id='log2';
  2677.         log2.style.fontSize='15px';
  2678.         log2.style.padding='3px';
  2679.         log2.style.background='white';
  2680.         log2.style.height='95%';
  2681.         log2.style.overflowY='scroll';
  2682.         log2.style.float='left';
  2683.         BX("tab1_field").appendChild(log2);
  2684.     }
  2685.     log=BX("log2");
  2686.     log.innerHTML="<b>Èìïîðò "+file+"</b><hr>";
  2687.     load.innerHTML='èä¸ò çàãðóçêà...<img align="center" src="http://gifanimation.ru/images/ludi/17_3.gif" width="30"/>';
  2688.     query_1c(url);
  2689. }
  2690. function UserImport()
  2691. {
  2692.     var file=BX('worker').options[BX('worker').selectedIndex].innerHTML;
  2693.     if(!file)
  2694.         alert('Íå óêàçàí ôàéë!');
  2695.     else
  2696.     {
  2697.         if (!BX('log2'))
  2698.         {
  2699.             var log2=document.createElement('DIV');
  2700.             log2.id='log2';
  2701.             log2.style.fontSize='15px';
  2702.             log2.style.padding='3px';
  2703.             log2.style.background='white';
  2704.             log2.style.height='95%';
  2705.             log2.style.overflowY='scroll';
  2706.             log2.style.float='left';
  2707.             BX("tab1_field").appendChild(log2);
  2708.         }
  2709.         log=BX("log2");
  2710.         log.innerHTML="<b>Èìïîðò "+file+"</b><hr>";
  2711.         load.innerHTML='èä¸ò çàãðóçêà...<img align="center" src="http://gifanimation.ru/images/ludi/17_3.gif" width="30"/>';
  2712.             path='<?=$user_import_path;?>';
  2713.             url=path+"?type=catalog&mode=import&filename="+file;
  2714.             query_1c(url);
  2715.     }
  2716. }
  2717. function AjaxPost(url,data,callback)
  2718. {
  2719.     var obj=createHttpRequest();
  2720.     load.style.display="block";
  2721.     obj.open("POST", url, true);
  2722.     obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  2723.     obj.onreadystatechange=function() {callback(obj);};
  2724.     obj.send(data);
  2725. }
  2726. function AjaxGet(url,callback)
  2727. {
  2728.     var obj=createHttpRequest();
  2729.     load.style.display="block";
  2730.     load.style.innerHTML='<img align="center" src="http://vkontakte.ru/images/upload.gif" width="50"/>';
  2731.     obj.open("GET", url, true);
  2732.     obj.onreadystatechange=function()
  2733.     {
  2734.         callback(obj);
  2735.         if (obj.readyState == 4)
  2736.             load.style.display="none";
  2737.     };
  2738.     obj.send(null);
  2739. }
  2740. function ext_start()
  2741. {
  2742.     load.innerHTML='Òèõî, èä¸ò èìïîðò... <img align="center" src="http://gifanimation.ru/images/ludi/17_3.gif" width="30"/>';
  2743.     var login=BX('login').value;
  2744.     var filename=BX('ext_filename').value;
  2745.     var pass=BX('pass').value;
  2746.     var url=BX('ext_path').value;
  2747.     var phpsessid=BX('phpsessid').value;
  2748.     urldata='{"login":'+login+',"filename":'+filename+',"pass":'+pass+',"url":'+url+',"phpsessid":'+phpsessid+'}';
  2749.     AjaxPost("<?=$script_name?>","data="+urldata+"&mode=exchange",ExtImportCallBack);
  2750. }
  2751. function ExtImportCallBack(ajaxreq)
  2752. {
  2753.     if (ajaxreq.readyState == 4)
  2754.     {
  2755.         load.style.display="none";
  2756.         try
  2757.         {
  2758.             json_data=eval("(" +ajaxreq.responseText+")");
  2759.             if (json_data.phpsessid && json_data.status=='success')
  2760.             {
  2761.                 BX('phpsessid').value=json_data.phpsessid;
  2762.                 ext_start();
  2763.             }
  2764.             else
  2765.             {
  2766.                 BX('ext_log').innerHTML+=json_data.text+'<br>';
  2767.                 if (json_data.status && json_data.status=='progress')
  2768.                     ext_start();
  2769.                 else
  2770.                 {
  2771.                     bxtabs.AlertActiveTab('tab1');
  2772.                 }
  2773.             }
  2774.             BX('ext_headers_log').innerHTML+=json_data.headers+'<hr>';
  2775.         }
  2776.         catch(err)
  2777.         {
  2778.             bxtabs.AlertActiveTab('tab3');
  2779.             load.style.display="none";
  2780.             BX('ext_log').innerHTML+="Îøèáî÷íûé îòâåò ñåðâåðà:<br>"+ajaxreq.responseText+"<br>";
  2781.         }
  2782.     }
  2783. }
  2784. //ôóíêöèÿ îñóùåòñâëÿåò èìïîðò èç ôàéëà
  2785. function query_1c(url)
  2786.         {
  2787.         sInd=0;
  2788.         BX('indicate').style.width=0;
  2789.         var import_1c=createHttpRequest();
  2790.         var getstep=createHttpRequest();
  2791.         gs="<?=$script_name?>?action=getstep";
  2792.         getstep.open('GET',gs,true);
  2793.         getstep.onreadystatechange = function()
  2794.             {
  2795.                 if (getstep.readyState == 4)
  2796.                 {
  2797.                     ImportStep=getstep.responseText;
  2798.                     r=url+"&step="+ImportStep;
  2799.                 //alert(r);
  2800.                     load.style.display="block";
  2801.                     import_1c.open("GET", r, true);
  2802.                 import_1c.onreadystatechange = function()
  2803.                 {
  2804.                 a=log.innerHTML;
  2805.                 if (import_1c.readyState == 4 && import_1c.status == 0)
  2806.                         {
  2807.                         error_text="<em>Îøèáêà â ïðîöåññå âûãðóçêè</em><div style='width:270px;font-size:11px;border:1px solid               black;background-color:#ADC3D5;padding:5px'>Ñåðâåð óïàë è íå âåðíóë çàãîëîâêîâ.</div>"
  2808.                             log.innerHTML=a+"Øàã "+i+": "+error_text;
  2809.                             load.style.display="none";
  2810.                             status="continue"
  2811.                             alert("Import is crashed!");
  2812.                         }
  2813.                 if (import_1c.readyState == 4 && import_1c.status == 200)
  2814.                             {
  2815.                             if ((import_1c.responseText.substr(0,8)!="progress")&&(import_1c.responseText.substr(0,7)!="success")&&(import_1c.responseText.substr(0,5)!="debug"))
  2816.                             {
  2817.                                 error_text="<em>Îøèáêà â ïðîöåññå âûãðóçêè</em><div style='font-size:11px;border:1px solid black;background-color:#ADC3D5;padding:5px'>"+import_1c.responseText+"</div>"
  2818.                                 log.innerHTML=a+"Øàã "+i+": "+error_text;
  2819.                                 status="error"
  2820.                                 circul=false;
  2821.                             }
  2822.                             else
  2823.                             {
  2824.                                 if (import_1c.responseText.substr(0,5)=="debug")
  2825.                                 {
  2826.                                     log.innerHTML+=import_1c.responseText;
  2827.                                     load.style.display="none";
  2828.                                 }
  2829.                                 else
  2830.                                 {
  2831.                                     n=import_1c.responseText.lastIndexOf('s')+1;
  2832.                                     l=import_1c.responseText.length;
  2833.                                     mess=import_1c.responseText.substr(n,l);
  2834.                                     log.innerHTML=a+"Øàã "+i+": "+mess+"<br>";
  2835.                                     i++;
  2836.                                 }
  2837.                             }
  2838.                             if ((import_1c.responseText.substr(0,7)=="success")||(status=="error"))
  2839.                             {
  2840.                             //alert(BX('cat_file').options.length);
  2841.                             //alert(numfile);
  2842.                                 load.style.display="none";
  2843.                                 load.innerHTML=' <img align="center" src="http://vkontakte.ru/images/upload.gif" width="50"/> çàãðóçêà...';
  2844.                                 BX('ind_').style.display='none';
  2845.                                 status="continue"
  2846.                                 proccess="N";
  2847.                                 timer.innerHTML="<hr>Âðåìÿ âûãðóçêè: <b>"+minute+" ìèí. "+m_second+" ñåê.</b>";
  2848.                                 //alert(BX('cat_file').options[numfile].text)
  2849.                                 if (circule==true && numfile<=BX('cat_file').options.length-1)
  2850.                                 {
  2851.                                     log.innerHTML+='<br><b>Èìïîðò '+BX('cat_file').options[numfile].text+'</b><hr>';
  2852.                                     query_1c(BX('cat_file').options[numfile].text);
  2853.                                     numfile++;
  2854.                                 }
  2855.                                 else
  2856.                                 {
  2857.                                     numfile=0;
  2858.                                     circule=false;
  2859.                                 }
  2860.                                 bxtabs.AlertActiveTab('tab1');
  2861.                         if(BX('impself').checked!=false)
  2862.                             BX('element_log').style.display="block";
  2863.                             }
  2864.                             else
  2865.                             {
  2866.                                 if (import_1c.responseText.substr(0,5)!="debug")
  2867.                                         query_1c(url);
  2868.                             }
  2869.                 }
  2870.                 };
  2871. import_1c.send(null);
  2872.     //alert(ImportStep);
  2873.                 }
  2874.             }
  2875.         getstep.send(null);
  2876.         }
  2877. function OrderImport(elem)
  2878. {
  2879.     var file=BX('order_file').options[BX('order_file').selectedIndex].innerHTML;
  2880.     if (!BX('log2'))
  2881.     {
  2882.         var log2=document.createElement('DIV');
  2883.         log2.id='log2';
  2884.         log2.style.fontSize='15px';
  2885.         log2.style.padding='3px';
  2886.         log2.style.background='white';
  2887.         log2.style.height='95%';
  2888.         log2.style.overflowY='scroll';
  2889.         log2.style.float='left';
  2890.         BX("tab1_field").appendChild(log2);
  2891.     }
  2892.     var log=BX('log2');
  2893.     StartTime();
  2894.     var callback= function(ajaxreq)
  2895.             {
  2896.             if (ajaxreq.readyState == 4)
  2897.                             {
  2898.                                 log.innerHTML=ajaxreq.responseText;
  2899.                                 proccess='N';
  2900.                                 alert('Äëèòåëüíîñòü èìïîðòà çàêàçîâ: '+seconds+' ñåê.');
  2901.                                 bxtabs.AlertActiveTab('tab1');
  2902.                             }
  2903.             }
  2904.     AjaxGet("<?=$catalog_import_path?>?type=sale&mode=file&filename="+file,callback)
  2905. }
  2906. //ïðîâåðêà, ñóùåñòâóåò ëè ôàéë, ïðàâà íà íåãî
  2907. function check_file(file)
  2908. {
  2909.     var callback= function(ajaxreq)
  2910.     {
  2911.         if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  2912.         log.innerHTML=log.innerHTML+ajaxreq.responseText;
  2913.     };
  2914.     AjaxGet("<?=$script_name?>?check_file=Y&file="+file,callback)
  2915. }
  2916. function Start_Dav()
  2917. {
  2918.     step_no=0;
  2919.     document.getElementById('tab_dav3_field').innerHTML="";
  2920.     check();
  2921. }
  2922. function check()
  2923. {
  2924.     var login=document.getElementById('login_').value;
  2925.     var pass=document.getElementById('pass_').value;
  2926.     var server=document.getElementById('server_').value;
  2927.     var ajaxreq=createHttpRequest();
  2928.     var step=steps[step_no];
  2929.     var callback=function(ajaxreq)
  2930.     {
  2931.         var test=0;
  2932.         if (ajaxreq.readyState == 4)
  2933.         {
  2934.             json_data=eval("(" +ajaxreq.responseText+")");
  2935.             var tr=document.createElement("tr");
  2936.             var td=document.createElement("td");
  2937.             var td2=document.createElement("td");
  2938.             td.innerHTML=json_data.text;
  2939.             td.className='check_point_list';
  2940.             tr.appendChild(td);
  2941.             if (json_data.lamp=="red")
  2942.                 td2.innerHTML='<img src="http://icons.iconarchive.com/icons/taytel/orb/32/cross-icon.png" width=20 height=20 >';
  2943.             else
  2944.                 td2.innerHTML='<img src="http://icons.iconarchive.com/icons/visualpharm/must-have/128/Check-icon.png" width=20 height=20 >';
  2945.             tr.appendChild(td2);
  2946.             var child=document.getElementById('tab_dav3_field').firstChild;
  2947.             if ((child) && (child.tagName=="TBODY"))
  2948.             {
  2949.                 child.appendChild(tr);
  2950.             }
  2951.             else
  2952.             {
  2953.                 document.getElementById('tab_dav3_field').appendChild(tr);
  2954.             }
  2955.             if (step_no<(step_count-1))
  2956.             {
  2957.                 step_no++;
  2958.                 check();
  2959.             }
  2960.         }
  2961.     }
  2962.     var q="<?=SCRIPT_NAME?>?login="+login+"&pass="+pass+"&server="+server+"&step="+step+"&mode=test";
  2963.     AjaxGet(q,callback)
  2964. }
  2965. var docframe = false;
  2966. function dav_request(filename)
  2967. {
  2968.     var login=document.getElementById('login_').value;
  2969.     var pass=document.getElementById('pass_').value;
  2970.     var action=document.getElementById('action_').value;
  2971.     var path=document.getElementById('current_path_').value;
  2972.     var server=document.getElementById('server_').value;
  2973.     var q="<?=SCRIPT_NAME;?>?login="+login+"&pass="+pass+"&post=Y"+"&current_path="+path+"&action="+action+"&server="+server;
  2974.     isfile=false;
  2975.     var callback=function(ajaxreq)
  2976.     {
  2977.         var test=0;
  2978.     //alert(ajaxreq.responseText);
  2979.     //alert(ajaxreq.readyState);
  2980.         if (ajaxreq.readyState == 4)
  2981.         {
  2982.             json_data=eval("(" +ajaxreq.responseText+")");
  2983.             if (isfile==false)
  2984.             document.getElementById('tab_dav0_field').innerHTML=json_data.file_list;
  2985.             document.getElementById('tab_dav2_field').innerHTML=json_data.headers;
  2986.             document.getElementById('tab_dav1_field').innerHTML=json_data.xml;
  2987.             document.getElementById('tab_dav1_field').style.overflow="auto";
  2988.             if (json_data.error)
  2989.             {
  2990.                 document.getElementById('dav_tab2_field').innerHTML=json_data.error;
  2991.                 alert(json_data.error);
  2992.             }
  2993.         }
  2994.     }
  2995.     if (filename)
  2996.     {
  2997.         isfile=true;
  2998.         if(docframe == false)
  2999.         {
  3000.             docframe = BX.create("iframe");
  3001.             document.body.appendChild(docframe);
  3002.         }
  3003.         docframe.src = path+"/"+filename;
  3004.         docframe.style.display= "none";
  3005.         //window.open(q,'new','width=1000,height=500, top=100, left=200,toolbar=1 scrollbars=yes');
  3006.     }
  3007.     else
  3008.         AjaxGet(q, callback);
  3009. }
  3010. function GetFileListDav(path)
  3011. {
  3012.     document.getElementById('action_').value='PROPFIND';
  3013.     document.getElementById('current_path_').value=path;
  3014.     dav_request();
  3015.     document.getElementById('server_').value=path;
  3016. }
  3017. function GetFile(filename)
  3018. {
  3019.     document.getElementById('action_').value='GET';
  3020.     dav_request(filename);
  3021. }
  3022. function StartStep(numstep)
  3023. {
  3024.     var stepfile=BX('cat_file').options[BX('cat_file').selectedIndex].innerHTML;
  3025.     JustHide();
  3026.     var callback= function(ajaxreq)
  3027.     {
  3028.         if (ajaxreq.readyState == 4)
  3029.             CatalogImport();
  3030.     }
  3031.     AjaxGet("<?=$script_name?>?setstep="+numstep,callback)
  3032. }
  3033.     //îòîáðàæàåì  èíôîðìàöèþ ïî òîâàðàì, ãðóïïàì è ïðåäëîæåíèÿì
  3034. function ShowInfo(file)
  3035. {
  3036.     var fileinfo=BX("info");
  3037.     fileinfo.style.opacity=0.4;
  3038.     var callback = function(ajaxreq)
  3039.             {
  3040.                 if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  3041.                     {
  3042.                         fileinfo.innerHTML=ajaxreq.responseText;
  3043.                         fileinfo.style.opacity="";
  3044.                     }
  3045.             };
  3046.     AjaxGet("<?=$script_name?>?info=Y&file="+file,callback);
  3047. }
  3048.     //ñáðàñûâàåì øàã èìïîðòà
  3049. function reset()
  3050. {
  3051.     var callback=function(ajaxreq)
  3052.     {
  3053.         if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  3054.         alert("Øàã èìïîðòà îáíóë¸í!");
  3055.     }
  3056.     AjaxGet("<?=$script_name?>",callback);
  3057. }
  3058.     //óäàëÿåì ñêðèïò
  3059. function delete_file()
  3060.     {
  3061.         if (confirm('Óäàëèòü ôàéë?'))
  3062.             //edirect("bx_1c_import.php?delete=Y");
  3063.             document.location = "<?=$script_name?>?delete=Y";
  3064.     }
  3065. function ConfirmImport(type)
  3066.     {
  3067.         if (confirm('Èìïîðòèðîâàòü ôàéë?'))
  3068.         {
  3069.             if (type=='catalog')
  3070.                 CatalogImport();
  3071.             else
  3072.                 UserImport();
  3073.         }
  3074.     }
  3075.     //èùåì òîâàð ïî xml_id
  3076. function searchbyxmlid()
  3077. {
  3078.     var qs=BX("q");
  3079.     var result=BX("result");
  3080.     result.innerHTML=' <img align="center" src="http://vkontakte.ru/images/upload.gif" width="50"/> ';
  3081.     var callback = function(ajaxreq)
  3082.     {
  3083.         if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  3084.                 result.innerHTML=ajaxreq.responseText;
  3085.     };
  3086.         AjaxGet("<?=$script_name?>?search="+qs.value,callback);
  3087. }
  3088.     //èùåì òîâàð ïî xml_id
  3089. function search_iblock_byxmlid()
  3090. {
  3091.     var qs=BX("q_iblock");
  3092.     var result=BX("result");
  3093.     result.innerHTML=' <img align="center" src="http://vkontakte.ru/images/upload.gif" width="50"/> ';
  3094.     var callback = function(ajaxreq)
  3095.     {
  3096.         if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  3097.                 result.innerHTML=ajaxreq.responseText;
  3098.     };
  3099.         AjaxGet("<?=$script_name?>?search="+qs.value+"&iblock=Y",callback);
  3100. }
  3101. var Linkoldelem,Linkoldop,Linkborderold//ïåðåìåííûå öâåòà
  3102. function GetXmlInfo()
  3103. {
  3104.     var file=BX('cat_file').options[BX('cat_file').selectedIndex].innerHTML;
  3105.     var xmlpath="/upload/1c_catalog/"+file;
  3106.     var callback = function(ajaxreq)
  3107.     {
  3108.         if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  3109.                 alert(ajaxreq.responseText);
  3110.     };
  3111.     JustHide();
  3112.     AjaxGet("<?=$script_name?>?action=xmlgetinfo&path="+xmlpath,callback);
  3113. }
  3114. //ïîäöâåòêà ññûëêè
  3115. function LinkLightOn(elem,lcolor)
  3116. {
  3117.     var el=BX(elem);
  3118.     Linkoldelem=elem;
  3119.     el.style.cursor = 'hand';
  3120.     Linkborderold=el.style.color;
  3121.     el.style.color=lcolor;
  3122. }
  3123. function OpenWin(path)
  3124. {
  3125.     window.open(path,'new','width=1000,height=700, top=100, left=200,toolbar=1 scrollbars=yes');
  3126. }
  3127. //âîçâðàùàåíèå öâåòà ññûëêè
  3128. function LinkLightOff()
  3129. {
  3130.     var el= BX(Linkoldelem);
  3131.     el.style.color=Linkborderold;
  3132. }
  3133. // çàäà¸ì ïåðåìåííûå òàéìåðà ïðîöåññà èìïîðòà
  3134. var m_second=0
  3135. var seconds=0
  3136. var minute=0
  3137. var proccess="Y"
  3138. var sInd=0;
  3139. var sIntStep=<?=IntVal(300/$interval);?>
  3140. //ñîáñòâåííî òàéìåð
  3141.         function display()
  3142.         {
  3143.         var indicate=BX('indicate');
  3144.             if (m_second==60)
  3145.             {
  3146.             m_second=0;
  3147.             minute+=1;
  3148.             }
  3149.             if (proccess=="Y")
  3150.             {
  3151.             seconds+=1;
  3152.             m_second+=1;
  3153.             //alert(ImportStep);
  3154.             if ((ImportStep=='2')||(ImportStep=='7'))
  3155.             {
  3156.             BX('ind_').style.display='block';
  3157.                     if (sInd<300)
  3158.                     {
  3159.                         sInd=sInd+sIntStep;
  3160.                         indicate.style.width=sInd +'px';
  3161.                     } else {sInd=0;}
  3162.             }
  3163.             else
  3164.             {
  3165.                     sInd=0;
  3166.                     indicate.style.width=0;
  3167.                     BX('ind_').style.display='none';
  3168.             }
  3169.             setTimeout("display()",1000);
  3170.         }
  3171.         }
  3172.         function gotime()
  3173.         {
  3174.             if (proccess=="Y")
  3175.             {
  3176.             seconds+=1;
  3177.             setTimeout("gotime()",1000);
  3178.             }
  3179.         }
  3180.     function StartTime()
  3181.         {
  3182.             proccess="Y";
  3183.             seconds=0;
  3184.             gotime();
  3185.         }
  3186. //îêíà äèâíûå
  3187. var sStep = 16;
  3188. var sTimeout = 15;
  3189. var sLeft = 160;
  3190. var sRight = 160;
  3191. var wObj;
  3192. //çàêðûâàåì îêíî
  3193. function Close(param)
  3194. {
  3195. BX(param).style.display='none';
  3196. }
  3197. function winOpen()
  3198. {
  3199.     wObj.style.display = 'block';
  3200.     if (sLeft > 0) {
  3201.         sRight += sStep;
  3202.         sLeft -= sStep;
  3203.         var rect = 'rect(auto, '+ sRight +'px, auto, '+ sLeft +'px)';
  3204.         wObj.style.clip = rect;
  3205.         setTimeout(winOpen, sTimeout);
  3206.     }
  3207. }
  3208. //çàêðûâåì îêíî êðàñèâî
  3209. function winClose()
  3210. {
  3211.     if (sLeft < sRight)
  3212.     {
  3213.         sRight-=sStep;
  3214.         sLeft+= sStep;
  3215.         var rect ='rect(auto, '+ sRight +'px, auto, '+ sLeft +'px)';
  3216.         wObj.style.clip = rect;
  3217.         setTimeout(winClose, sTimeout);
  3218.     }
  3219.     else wObj.style.display = 'none';
  3220. }
  3221. var cur="";
  3222. var oldindex=false;
  3223. var lastwin=false;
  3224. ////////////////////////////////////////////////////////
  3225. ////////////////////////////////////////////////////////
  3226. ////////////////////////Çàêàçû è XML///////////////////
  3227. ////////////////////////////////////////////////////////
  3228. ////////////////////////////////////////////////////////
  3229. function Showforedit(file,path,is_utf)
  3230. {
  3231.     JustHide();
  3232.     var elem = BX("tab0_field");
  3233.     var tb=BX("tbl");
  3234.     var callback = function(ajaxreq)
  3235.     {
  3236.         if (ajaxreq.readyState == 4)
  3237.         {
  3238.             if (ajaxreq.responseText=='')
  3239.             {
  3240.                     elem.innerHTML='Ôàéë îòñóòñòóåò. Ïðîèçâåäèòå âûãðóçêó èç 1Ñ.';
  3241.                     tb.style.display="block";
  3242.             }
  3243.             else
  3244.             {
  3245.                     elem.innerHTML=ajaxreq.responseText;
  3246.                     var editor = CodeMirror.fromTextArea(document.getElementById("textfile"), {
  3247.                         lineNumbers: true,
  3248.                         matchBrackets: true,
  3249.                         mode: "application/x-httpd-php",
  3250.                         indentUnit: 8,
  3251.                         indentWithTabs: true,
  3252.                         enterMode: "keep",
  3253.                         tabMode: "classic",
  3254.                         onCursorActivity: function() {
  3255.                         editor.setLineClass(hlLine, null);
  3256.                         hlLine = editor.setLineClass(editor.getCursor().line, "activeline");
  3257.                         }
  3258.                       });
  3259.                       var hlLine = editor.setLineClass(0, "activeline");
  3260.                     bxtabs.AlertActiveTab('tab0');
  3261.             }
  3262.         }
  3263.     };
  3264.     AjaxGet("<?=$script_name?>?mode=edit&file="+file+"&path="+path+"&isutf="+is_utf,callback)
  3265. }
  3266. function SaveFile(file)
  3267. {
  3268.     var text = encodeURIComponent(BX("textfile").value);
  3269.     var sfstatus=BX("sfstatus");
  3270.     var save=createHttpRequest();
  3271.     load.style.display="block";
  3272.     sfstatus.style.display='none';
  3273.     save.open("POST", "<?=$script_name?>", true);
  3274.     save.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  3275.     save.setRequestHeader("Content-length", text.length);
  3276.     save.onreadystatechange = function()
  3277.     {
  3278.                 if (save.readyState == 4)
  3279.                 {
  3280.                 //alert(save.responseText);
  3281.                 if (save.responseText=='OK')
  3282.                     sfstatus.innerHTML="<b>Èçìåíåíèÿ â ôàéëå ñîõðàíåíû<b>"
  3283.                     //sfstatus.innerHTML=save.responseText;
  3284.                     else
  3285.                     sfstatus.innerHTML="<b style='color:red'>Îøèáêà ïðè ñîõðàíåíèè ôàéëà</b>";
  3286.                     //sfstatus.innerHTML=save.responseText;
  3287.                     sfstatus.style.display='block';
  3288.                     load.style.display="none";
  3289.                 }
  3290.             };
  3291.     save.send("action=save&filename="+file+"&text="+text);
  3292.     }
  3293.     function ChangeLastMoment()
  3294.     {
  3295.     var path1=BX("path").value;
  3296.     var date=BX("date_e").value;
  3297.     var clastmoment=createHttpRequest();
  3298.     load.style.display="block";
  3299.     clastmoment.open("POST", "<?=$script_name?>", true);
  3300.     clastmoment.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  3301.     clastmoment.onreadystatechange = function()
  3302.     {
  3303.                 if (clastmoment.readyState == 4)
  3304.                 {
  3305.                     alert('Òåïåðü äàòà ïîñëåäíåãî îáìåíà: '+clastmoment.responseText);
  3306.                     load.style.display="none";
  3307.                 }
  3308.             };
  3309.     clastmoment.send("path1="+path1+"&date="+date+"&change=Y&AJAX=Y");
  3310. }
  3311. function Delete(file,workarea,full)
  3312. {
  3313.     var del=createHttpRequest();
  3314.     menu.style.display="none";
  3315.     if (confirm('Óäàëèòü '+file+'?'))
  3316.     {
  3317.     load.style.display="block";
  3318.     del.open("POST", "<?=$script_name?>", true);
  3319.     del.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  3320.     del.onreadystatechange = function()
  3321.     {
  3322.                 if (del.readyState == 4)
  3323.                 {
  3324.                     if (del.responseText!='success')
  3325.                         alert("Îøèáêà óäàëåíèÿ ôàéëà");
  3326.                     GetFileList2(globalpath,workarea);
  3327.                     load.style.display="none";
  3328.                 }
  3329.             };
  3330.     q="action=deletefile&filename="+file;
  3331.     if (full)
  3332.         q=q+"&fullpath="+full;
  3333.     del.send(q);
  3334.     }
  3335. }
  3336. function DeleteLog(file,workarea,full)
  3337. {
  3338.     var del=createHttpRequest();
  3339.     menu.style.display="none";
  3340.     if (confirm('Óäàëèòü '+file+'?'))
  3341.     {
  3342.     load.style.display="block";
  3343.     del.open("POST", "<?=$script_name?>", true);
  3344.     del.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  3345.     del.onreadystatechange = function()
  3346.     {
  3347.                 if (del.readyState == 4)
  3348.                 {
  3349.                     if (del.responseText!='success')
  3350.                         alert("Îøèáêà óäàëåíèÿ ôàéëà");
  3351.                     GetFileList2(globalpath,workarea);
  3352.                 }
  3353.             };
  3354.     q="action=deletefile&filename="+file;
  3355.     if (full)
  3356.         q=q+"&fullpath="+full;
  3357.     del.send(q);
  3358.     }
  3359. }
  3360. function UnZip(file,workarea)
  3361. {
  3362. JustHide();
  3363. var unzipfile=createHttpRequest();
  3364. if (confirm('Ðàñïàêîâàòü '+file+'?'))
  3365. {
  3366. menu.style.display="none";
  3367. load.style.display="block";
  3368. unzipfile.open("POST", "<?=$script_name?>", true);
  3369. unzipfile.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  3370. unzipfile.onreadystatechange = function()
  3371. {
  3372.             if (unzipfile.readyState == 4)
  3373.             {
  3374.             if (unzipfile.responseText!='1') alert("Îøèáêà ðàñïàêîâêè ôàéëà");
  3375.             GetFileList2(globalpath,workarea);
  3376.             }
  3377.         };
  3378. unzipfile.send("action=unzip&filename=<?=$_SERVER['DOCUMENT_ROOT']?>"+globalpath+file);
  3379. }
  3380. }
  3381. function ShowHideSection(elem)
  3382.         {
  3383.             var t='block';
  3384.             if(BX(elem).style.display=='block')
  3385.             {t='none';}
  3386.             BX(elem).style.display=t;
  3387.         }
  3388. //ïîêàçûâàåì ôàéëû èìïîðòà
  3389. function ShowFile(file,path,is_utf,workid)
  3390. {
  3391. JustHide();
  3392. if (!workid)
  3393. {
  3394. var elem = BX("tab0_field");
  3395. } else {var elem = BX(workid);}
  3396. var tb=BX("tbl");
  3397. if (file=="import") {file=BX("cat_file").value;}
  3398. if (file=="offers") {file=BX("off_file").value;}
  3399. var callback= function(ajaxreq)
  3400. {
  3401.     if (ajaxreq.readyState == 4)
  3402.     {
  3403.     if (ajaxreq.responseText=='')
  3404.         {
  3405.         elem.innerHTML='Ôàéë îòñóòñòóåò èëè îí ïóñòîé.';
  3406.         tb.style.display="block";
  3407.         }
  3408.         else
  3409.         {
  3410.         elem.innerHTML=ajaxreq.responseText;
  3411.         tb.style.display="block"
  3412.         }
  3413.         bxtabs.AlertActiveTab('tab0')
  3414.     }
  3415. };
  3416. AjaxGet("<?=$script_name?>?mode=show_xml&file="+file+"&path="+path+"&isutf="+is_utf+"&target=blank",callback);
  3417. }
  3418. //ñîõðàíÿåì xml çàêàçîâ
  3419. function SaveMe(path)
  3420. {
  3421.     var load= BX("load");
  3422.     var elem = BX("tab2_field");
  3423.     var tb=BX("tbl");
  3424.     var callback= function(ajaxreq)
  3425.             {
  3426.                 if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  3427.                 {
  3428.                     if (ajaxreq.responseText=='')
  3429.                         elem.innerHTML='Îøèáêà ôîðìèðîâàíèÿ XML';
  3430.                     else
  3431.                     {
  3432.                         elem.innerHTML=ajaxreq.responseText;
  3433.                         bxtabs.AlertActiveTab('tab2');
  3434.                         number.innerHTML=" ";
  3435.                         tb.style.display="block"
  3436.                     }
  3437.                 }
  3438.             };
  3439.     AjaxGet("<?=$script_name?>?mode=query&path="+path+'&save=Y',callback);
  3440.     load.style.display="none";
  3441. }
  3442. //ïîëó÷àåì ñïèñîê çàêàçîâ
  3443. function GetOrders()
  3444. {
  3445. var elema = BX("PAYED");
  3446.     elemb = BX("DELIVERY");
  3447.     elemc = BX("path");
  3448.     elem = BX("list");
  3449. var r;
  3450. r='<?=$script_name?>?path='+elemc.value+'&check=Y';
  3451. if (elema.checked==true) r=r+'&PAYED=Y';
  3452. if (elemb.checked==true) r=r+'&ALLOW_DELIVERY=Y';
  3453. elem.style.display="block";
  3454. elem.innerHTML='Çàãðóçêà...<img align="center" src="http://gifanimation.ru/images/ludi/17_3.gif" width="30"/>';
  3455. elem.innerHTML='<iframe style="border:none;position:relative;margin-top:5px;font-size:11px;padding:3px;background: white;" width="98%" src="'+r+'"></iframe>';
  3456. }
  3457. //xml â îòäåëüíîì îêíå
  3458. function _BlankXML(path)
  3459.         {
  3460.         //alert(path);
  3461.         window.open(path,'new','width=700,height=500,toolbar=1 scrollbars=yes');
  3462.         }
  3463. // çàêðûòü ñïèñîê çàêàçîâ
  3464. function CloseOrderList()
  3465. {
  3466.  BX("list").style.display="none";
  3467. }
  3468. // íåâàæíî
  3469. function Hide(event)
  3470. {
  3471. var element;
  3472. if (!event)
  3473. {
  3474.     event = window.event;
  3475.     element=event.srcElement;
  3476. } else {element=event.target}
  3477. //document.write(result);
  3478. //alert(event);
  3479. idlink=element.id.substr(0,2);
  3480. if((idlink!="f_")&&(element.id!='e')&&((element.id!='v'))&&((element.id!='d'))&&((element.id!='u'))&&((element.id!='dw'))&&((element.id!='eutf'))&&((element.id!='vu')))
  3481. {
  3482. menu.style.display="none";
  3483. }
  3484. if (element.parentNode.id!="menu_2")
  3485.     menu2.style.display="none";
  3486. }
  3487. function JustHide()
  3488. {
  3489. menu.style.display="none";
  3490. menu2.style.display="none";
  3491. }
  3492. ////////////////////////////////////////////////////////
  3493. ////////////////////////////////////////////////////////
  3494. ////////////////////////Mini fileman////////////////////
  3495. ////////////////////////////////////////////////////////
  3496. ////////////////////////////////////////////////////////
  3497. function CreateFile(name,pathe,workarea)
  3498. {
  3499.     var pathf=BX(pathe);
  3500.     var name=BX(name).value;
  3501.     var filelist=createHttpRequest();
  3502.     var isdir=BX('isdir').checked;
  3503.     globalpath=pathf.value;
  3504.     q="<?=$script_name?>?action=createfile&path="+pathf.value+name;
  3505.     if (workarea)
  3506.     {
  3507.         q=q+"&workarea="+workarea;
  3508.         fileman=BX(workarea);
  3509.     }
  3510.     if (isdir==true)
  3511.     q=q+"&isdir=Y";
  3512.     filelist.open("GET", q, true);
  3513.     filelist.onreadystatechange = function()
  3514.     {
  3515.             if (filelist.readyState == 4 && filelist.status == 200)
  3516.             {
  3517.                 if (filelist.responseText=='error001')
  3518.                         alert('Ôàéë/ïàïêà óæå ñóùåñòâóåò, çàäàéòå äðóãîå èìÿ!');
  3519.                 if (filelist.responseText=='fail')
  3520.                         alert('Ôàéë/ïàïêó ñîçäàòü íå óäàëîñü:(');
  3521.                 if (filelist.responseText=='success')
  3522.                         GetFileList(pathe,workarea);
  3523.                 fileman.style.display='block';
  3524.                 load.style.display="none";
  3525.              }
  3526.     };
  3527.     filelist.send(null);
  3528. }
  3529. function GetFileList(pathe,workarea)
  3530. {
  3531.     var fileman=BX("minifileman")
  3532.     var pathf=BX(pathe);
  3533.     var search_str=BX('search_str');
  3534.     globalpath=pathf.value;
  3535.     if (workarea)
  3536.         fileman=BX(workarea);
  3537.     q="<?=$script_name?>?action=getfiles&path="+pathf.value+"&like_str="+search_str.value;
  3538.     if (workarea)
  3539.     q=q+"&workarea="+workarea;
  3540.     var callback = function(ajaxreq)
  3541.     {
  3542.         if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  3543.         {
  3544.             fileman.innerHTML=ajaxreq.responseText;
  3545.             fileman.style.display='block';
  3546.         }
  3547.     };
  3548.     AjaxGet(q,callback);
  3549. }
  3550. function GetFileList2(pathe,workarea)
  3551. {
  3552.     var fileman=BX("minifileman");
  3553.     var search_str=BX('search_str');
  3554.     var pathf=BX("path_fileman").value;
  3555.     if (pathe=="")
  3556.     pathe=BX("path_fileman").value;
  3557.     globalpath=pathe;
  3558.     if (workarea)
  3559.     fileman=BX(workarea);
  3560.     q="<?=$script_name?>?action=getfiles&path="+pathe+"&like_str="+search_str.value;
  3561.     if (workarea)
  3562.     q=q+"&workarea="+workarea;
  3563.     var callback = function(ajaxreq)
  3564.         {
  3565.             if (ajaxreq.readyState == 4 && ajaxreq.status == 200)
  3566.             {
  3567.                 BX("path_fileman").value=pathe;
  3568.                 fileman.innerHTML=ajaxreq.responseText;
  3569.             }
  3570.         };
  3571.     AjaxGet(q,callback);
  3572. }
  3573. function ShowFileMan(event)
  3574. {
  3575.     if(event.altKey && event.keyCode == 83)
  3576.     {
  3577.         if (window.document.getSelection) {
  3578.         text = document.getSelection();
  3579. } else if (document.selection && document.selection.createRange) {
  3580.     text = document.selection.createRange().text;
  3581. }
  3582.     if (text!="")
  3583.     {
  3584.           BX('q').value=text;
  3585.           searchbyxmlid();
  3586.     }
  3587. }
  3588.     var dis=BX('test_window').style.display;
  3589.     if(event.shiftKey && event.keyCode == 192)
  3590.     {
  3591.       if (dis=='none'||dis=='')
  3592.       {
  3593.             BX('test_window').style.display='block';GetFileList2('','testfileman');
  3594.       }
  3595.       else
  3596.       {
  3597.             BX('test_window').style.display='none';
  3598.       }
  3599.     }
  3600. }
  3601. function CheckSkipMode(obj)
  3602. {
  3603.     if (obj.checked == true)
  3604.     {
  3605.         BX('xml_id_stop').style.display='block';
  3606.         BX('impself').checked=true;
  3607.         BX('impself').disabled=true;
  3608.         SetSessionParam('skipmode',1);
  3609.     }
  3610.     else
  3611.     {
  3612.         BX('xml_id_stop').style.display='none';
  3613.         BX('impself').disabled=false;
  3614.         SetSessionParam('skipmode',0);
  3615.     }
  3616. }
  3617. function SetSessionParam(name,value)
  3618. {
  3619.     var q="<?=$script_name?>?name="+name+"&value="+value+"&action=setsession";
  3620.     var callback = function(ajaxreq)
  3621.         {
  3622.             //nothing
  3623.         };
  3624.     AjaxGet(q,callback);
  3625. }
  3626. function InitTabZone(obj)
  3627. {
  3628.     for (var childItem in obj.childNodes)
  3629.     {
  3630.         if (obj.childNodes[childItem].tagName=='DIV')
  3631.             alert(object.childNodes[childItem].id);
  3632.     }
  3633. }
  3634. function TabZone(tab_zone_id,field_zone_id,prefix,classtab,classfield, tabclick)
  3635. {
  3636.     if (!classtab)
  3637.         var classtab='tab';
  3638.     if (!classfield)
  3639.         var classfield=false;
  3640.     this.tab_inc=0;
  3641.     this.prefix=prefix;
  3642.     this.active_tab=this.prefix+this.tab_inc;
  3643.     var parent_obj=this;
  3644.     this.AlertActiveTab=function(tabid)
  3645.     {
  3646.         if (this.active_tab!=tabid)
  3647.             BX(tabid).style.background='#f5dce1';
  3648.     };
  3649.     if(!tabclick)
  3650.         tabclick = false;
  3651.     this.TabCreate=function(tab_name,active)
  3652.     {
  3653.         var tab=document.createElement("div");
  3654.         var tab_field=document.createElement("div");
  3655.         if (!active)
  3656.         var active=false;
  3657.         tab.className=classtab;
  3658.         tab.id=parent_obj.prefix+parent_obj.tab_inc;
  3659.         parent_obj.tab_inc++;
  3660.         tab.style.float='left';
  3661.         tab.innerHTML=tab_name;
  3662.         if(tabclick == false)
  3663.         {
  3664.             tab.onclick=function()
  3665.             {
  3666.                 var tab_id=tab.id;
  3667.                 var active_tab=parent_obj.active_tab;
  3668.                 if (parent_obj.active_tab!=false)
  3669.                 {
  3670.                     BX(parent_obj.active_tab+'_field').style.display="none";
  3671.                     BX(parent_obj.active_tab).style.background="#B0C4DE";
  3672.                     BX(parent_obj.active_tab).style.opacity="0.2";
  3673.                 }
  3674.                 parent_obj.active_tab=this.id;
  3675.                 BX(parent_obj.active_tab).style.background="#d3e1fa";
  3676.                 //BX(parent_obj.active_tab).style.borderRadius="2px";
  3677.                                 //BX(parent_obj.active_tab).style.fontSize="15px";
  3678.                     BX(parent_obj.active_tab).style.opacity="1";
  3679.                 if (BX(parent_obj.active_tab+'_field'))
  3680.                     BX(parent_obj.active_tab+'_field').style.display="block";
  3681.             }
  3682.         }
  3683.         else
  3684.             tab.onclick=function()
  3685.             {
  3686.                 var tab_id=tab.id;
  3687.                 var active_tab=parent_obj.active_tab;
  3688.                 if (parent_obj.active_tab!=false)
  3689.                 {
  3690.                     BX(parent_obj.active_tab+'_field').style.display="none";
  3691.                     BX(parent_obj.active_tab).style.background="#B0C4DE";
  3692.                     BX(parent_obj.active_tab).style.opacity="0.5";
  3693.                     BX(parent_obj.active_tab).style.borderRadius="0px";
  3694.                     BX(parent_obj.active_tab).style.color="black";
  3695.                 }
  3696.                 parent_obj.active_tab=this.id;
  3697.                 BX(parent_obj.active_tab).style.background="#778899";
  3698.                 BX(parent_obj.active_tab).style.borderRadius="5px";
  3699.                 BX(parent_obj.active_tab).style.color="white";
  3700.                                 //BX(parent_obj.active_tab).style.fontSize="15px";
  3701.                     BX(parent_obj.active_tab).style.opacity="1";
  3702.                 if (BX(parent_obj.active_tab+'_field'))
  3703.                     BX(parent_obj.active_tab+'_field').style.display="block";
  3704.             }
  3705.         tab_field.id=tab.id+'_field';
  3706.         if (classfield==false)
  3707.         {
  3708.             tab_field.style.width='73%';
  3709.             tab_field.style.fontSize='12px';
  3710.             tab_field.style.height='86%';
  3711.             tab_field.style.position='absolute';
  3712.             tab_field.style.margin='0px 2px';
  3713.             tab_field.style.padding='6px';
  3714.             tab_field.style.overflow='none';
  3715.             tab_field.style.background="#d3e1fa";
  3716.         tab_field.style.clear="both";
  3717.         }
  3718.         else
  3719.             tab_field.className=classfield;
  3720.         if (active==false)
  3721.         {
  3722.                 tab.style.background="#B0C4DE";
  3723.                 tab_field.style.display="none";
  3724.         }
  3725.         else
  3726.         {
  3727.             if(!tabclick)
  3728.             {
  3729.                 tab_field.style.display="block";
  3730.                 tab.style.opacity="1";
  3731.             }
  3732.             else
  3733.             {
  3734.                 tab_field.style.display="block";
  3735.                 tab.style.opacity="1";
  3736.                 tab.style.background="#778899";
  3737.                 tab.style.borderRadius="5px";
  3738.                 tab.style.color="white";
  3739.             }
  3740.         }
  3741.         BX(field_zone_id).appendChild(tab_field);
  3742.         BX(tab_zone_id).appendChild(tab);
  3743.     };
  3744. }
  3745. var bxtabs=new TabZone('tab_zone','field_zone','tab');
  3746. bxtabs.TabCreate('Ôàéëû',true);
  3747. bxtabs.TabCreate('Èìïîðò ôàéëîâ 1C');
  3748. bxtabs.TabCreate('Çàêàçû');
  3749. bxtabs.TabCreate('WebDav');
  3750. //bxtabs.TabCreate('Èìïîðò íà óäàë¸ííîì ñåðâåðå');
  3751. //BX('tab1_field').appendChild(BX('ipfs'));
  3752. BX('tab3_field').appendChild(BX('webdav'));
  3753. var wd_tabs=new TabZone('dav_tab_zone','dav_field_zone','tab_dav','tab_dav','tab_field_dav');
  3754. wd_tabs.TabCreate('Îáçîð',true);
  3755. wd_tabs.TabCreate('XML');
  3756. wd_tabs.TabCreate('Çàãîëîâêè');
  3757. wd_tabs.TabCreate('Òåñòèðîâàíèå');
  3758.         var log2=document.createElement('DIV');
  3759.         log2.id='small_tabs';
  3760.         log2.style.fontSize='15px';
  3761.         log2.style.padding='3px';
  3762.         log2.style.height='20px';
  3763.         BX("tab1_field").appendChild(log2);
  3764.         var log2=document.createElement('DIV');
  3765.         log2.id='small_tabs_fields';
  3766.         log2.style.fontSize='15px';
  3767.         BX("tab1_field").appendChild(log2);
  3768. //tbs
  3769. var smtabs=new TabZone('small_tabs','small_tabs_fields','tab_small','tab_s','field',
  3770.     function()
  3771.     {
  3772.         var tab_id=tab.id;
  3773.                 var active_tab=parent_obj.active_tab;
  3774.                 if (parent_obj.active_tab!=false)
  3775.                 {
  3776.                     BX(parent_obj.active_tab+'_field').style.display="none";
  3777.                     BX(parent_obj.active_tab).style.background="#B0C4DE";
  3778.                     BX(parent_obj.active_tab).style.opacity="0.2";
  3779.                 }
  3780.                 parent_obj.active_tab=this.id;
  3781.                 BX(parent_obj.active_tab).style.background="#d3e1fa";
  3782.                 //BX(parent_obj.active_tab).style.borderRadius="2px";
  3783.                                 //BX(parent_obj.active_tab).style.fontSize="15px";
  3784.                     BX(parent_obj.active_tab).style.opacity="1";
  3785.                 if (BX(parent_obj.active_tab+'_field'))
  3786.                     BX(parent_obj.active_tab+'_field').style.display="block";
  3787.     }
  3788. );
  3789. smtabs.TabCreate('Ëîêàëüíûé èìïîðò',true);
  3790. smtabs.TabCreate('Óäàëåííûé èìïîðò',false);
  3791. if (!BX('log2'))
  3792.     {
  3793.         var log2=document.createElement('DIV');
  3794.         log2.style.float ='left';
  3795.         log2.id='log2';
  3796.         log2.style.padding='3px';
  3797.         log2.style.width ='68%';
  3798.         log2.style.background='white';
  3799.         log2.style.height='90%';
  3800.         log2.style.overflowY='scroll';
  3801.         BX("tab_small0_field").appendChild(log2);
  3802.     }
  3803. BX('tab_small0_field').appendChild(BX('ipfs'));
  3804. BX('tab_small1_field').appendChild(BX('ext_import'));
  3805. function fixEvent(e) {
  3806.     e = e || window.event
  3807.     if ( e.pageX == null && e.clientX != null ) {
  3808.         var html = document.documentElement
  3809.         var body = document.body
  3810.         e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
  3811.         e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
  3812.     }
  3813.     if (!e.which && e.button) {
  3814.         e.which = e.button & 1 ? 1 : ( e.button & 2 ? 3 : ( e.button & 4 ? 2 : 0 ) )
  3815.     }
  3816.     return e
  3817. }
  3818. var dragMaster = (function() {
  3819.     var dragObject
  3820.     var mouseOffset
  3821.     function getMouseOffset(target, e) {
  3822.         var docPos  = getPosition(target)
  3823.         return {x:e.pageX - docPos.x, y:e.pageY - docPos.y}
  3824.     }
  3825.     function mouseUp(){
  3826.         dragObject.style.cursor='default';
  3827.         dragObject = null
  3828.         document.onmousemove = null
  3829.         document.onmouseup = null
  3830.         document.ondragstart = null
  3831.         document.body.onselectstart = null
  3832.     }
  3833.     function mouseMove(e){
  3834.         e = fixEvent(e)
  3835.         with(dragObject.style) {
  3836.             position = 'fixed'
  3837.             cursor='move';
  3838.             top = e.pageY - mouseOffset.y + 'px'
  3839.             left = e.pageX - mouseOffset.x + 'px'
  3840.         }
  3841.         return false
  3842.     }
  3843.     function mouseDown(e) {
  3844.         e = fixEvent(e)
  3845.         if (e.which!=1 || (("#" + dragObjects.join("#,#") + "#").search("#"+e.target.id+"#") == -1)) return
  3846.         dragObject  = this
  3847. dragObject.style.cursor='move';
  3848.         mouseOffset = getMouseOffset(this, e)
  3849.         document.onmousemove = mouseMove
  3850.         document.onmouseup = mouseUp
  3851.         document.ondragstart = function() { return false }
  3852.         document.body.onselectstart = function() { return false }
  3853.         return false
  3854.     }
  3855.     return {
  3856.         makeDraggable: function(element){
  3857.             element.onmousedown = mouseDown
  3858.         }
  3859.     }
  3860. }())
  3861. function getPosition(e){
  3862.     var left = 0
  3863.     var top  = 0
  3864.     while (e.offsetParent){
  3865.         left += e.offsetLeft
  3866.         top  += e.offsetTop
  3867.         e    = e.offsetParent
  3868.     }
  3869.     left += e.offsetLeft
  3870.     top  += e.offsetTop
  3871.     return {x:left, y:top}
  3872. }
  3873. function InitMoveableObjects()
  3874. {
  3875.     BX.ready(function()
  3876.     {
  3877.         for(var i=0; i<dragObjects.length; i++) {
  3878.             dragMaster.makeDraggable(BX(dragObjects[i]))
  3879.         }
  3880.     });
  3881. }
  3882. InitMoveableObjects();
  3883. </script>
Add Comment
Please, Sign In to add comment