Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/helpers/csv_helper.php
Show All 26 Lines | |||||
var $separator_mapping = Array(0 => "\n", 1 => "\r\n"); | var $separator_mapping = Array(0 => "\n", 1 => "\r\n"); | ||||
function ExportStep() | function ExportStep() | ||||
{ | { | ||||
$export_data = $this->Application->RecallVar('export_data'); | $export_data = $this->Application->RecallVar('export_data'); | ||||
$export_rand = $this->Application->RecallVar('export_rand'); | $export_rand = $this->Application->RecallVar('export_rand'); | ||||
$get_rand = $this->Application->GetVar('export_rand'); | $get_rand = $this->Application->GetVar('export_rand'); | ||||
/** @var FileHelper $file_helper */ | |||||
$file_helper = $this->Application->recallObject('FileHelper'); | $file_helper = $this->Application->recallObject('FileHelper'); | ||||
/* @var $file_helper FileHelper */ | |||||
if ( $export_data && $export_rand == $get_rand ) { | if ( $export_data && $export_rand == $get_rand ) { | ||||
$export_data = unserialize($export_data); | $export_data = unserialize($export_data); | ||||
$first_step = false; | $first_step = false; | ||||
} | } | ||||
else { | else { | ||||
// first step | // first step | ||||
$export_data = Array (); | $export_data = Array (); | ||||
Show All 15 Lines | |||||
$file = fopen($export_data['file_name'], $first_step ? 'w' : 'a'); | $file = fopen($export_data['file_name'], $first_step ? 'w' : 'a'); | ||||
$prefix_elems = preg_split('/\.|_/', $export_data['prefix'], 2); | $prefix_elems = preg_split('/\.|_/', $export_data['prefix'], 2); | ||||
$grids = $this->Application->getUnitOption($prefix_elems[0], 'Grids'); | $grids = $this->Application->getUnitOption($prefix_elems[0], 'Grids'); | ||||
$grid_config = $grids[$export_data['grid']]['Fields']; | $grid_config = $grids[$export_data['grid']]['Fields']; | ||||
$list_params = Array ('per_page' => $export_data['step'], 'grid' => $export_data['grid']); | $list_params = Array ('per_page' => $export_data['step'], 'grid' => $export_data['grid']); | ||||
/** @var kDBList $list */ | |||||
$list = $this->Application->recallObject(rtrim(implode('.', $prefix_elems), '.'), $prefix_elems[0] . '_List', $list_params); | $list = $this->Application->recallObject(rtrim(implode('.', $prefix_elems), '.'), $prefix_elems[0] . '_List', $list_params); | ||||
/* @var $list kDBList */ | |||||
$list->SetPage($export_data['page']); | $list->SetPage($export_data['page']); | ||||
$list->Query(); | $list->Query(); | ||||
$list->GoFirst(); | $list->GoFirst(); | ||||
$picker_helper = new kColumnPickerHelper(rtrim(implode('.', $prefix_elems), '.'), $export_data['grid']); | $picker_helper = new kColumnPickerHelper(rtrim(implode('.', $prefix_elems), '.'), $export_data['grid']); | ||||
$grid_config = $picker_helper->apply($grid_config); | $grid_config = $picker_helper->apply($grid_config); | ||||
▲ Show 20 Lines • Show All 180 Lines • ▼ Show 20 Line(s) | |||||
return true; | return true; | ||||
} | } | ||||
function ImportStep() | function ImportStep() | ||||
{ | { | ||||
$import_data = unserialize($this->Application->RecallVar('import_data')); | $import_data = unserialize($this->Application->RecallVar('import_data')); | ||||
$prefix_elems = preg_split('/\.|_/', $import_data['prefix'], 2); | $prefix_elems = preg_split('/\.|_/', $import_data['prefix'], 2); | ||||
/** @var kDBItem $object */ | |||||
$object = $this->Application->recallObject($prefix_elems[0].'.-csvimport', $prefix_elems[0], Array('skip_autoload' => true, 'populate_ml_fields' => true)); | $object = $this->Application->recallObject($prefix_elems[0].'.-csvimport', $prefix_elems[0], Array('skip_autoload' => true, 'populate_ml_fields' => true)); | ||||
/* @var $object kDBItem */ | |||||
$file = fopen($import_data['file'], 'r'); | $file = fopen($import_data['file'], 'r'); | ||||
$eof = false; | $eof = false; | ||||
// skipping lines that has been already imported | // skipping lines that has been already imported | ||||
for($i = 0; $i < $import_data['lines_processed'] + 1; $i++) { | for($i = 0; $i < $import_data['lines_processed'] + 1; $i++) { | ||||
if(feof($file)) break; | if(feof($file)) break; | ||||
fgets($file, 8192); | fgets($file, 8192); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 103 Lines • Show Last 20 Lines |