Your IP : 18.221.213.201
<?php
IncludeModuleLangFile(__FILE__);
$storage = 'fs';
if(class_exists('\Bitrix\Main\Entity\DataManager'))
{
$profileDB = new \Bitrix\KdaImportexcel\ProfileTable();
$conn = $profileDB->getEntity()->getConnection();
if($conn->getType()=='mysql')
{
$storage = 'db';
}
}
if($storage=='db')
{
class CKDAImportProfile extends CKDAImportProfileDB {}
if(is_callable(array($conn, 'queryExecute')))
{
$conn->queryExecute('SET wait_timeout=900');
}
}
else
{
class CKDAImportProfile extends CKDAImportProfileFS {}
}
class CKDAImportProfileAll {
protected static $instance = null;
private $importTmpDir = null;
private $pid = null;
private $errors = array();
private $params = array();
public static function getInstance()
{
if (!isset(static::$instance))
static::$instance = new static();
return static::$instance;
}
public function GetErrors()
{
if(!isset($this->errors) || !is_array($this->errors)) $this->errors = array();
return implode('<br>', array_unique($this->errors));
}
public function ShowProfileList($fname)
{
$arProfiles = $this->GetList();
?><select name="<?echo $fname;?>" id="<?echo $fname;?>" onchange="EProfile.Choose(this)" style="max-width: 350px;"><?
?><option value=""><?echo GetMessage("KDA_IE_NO_PROFILE"); ?></option><?
?><option value="new" <?if($_REQUEST[$fname]=='new'){echo 'selected';}?>><?echo GetMessage("KDA_IE_NEW_PROFILE"); ?></option><?
foreach($arProfiles as $k=>$profile)
{
?><option value="<?echo $k;?>" <?if(strlen($_REQUEST[$fname])>0 && strval($_REQUEST[$fname])===strval($k)){echo 'selected';}?>><?echo $profile; ?></option><?
}
?></select><?
}
public function Apply(&$settigs_default, &$settings, $ID)
{
$arProfile = $this->GetByID($ID);
if(!is_array($settigs_default) && is_array($arProfile['SETTINGS_DEFAULT']))
{
$settigs_default = $arProfile['SETTINGS_DEFAULT'];
}
if(!is_array($settings) && is_array($arProfile['SETTINGS']))
{
$settings = $arProfile['SETTINGS'];
}
if(is_array($settings))
{
if($settings['ADDITIONAL_SETTINGS'])
{
foreach($settings['ADDITIONAL_SETTINGS'] as $k=>$v)
{
if($v && !is_array($v))
{
$v = CUtil::JsObjectToPhp($v);
}
if(!is_array($v)) $v = array();
$settings['ADDITIONAL_SETTINGS'][$k] = $v;
}
}
}
$instance = static::getInstance();
$instance->SetParams($settigs_default);
}
public function ApplyExtra(&$extrasettings, $ID)
{
$arProfile = $this->GetByID($ID);
if(!is_array($extrasettings) && is_array($arProfile['EXTRASETTINGS']))
{
$extrasettings = $arProfile['EXTRASETTINGS'];
}
}
public function UpdateFields($ID, $arFields)
{
return false;
}
public function GetFieldsByID($ID)
{
return array();
}
public function SetImportParams($pid, $tmpdir, $arParams)
{
$this->pid = $pid;
$this->importTmpDir = $tmpdir;
$this->fileElementsId = $this->importTmpDir.'elements_id.txt';
$this->fileOffersId = $this->importTmpDir.'offers_id.txt';
}
public function SaveElementId($ID, $type)
{
$fn = $this->fileElementsId;
if($type=='O') $fn = $this->fileOffersId;
$handle = fopen($fn, 'a');
fwrite($handle, $ID."\r\n");
fclose($handle);
return true;
}
public function GetLastImportId($type)
{
if($type=='E') return CKDAImportUtils::SortFileIds($this->fileElementsId);
elseif($type=='O') return CKDAImportUtils::SortFileIds($this->fileOffersId);
}
public function GetUpdatedIds($type, $first)
{
if($type=='E') return CKDAImportUtils::GetPartIdsFromFile($this->fileElementsId, $first);
elseif($type=='O') return CKDAImportUtils::GetPartIdsFromFile($this->fileOffersId, $first);
}
public function IsAlreadyLoaded($ID, $type)
{
$fn = $this->fileElementsId;
if($type=='O') $fn = $this->fileOffersId;
$find = false;
if($fn && file_exists($fn))
{
$handle = fopen($fn, 'r');
while(!feof($handle) && !$find)
{
$buffer = trim(fgets($handle, 128));
if($buffer && ($ID == (int)$buffer))
{
$find = true;
}
}
fclose($handle);
}
return $find;
}
public function SetParams($params=array())
{
$this->params = $params;
}
public function GetParam($name)
{
if(isset($this->params[$name])) return $this->params[$name];
return null;
}
public function OnStartImport()
{
return false;
}
public function OnEndImport($filename, $arParams)
{
return array();
}
public function OutputBackup()
{
return false;
}
public function RestoreBackup($arFiles, $arParams)
{
return false;
}
}