Добрый день. Делаю компонент, в котором одна из кнопок вызывает окно импорта данных из csv в таблицу БД. В одном поле выбирается файл (этот путь потом передается в процессор), а в другом поле выбирается второе необходимое для импорта значение (оно статично для всех данных импорта.).
Проблема в том, что мой процессор по итогу заносит в БД лишь одно значение - причем либо первое, либо последнее. Подскажите, где у меня ошибка, и как мне сделать выполнение моего процессора в цикле, чтобы все данных заносились? Вот код моего процессора:
<?php
/**
* Import an User
*/
class sxUserCreateProcessor extends modObjectCreateProcessor {
public $objectType = 'sxUser';
public $classKey = 'sxUser';
public $languageTopics = array('sx');
public $permission = 'new_document';
/**
* @return bool
*/
public function prepareQueryBeforeCount(xPDOQuery $c)
{
$c->innerJoin('sxUserGroup', 'sxUserGroup', 'sxUserGroup.id = sxUser.usergroup_id');
$c->select($this->modx->getSelectColumns('sxUser', 'sxUser'));
$c->select('sxUserGroup.name as group_name');
if ($usergroup_id = $this->getProperty('usergroup_id')) {
if (!empty($usergroup_id)) {
$c->where(array('sxUserGroup.usergroup_id' => $usergroup_id));
}
}
return $c;
}
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 $key => $value) {
$this->setProperty('email', $value);
return true;
}
return !$this->hasErrors();
}
}
return 'sxUserCreateProcessor';