Импорт дефольтных данных в базу данных modExtra
        Всем привет. Подскажите, как через resolvers при установке пакета добавлять данные в таблицы созданные через схему xPDO. Может есть какой-то пример? Кто-то уже делал такое?    
    
    
                                                                                
            Комментарии: 3
                Я тупо в ресолвере через newObject добавляю. Если есть лучше вариант, то будет интересно узнать.
resolve.default_fields.php
                    resolve.default_fields.php
/** @var xPDOTransport $transport */
/** @var array $options */
/** @var modX $modx */
if ($transport->xpdo) {
    $modx =& $transport->xpdo;
	/** @var array $options */
	switch ($options[xPDOTransport::PACKAGE_ACTION]) {
		case xPDOTransport::ACTION_INSTALL:
			$fields = [
				[
					'name'=>'res_id',
					'label'=>'Мероприятие',
					'dbtype'=>'int',
					'precision'=>10,
					'phptype'=>'integer',
					'xtype'=>'tevent-univers-combo',
					'sort'=>1,
					'validate'=>'required',
					'select_query'=>
'{
    "parents":"0",
    "template":"1"
}',
					'filter'=>true,
					'active'=>true,
				],
///еще поля
			];
			foreach($fields as $field){
				if(!$in_field = $modx->getObject('tEventField',['name'=>$field['name']])){
					if($in_field = $modx->newObject('tEventField')){
						$in_field->fromArray($field);
						if(!$in_field->save()) $modx->log(xPDO::LOG_LEVEL_ERROR, "[tEvent] field {$field['name']} not add!");
					}
				}
			}
			$modx->log(xPDO::LOG_LEVEL_INFO, '[tEvent] Successfully add Default fields!');
			break;
	}
}            
                А сам ресолвер подключается в build.php? Или по умолчанию скрипт проходится по всем файлам из папки resolvers?            
                    
                Я в старом modExtra делал. Там в build.config.php ресолверы подключаются
В новом modExtra build.php
А вы как данные в базу подключаете? Или еще не подключаете?
                    $BUILD_RESOLVERS = array(
    'tables',
    'chunks',
    'default_fields',
    //'setup',
    //'office',
);Главное после tables его включить. В tables сами таблицы создаются.В новом modExtra build.php
// Add resolvers into vehicle
		$resolvers = scandir($this->config['resolvers']);
		
		foreach ($resolvers as $resolver) {
			if (in_array($resolver[0], ['_', '.'])) {
				continue;
			}
			if ($vehicle->resolve('php', ['source' => $this->config['resolvers'] . $resolver])) {
				$this->modx->log(modX::LOG_LEVEL_INFO, 'Added resolver ' . preg_replace('#\.php$#', '', $resolver));
			}
		}Ресолверы сами подключаются из папки. Наверно их стоит переименовать 1tables.php и т.д. Может сработает. Проверять надо.А вы как данные в базу подключаете? Или еще не подключаете?
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.