@Александр Марков,
Я переписал свой процессор таким образом:
<?php
/**
* Create an User
*/
class sxUserImportProcessor extends modObjectCreateProcessor {
public $objectType = 'sxUser';
public $classKey = 'sxUser';
public $languageTopics = array('sx');
public $permission = 'new_document';
/**
* @return bool
*/
public function beforeSet() {
$path = $this->modx->getOption('base_path');
$file_dir = $path . $this->getProperty('import_source'); // Путь к файлу
$file = file_get_contents($file_dir);
$lines = explode(PHP_EOL, $file);
foreach ($lines as $value) {
$this->setProperty('email', $value);
$processorProps = array(
'email' => $value,
'usergroup_id' => $this->getProperty('usergroup_id')
);
$otherProps = array(
// Здесь указываем где лежат наши процессоры
'processors_path' => $this->modx->getOption('base_path') . 'core/components/sx/processors/'
);
$response = $this->modx->runProcessor('mgr/user/create', $processorProps, $otherProps);
//print_r($response->response);
}
return !$this->hasErrors();
}
}
return 'sxUserImportProcessor';
Теперь импорт данных происходит хорошо, но последние в файле данные импортируются 2 раза. Я так понимаю из-за того, что сначала происходит импорт через процессор, вызываемый в цикле, а затем последние данные заносятся через return 'sxUserImportProcessor'; ? Как исправить подскажите пожалуйста.
Может быть вообще не нужен здесь процессор sxUserImportProcessor, а просто скриптом все оформить в котором будет вызываться другой процессор?