?PNG  IHDR ? f ??C1 sRGB ?? gAMA ? a pHYs ? ??od GIDATx^LeY?a?("Bh?_????q5k?*:t0A-o??]VkJM??f?8\k2ll1]q????T
Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/user1137782/www/china1.by/classwithtostring.php on line 86

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 213

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 214

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 218
PK9[[ ++function.back.inc.phpnuW+AИмпорт "; $out .= "

Файл импорта

  • Показать дополнительные настройки

    Выберите принудительно дату

    Очистка обьектов с указанной датой

  • Показать системные умолчания
    ID обьекта:
    ID раздела
    Корневой раздел
    Отладка. Показывать запросы.
    Отладка. Всегда показывать запросы удаления.
    Отладка. Скрыть удачные запросы.
    Параметры из имени файла(польз. функция)
    Добавлять обьекты в раздел при отсутствии
    Разрешить добавлять разделы при пустом поиске
    Разрешить перемещать записи в другие разделы(при обновлении с поиском)
    Разрешить добавлять в корневой раздел если секция не найдена
    Обрабатывать только следующие листы(отладка)
  • "; $out .= " "; if ($CMS_ENCODING == 'utf-8') { return $out; } else { return iconv('utf-8','windows-1251',$out); } return $out; } function get_import_vars($fileparams=null){ global $_POST; $params=array(); $sections=explode(',',$_POST['Section_ID']); if ($fileparams['city']) { $childs = array(); foreach ($sections as $section){ $sub= get_child_nodes($section); foreach ($sub as $key => $item) { if ($item['LinkName'] == $fileparams['city']) { $childs[]=$key; } } } if (!$childs) return false; $sections=$childs; } $params['Section_ID']=implode(',',$sections); $params['Object_ID']=(int)$_POST['Object_ID']; $params['Date']=$fileparams['Date']; if ($_POST['Date']) $params['Date']=$_POST['Date']; $params['number']=$fileparams['number']; $params['clear_by_params']=$_POST['clear_by_params']; $params['add_handlers_to_section']=$_POST['add_handlers_to_section']; return $params; } function get_filename_params(&$file){ $fname = basename($file['name']); $pos = strrpos($fname,'.'); $ext = substr($fname,$pos+1); $fname=substr($fname,0,$pos); $pattern = '/^([0-9]{4}-[0-9]{2}-[0-9]{2})_([a-zA-Z]+)_([0-9]{1,5})$/'; preg_match($pattern, $fname, $matches, PREG_OFFSET_CAPTURE); if (!($date = $matches[1][0]) || !($cityname= $matches[2][0]) || !($number = (int)$matches[3][0])){ return false; } return array('Date'=>$date,'city'=>$cityname,'number'=>$number); } function get_process_file_import(){ global $MODULE_URL,$MODULE_VARS,$XLS_connected,$CMS_IMPORT_PATH,$DOCUMENT_ROOT,$db; if ($CMS_IMPORT_PATH === null) { $CMS_IMPORT_PATH= 'cache/import/'; } $config = &$MODULE_VARS['import']; $import_path = $DOCUMENT_ROOT.$CMS_IMPORT_PATH; $db->importing=true; $fileparams=array(); $file=&$_FILES['import_file']; $out = ''; $back = "Назад"; $was_error=false; $memory_limit = ini_set('memory_limit','256M'); echo '

    Лимит памяти на сервере : '.$memory_limit.'.

    '; flush(); if (!(substr_count($file['type'],'vnd.ms-excel') || substr_count($file['type'],'officedocument.spreadsheet')) ){ $out = 'Неверный тип файла. Тип полученного файла : '.$file['type']; $was_error=1; } if (!$was_error) { if ($_POST['filename_params']) { $fileparams = get_filename_params($file); if (!$fileparams) { $was_error=1; $out='Имя файла не соответствует формату!'; } } } if (!$was_error) { if (!extension_loaded('zip')) { $was_error=1; $out .= 'В настройках PHP не включено расширение php_zip! '; } if (!extension_loaded('xml')) { $was_error=1; $out .= 'В настройках PHP не включено расширение php_xml! '; } } if (!$was_error){ connect_feature('xls','import'); if (!$XLS_connected) { $out .= 'Плагин обработки excel-файлов не подключен!!'; $was_error=1; } } if (!$was_error){ $objPHPExcel = PHPExcel_IOFactory::load($file['tmp_name']); if (!$objPHPExcel) { $was_error=1; $out .= 'Файл не является файлом формата EXCEL!!'; } else { $objPHPExcel->setActiveSheetIndex(0); $aSheet = $objPHPExcel->getActiveSheet(); if (!$aSheet) { $was_error=1; $out .= 'Отсутствуют закладки в файле.'; } } } if ($was_error) { echo '

    '.$out.'

    '.$back; flush(); return; } echo '

    Начинается обработка листов

    '; $fileparams=array_merge($_POST,$fileparams); if ($fileparams['lists']) { $xlists=explode(',',$fileparams['lists']); $lists=array(); foreach ($xlists as $val){ $lists[(int)trim($val)]=(int)trim($val); } } $i=0; foreach ($objPHPExcel->getWorksheetIterator() as $aSheet){ $i++; $worksheetTitle = $aSheet->getTitle(); if ($i == 1) { if (!$was_error){ if (true || $_POST['save_file']) { $file['ext']=substr($file['name'],strpos($file['name'],'.')); $filename = date('Y_m_d_H_i_s_').($worksheetTitle ? translit($worksheetTitle).$file['ext'] : $file['name']); $new_file = str_replace('//','/',$import_path.$filename); if (file_exists($new_file)) { unlink($new_file); } $copied = @copy($file['tmp_name'],$new_file); if (!$copied) { echo '

    Лог : Не удалось скопировать файл из временного хранилища!

    '; flush(); } else { $file['tmp_name']=$new_file; $query = "INSERT INTO `import_log` (`Date`, `Title`, `file`, `User_ID`) VALUES ('".date('Y-m-d H:i:s')."', '".mysql_real_escape_string($worksheetTitle)."', '".mysql_real_escape_string($filename)."', '".get_user_by_login($_COOKIE['PHP_AUTH_USER'],1)."');"; $res = SQLExec($query); if ($res) {$inserted = mysql_insert_id();} if (!$inserted){ echo '

    Ошибка запроса обновления логов. (запрос)

    '.($query).'
    '; } else { echo '

    Лог импорта обновлен...

    '; } if ($config['LOG_LIMIT']){ import_clean_log((int)$config['LOG_LIMIT']); } flush(); } } } } if ($lists && !$lists[$i]) { echo '

    Пропускается лист №'.$i.': "'.$worksheetTitle.'"...

    '; continue; } echo '

    Обрабатывается лист №'.$i.': "'.$worksheetTitle.'"...

    '; flush(); $result=import_sheet($aSheet,$fileparams); $was_error = $result['was_error']; } echo 'Импорт завершён'; } function import_sheet(&$aSheet,$fileparams=array()){ $HL=array(); $LH=array(); $params=$fileparams; $dataInit=array(); $SearchFields=array(); $SearchSectionFields=array(); $worksheetTitle = $aSheet->getTitle(); $highestRow = $aSheet->getHighestRow(); // например, 10 $highestColumn = $aSheet->getHighestColumn(); // например, 'F' $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); $cleared_sections=array(); $def_fields=array(); $active_section = 0; if (!$was_error){ $current_row=1; $i=1; $j=0; while ($current_row<=$highestRow){ $row = SheetGetRow($aSheet,$current_row); //if ($current_row == 10) DebugBreak(); if ($row[0] == '#') { $current_row++; continue; } $section_added=false; $empty=true; foreach ($row as $val) { if ($val) {$empty=false; break;}} if ($empty) { $current_row++; continue; } if ($row[0] == '#!') { $new_params = import_get_config($row,$params); if ($new_params['Object_ID'] && $params['Object_ID'] != $new_params['Object_ID']){ $object_struct = getObjectStruct($new_params['Object_ID']); } else { $object_struct = getObjectStruct($params['Object_ID']); } if ($new_params['Section_ID'] && $params['Section_ID'] != $new_params['Section_ID']){ $section_id = array((int)$new_params['SectionID']); $dataInit['Section_ID']=$section_id; } $params = array_merge($params,$new_params); $object_ID=(int)$params['Object_ID']; $dataInit = getObjectInitFields($object_ID); $def_fields=array(); if ($object_struct){ // поля по умолчанию foreach ($object_struct as $fname => $val){ if (isset($params[$fname])) { $def_fields[$fname]=$params[$fname];} } } if ($params['clear_by_params'] && ($params['clean'] || $params['clear'])){ //clean_by_params($params,$current_row,$section_id); } echo '

    ... [строка '.$current_row.'] Настройки обновлены.

    '; flush(); $current_row++; continue; } if ($row[0] == '#@') { import_get_header($row,$HL,$HLfunctions,$LH,$SearchFields,$SearchSectionFields); echo '

    ... [строка '.$current_row.'] Заголовок получен

    '; flush(); $current_row++; continue; } //DebugBreak(); if ($SearchSectionFields || $row[0] == '#>>' || $row[0] == '#>') { $sfields=array(); if ($row[0] == '#>>' || $row[0] == '#>') { $sfields = array('Section_Name' => $row[1]); } else { foreach ($SearchSectionFields as $fld => $colid) { $sfields[$fld]=$row[$colid]; } } //debug_stop(); // DebugBreak(); $section_id = find_section_deep($sfields,($params['Root_Section_ID'] ? $params['Root_Section_ID'] : $params['Section_ID'] )); if ($section_id) { // /DebugBreak(); $res = find_or_create_sobject($object_ID,$section_id,$params['add_handlers_to_section']); $section_object_id=$res['Section_Object_ID']; $section_id=$res['Section_ID']; if (!$SearchSectionFields){ echo '

    ... [строка '.$current_row.'] Активный раздел импорта изменён на '.$section_id.'('.$sfields['Section_Name'].')..

    '; $active_section = $section_id; $active_section_object_id = $section_object_id; } if ($res['handler_added']){ $handler_info=getObjectInfo($object_ID,'Object_Name'); echo '

    ... [строка '.$current_row.'] Добавлен обработчик №'.$section_object_id.'(обьект №'.$object_ID.' "'.$handler_info['Object_Name'].'") в раздел '.$section_id.'('.$sfields['Section_Name'].')..

    '; } flush(); } else { if ($params['allow_add_sections'] ){ $sect = Tree::add_subsection($params['Section_ID'],$sfields['Section_Name'],$object_ID); //добавляем подраздел сразу с обьектом if ($sect ===false){ echo '

    ... [строка '.$current_row.'] Не удалось создть раздел.

    '; flush(); $current_row++; continue; } $section_id=$sect['Section_ID']; $section_object_id=$sect['Section_Object_ID']; $section_added=true; $section=$sect['Section']; echo '

    ... [строка '.$current_row.'] Добавлен новый раздел '.$section['Section_Name'].'` (#'.$section_id.' => #'.$params['Section_ID'].').

    '; flush(); } elseif( $params["allow_add_to_root_section"] && $params['add_handlers_to_section'] && !$params['no_root_handler']) { $section_id=$params['Section_ID']; $res = find_or_create_sobject($object_ID,$section_id,1); $section_object_id=$res['Section_Object_ID']; $section_id=$res['Section_ID']; } else { echo '

    ... [строка '.$current_row.'] Нет раздела для обьекта!.

    '; flush(); $current_row++; continue; } } if ($row[0] == '#>>'){ // очистка раздела по параметрам clean_by_params($params,$current_row,$section_id); } if ($row[0] == '#>>' || $row[0] == '#>'){ $current_row++; continue; } } else { if ($active_section && $active_section_object_id){ $section_id = $active_section; $section_object_id = $active_section_object_id; } else { $section_id = $params['Section_ID']; $section_object_id = $params['Section_Object_ID']; } } if (!($section_id && $section_object_id)) { echo '

    ... [строка '.$current_row.'] Не найден раздел\обработчик для обьекта

    '; flush(); $current_row++; continue; } $action='INSERT'; /* определение действия */ $fields=$def_fields; $record=false; $record_id=false; if ($SearchFields && !$section_added){ $where= ""; foreach ($SearchFields as $sfield => $colid) { $where .= " AND `".$sfield."` = '".mysql_real_escape_string($row[$colid])."' "; } if ($active_section || $section_id) { if ($active_section) { $where .= " AND `Section_ID` = '".$active_section."' "; } else { $where .= " AND `Section_ID` = '".$section_id."' "; } } foreach ($params as $param => $val){ if ($object_struct[$param]) { $where .= " AND `".$param."` = '".$val."' "; } } //DebugBreak(); $objs =getObjects(array('table'=>$object_ID,'where'=>$where,'checked'=>'all'),true); if (count($objs)==1){ $record_id=current(array_keys($objs)); $record=array_pop($objs); if ($section_id && $section_object_id && $section_id == (int)$record['Section_ID'] && $section_object_id==(int)$record['Section_Object_ID']){ $action='UPDATE'; } else { //DebugBreak(); if ($SearchSectionFields && $section_id && $section_object_id && $params['allow_move']){ $fields = array('Section_ID'=>$section_id, 'Section_Object_ID' => $section_object_id); echo '

    ... [строка '.$current_row.'] Добавлен перенос записи №'.$record_id.' из раздела '.$record['Section_ID'].' в '.$section_id.'

    '; $action = 'MOVE'; flush(); // был поиск по секции и нашло, но в записи секция другая } else { $action="UPDATE"; $section_id=$record['Section_ID']; $section_object_id=$record['Section_Object_ID']; } } } elseif (count($objs)){ $found=false; foreach ($objs as $rec_id => $obj){ // поиск из списка по секции и обработчику секции if ($section_id == (int)$obj['Section_ID'] && $section_object_id == (int)$obj['Section_Object_ID']){ $record_id=$rec_id; $record=$obj; $found=true; break; } } if (!$found) { echo '

    ... [строка '.$current_row.'] При поиске найдено больше одной записи.

    '; flush(); $current_row++; continue; } } } if (!$object_struct) { echo '

    ... [строка '.$current_row.'] Отсутствет информация о структуре обьекта

    '; flush(); $current_row++; continue; } if ($params['clear_by_params'] && !$cleared_sections[$section_id] && $param_filter){ // чистка разделов. старое из кредексбанка delete_records_by_section($object_ID,$section_id,$data['Section_Object_ID'],$param_filter); $cleared_sections[$section_id]=1; } foreach ($HL as $colid => $fieldname){ // сбор полей без функций if (!$object_struct[$fieldname] && $fieldname != 'Checked' ) {continue;} if ($HLfunctions[$colid]) continue; $fields[$fieldname]=import_format_field($fieldname,$row[$colid],$object_ID,$action); if ($fields[$fieldname] === null) unset($fields[$fieldname]); } if ($HLfunctions) { foreach ($HLfunctions as $colid => $func){ if (!$object_struct[$func['field']]) {continue;} $val = $row[$colid]; switch ($func['flag']){ // список функций экспорта case 'logic' : $eq = explode('=',$func['argument']); if (count($eq)!= 2) { $val=''; break; } if ($fields[$eq[0]] == $eq[1]) { $val = $row[$colid]; } else { $val=''; } break; case 'NU' : //if ($action != 'UPDATE') DebugBreak(); if ($action == 'UPDATE') $skip = true; break; case 'G': case 'G_IF': $rsearch = array(); $rreplace = array(); if ($func['flag'] == 'G'){ if (!$val) { $val = $func['argument']; } else break; } if ($func['flag'] == 'G_IF' ) { if ($val){ $rsearch[] = '{value}'; $rreplace[] = $val; $val = $func['argument']; } else break; } if ($func['replaces'] && is_array($func['replaces'])){ foreach ($func['replaces'] as $replace){ if (in_array('{'.$replace.'}',$rsearch)) continue; if (isset($fields[$replace])) { $rreplace[] = $fields[$replace]; } elseif (isset($params[$replace])) { $rreplace[] = $params[$replace]; } else { $rreplace[] =''; } $rsearch[] = '{'.$replace.'}'; } $val = str_replace($rsearch,$rreplace,$val); } break; } if (!$skip) $fields[$func['field']]=import_format_field($func['field'],$val,$object_ID); $skip = false; } } //if ($current_row == 7) DebugBreak(); switch ($action) { case 'INSERT' : $data=array_merge($dataInit,$fields); $data['Section_ID']=$section_id; $data['Section_Object_ID']=$section_object_id; $added = addRecordChecking($object_ID,$section_id,$section_object_id,$data,$params['show_queries']); if (check_true($added)){ if ($params['show_queries'] && !$params['hide_success_queries']) { echo '

    ... [строка '.$current_row.'] Добавлена запись. (запрос)

    '.$added.'
    '; } else { echo '

    ... [строка '.$current_row.'] Добавлена запись.

    '; } } else { if ($params['show_queries']) { echo '

    ... [строка '.$current_row.'] Ошибка добавления записи №'.$record_id.' (запрос)

    '.substr($added,1).'
    '; } else { echo '

    ... [строка '.$current_row.'] Ошибка добавления записи №'.$record_id.'

    '; } } break; case 'UPDATE' : case 'MOVE' : if (!$fields) { echo '

    ... s[строка '.$current_row.'] Пустая запись

    '; flush(); $current_row++; continue; } if (!$record_id || !$record){ echo '

    ... [строка '.$current_row.'] Неожиданная ошибка. Оригинальная запись не загружена

    '; flush(); $current_row++; continue; } $fields['Data_ID']=$record_id; $updated=SQLUpdate('Data'.$object_ID,$fields,"Data_ID",$params['show_queries']); if (check_true($updated)){ if ($params['show_queries'] && !$params['hide_success_queries']){ echo '

    ... [строка '.$current_row.'] Обновлена запись №'.$record_id.' (запрос)

    '.substr($updated,1).'
    '; } else { echo '

    ... [строка '.$current_row.'] Обновлена запись №'.$record_id.'

    '; } } else { if ($params['show_queries']){ echo '

    ... [строка '.$current_row.'] Не удалось обновить запись №'.$record_id.' обьекта №'.$object_ID.' (Запрос)

    '.substr($updated,1).'
    '; } else { echo '

    ... [строка '.$current_row.'] Не удалось обновить запись №'.$record_id.' обьекта №'.$object_ID.'

    '; } } break; default : //DebugBreak(); break; } flush(); $current_row++; } // row } //DebugBreak(); return true; } /* флаги SS - поиск по названию раздела и полю товара SN - поиск только по разделу S - поиск по полю товара */ function import_get_header($row,&$HL,&$HLfunctions,&$LH,&$SearchFields,&$SearchSectionFields){ $pattern = '/^(.+?)\[([a-zA-Z,0-9,_,\-]+)\(?(.*?)\)?\]$/'; $replaces_pattern = '/\{([a-z,A-Z,0-9]+)\}/'; $HL = array(); $HLfunctions = array(); $LH=array(); $SearchFields=array(); $SearchSectionFields=array(); $i=0; foreach ($row as $rowid => $cell) { $i++; if ($i==1) continue; preg_match($pattern, $cell, $matches); if ($matches) { $flag = $matches[2]; //if ($matches[1]=='store') DebugBreak(); if ($flag=='SS' || $flag=='SN'){ if ($matches[1] == 'Title') { $SearchSectionFields['Section_Name']=$rowid; } else { $SearchSectionFields[$matches[1]]=$rowid; } } if ($flag == 'G' || $flag == 'G_IF'){ preg_match_all($replaces_pattern, $matches[3], $rfound,PREG_PATTERN_ORDER); if (is_array($rfound[1])) { $arr=array(); foreach ($rfound[1] as $val){ if ($val != '') $arr[]=$val; } $rfound = array_unique($arr); } else { $rfound = false; } $HLfunctions[$rowid]=array('flag'=> $flag,'argument' => $matches[3],'field'=>$matches[1],'replaces'=>$rfound); continue; } if ($flag == 'S' || $flag == 'SS') { $SearchFields[$matches[1]]=$rowid; } else { $HLfunctions[$rowid]=array('flag'=> $flag,'argument' => $matches[3],'field'=>$matches[1]); } if ($flag != 'SN') { $HL[$rowid]=$matches[1]; $LH[$matches[1]]=$rowid; } } else { $HL[$rowid]=$cell; $LH[$cell]=$rowid; } } } function import_get_config($row,&$params){ if (!is_array($row)) return false; //$params=array(); for ($i=1; $i $valstruct) { if ($valstruct['Value'] == $val || $valstruct['Name'] == $val) { return $rval; } } return 0; break; case 5 : // bool if ($action == 'UPDATE'){ if ($val == '') return null; } break; case 7 : // float $val=str_replace(array(' ',','),array('','.'),$val); } return $val; } function clean_by_params(&$params,$current_row=0,$active_section_id=0){ global $LinkID; unset($params['clean']); if (!($obj_id = $params['Object_ID'])){ echo '

    ... [строка '.$current_row.'] Очистка обьектов невозможна - не указан обработчик.

    '; return false; }; $struct = getObjectStruct($obj_id); if (!$struct) { echo '

    ... [строка '.$current_row.'] Очистка обьектов невозможна - обработчик отсутствует.

    '; return false; } $cond = array(); if ($active_section_id) $cond['Section_ID']=$active_section_id; foreach ($params as $param => $value){ if ($struct[$param]){ $cond[$param]=$value; } } if (!$cond && !$params['allow_clear_without_params']){ echo '

    ... [строка '.$current_row.'] Запрещено проводить чистку записей без условий для фильтра.

    '; return false; } $query = "DELETE FROM `Data".$obj_id."`"; if ($cond){ $query .= " WHERE 1 "; foreach ($cond as $param => $value){ if ($param == 'Date') { $query .= " AND DATE(`Date`) = '".mysql_real_escape_string(current(explode(' ',$value)))."' "; } else { $query .= " AND `".$param."` = '".mysql_real_escape_string($value)."' "; } } } $query .= ';'; $r= mysql_query($query,$LinkID); if (!$r) { echo '

    ... [строка '.$current_row.'] Очистка не удалась - ошибка запроса.

    '; return false; } $affected = mysql_affected_rows($LinkID); if ($params['show_queries'] && !$params['show_delete_query']){ echo '

    ... [строка '.$current_row.'] Чистка записей. Удалено : '.$affected.' (Запрос)

    '.$query.'
    '; } else { echo '

    ... [строка '.$current_row.'] Чистка записей. Удалено : '.$affected.'

    '; if ($params['show_delete_query']) { echo '

    ... [строка '.$current_row.'] Запрос : '.$query.'

    '; } } flush(); return true; } function check_true($a){ if (is_bool($a)) return $a; if (is_string($a)) { if ($a[0] == '0') { return false; } } return true; } function import_clean_log($offset){ global $CMS_IMPORT_PATH,$DOCUMENT_ROOT; if ($CMS_IMPORT_PATH === null) { $CMS_IMPORT_PATH= '/cache/import/'; } $import_path = str_replace('//','/',$DOCUMENT_ROOT.$CMS_IMPORT_PATH); if (!$offset) return false; $query = "SELECT `ID`,`file` FROM `import_log` ORDER BY `Date` DESC LIMIT 100500 OFFSET ".$offset.";"; $log = SQLSelect($query); if (!$log || !is_array($log)) return false; $deleted_files=0; $ondelete=array(); for ($i=0; $iЧистка лога. Удалено : '.$affected.', удалено файлов : '.$deleted_files.'

    '; flush(); } ?>PK9[ g,, css/style.cssnuW+A .import { border : 1px dashed red;} .LV_valid { color:#00CC00; } .LV_invalid {color:#CC0000 !important;} .LV_validation_message{ font : 12px normal Arial !important; float : left;} .LV_valid_field, input.LV_valid_field:hover,input.LV_valid_field:active,textarea.LV_valid_field:hover, textarea.LV_valid_field:active, .fieldWithErrors input.LV_valid_field, .fieldWithErrors textarea.LV_valid_field {} .LV_invalid_field,textarea.LV_invalid_field:hover,textarea.LV_invalid_field:active,.fieldWithErrors textarea.LV_invalid_field {border: 1px solid #CC0000;} PK9[&import_manual.txtnuW+A/* >>> 1ый СТОЛБЕЦ # - комментарий #! - ввод параметров в импорт (в.т. ч смены разделов, обработчиков, разрешений на действия) #@ - Поля импорта и функции #> - Смена активного раздела (поиск по имени от корневого раздела (Root_Section_ID)) #>> - то же самое + чистка по текущим параметрам >>>> ФУНКЦИИ ПОЛЕЙ fname[S,SS,logic(ur=1)] SS - поиск по названию раздела и полю товара S - поиск записи по этому полю и, если найдено, обновление записи SN - поиск только по разделу NU - No Update. В режиме обновления поле не участвует, только при добавлении записи G - функция сборки строки, содержащая шаблон такой строки с необходимыми заменами.. пример: image[G(/media/catalog/{vendor}/{model}.jpg)] поле vendor = sony, поле model = cx999, само поле image ПУСТОЕ. вернёт /media/catalog/sony/cx999.jpg примечание: если значение указано явно, оно его и вернёт. Фактически алгоритм сборки работает только если в строке импорта в этом поле пустая строка) G_IF - функция сборки строки, аналогичная G. Собирает строку по строке-шаблону, только если поле непустое и подставит значение этого поля строки импорта в шаблон в переменную {value} пример: image[G(/media/catalog/{vendor}/{value}.jpg)] поле vendor = sony, само поле image = 'xrs-500'. вернёт /media/catalog/sony/xrs-500.jpg если поле image строки импорта пусто, вернёт пустое поле примечание : G и G_IF пытаются использовать не только поля текущей строки импорта, но и настройки импорта, заданные изначально или в строке с пометкой #! >>>> ВАЖНЫЕ ПАРАМЕТРЫ Object_ID:195 - ID обработчика(смена обьекта) Root_Section_ID:1750 - точка отсчёта по разделам filename_params=0 - параметры берутся из имени файла при помощи функции get_filename_params (надо будет её отдельно вынести потом) add_handlers_to_section=1 (разрешение добавление обработчиков в разделы, где их нет(при создании разделов)) clear_by_params=1 (разрешить чистку записей в разделе по активнымс параметрам) allow_add_to_root_section=1 (разрешить добавлять разделы в корневой раздел при пустом поиске по разделам) allow_clear_without_params=0 (разрешает проводить чистку при пустых параметрах(удаление всего)) lists= 1,2,3 (принудительно список листов excel-я. Если пусто - то обрабатываются все) hide_success_queries=0 (скрыть удачные запросы) show_queries=1 (показывать запросы) show_delete_query=0 (всегда показывать запросы удаления) -||- - ознчает оставить поле без изменений (явно) */PK9[kإ js/admin.jsnuW+Avar clang={ "fileFailure" : "Необходимо указать файл" } var postfix = ""; $(function(){ //debugger; var xdate = new Date(); var year = xdate.getFullYear(); var month = xdate.getMonth()+1; if (month < 10) {month = '0'+month;} var day = xdate.getDate(); if (day < 10) {day = '0'+day;} var xdate_text = year+'-'+month+'-'+day; $('.std-date-input').each(function(){ $(this).datepicker({ numberOfMonths: 1, dateFormat: 'yy-mm-dd', showOn: "both", buttonImage: "http://"+document.location.host+"/cms/admin/_images/calendar.png", buttonImageOnly: true, minDate: 0, setDate : xdate }); //$(this).attr('value',xdate_text); }); if ($('#load_file').size()){ var as_file = new LiveValidation('as_import_file'+postfix, {validMessage:'', onlyOnSubmit: false}); as_file.add(Validate.Presence, {failureMessage:clang.fileFailure}); } $('#show_dev_params').toggle(function(){ $(this).text('Скрыть системные умолчания'); $('.dev-params').slideDown(); },function(){ $(this).text('Показать системные умолчания'); $('.dev-params').slideUp(); }); $('#show_add_params').toggle(function(){ $(this).text('Скрыть дополнительные настройки'); $('.add-params').slideDown(); },function(){ $(this).text('Показать дополнительные настройки'); $('.add-params').slideUp(); }); $('.run-dbg a').live('click',function(){ var block = $(this).parent(); block = $(' + div',block); //debugger; if (!block.size()) { return false; } if (block.hasClass('showed')){ block.removeClass('showed'); block.slideUp(); } else { block.addClass('showed'); block.slideDown(); } }); });PK9[ΞL function.inc.phpnuW+APK9[,function.ajax.inc.phpnuW+A PK9[x index.phpnuW+APK9[pJ9admin/index.phpnuW+A"._LANG_MODULES."".$Delimeter._LANG_IMPORT; $Title2 = _LANG_IMPORT; if (!($perm->isSupervisor() || $perm->isGuest())) { BeginHtml($Title2, $Title2, "http://" . $DOC_DOMAIN . "/settings/modules/"); print $NO_RIGHTS_MESSAGE; EndHtml(); exit; } LoadModuleEnv(); if (!isset($step)) $step = 1; BeginHtml($Title2, $Title1, "http://" . $DOC_DOMAIN . "/settings/modules/"); $ROOT_URL = 'http://'.$_SERVER['HTTP_HOST'].'/'; $rurl = explode('/',$_SERVER['REQUEST_URI']); array_pop($rurl);array_pop($rurl); $MODULE=array_pop($rurl); $MODULE_ROOT = $DOCUMENT_ROOT.'cms/modules/'.$MODULE.'/'; $MODULE_URL = $ROOT_URL.'cms/modules/'.$MODULE.'/'; echo ''; echo ''; $action = 'view'; if ($_FILES['import_file']) { $action='post-file'; } echo '
    '; switch ($action) { case 'view' : echo get_start_import_form(); break; case 'post-file' : echo get_process_file_import(); break; } echo '
    '; EndHtml(); ?>PK9[[ ++function.back.inc.phpnuW+APK9[ g,, pcss/style.cssnuW+APK9[&٪import_manual.txtnuW+APK9[kإ js/admin.jsnuW+APK9[ΞL tfunction.inc.phpnuW+APK9[,function.ajax.inc.phpnuW+APK9[x index.phpnuW+APK9[pJ9Badmin/index.phpnuW+APK{j