NodeImportFile.php in Node export 8
File
src/Form/NodeImportFile.php
View source
<?php
namespace Drupal\node_Export\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class NodeImportFile extends FormBase {
public function getFormId() {
return 'node_import_file';
}
public function buildForm(array $form, FormStateInterface $form_state) {
$form['myfile'] = [
'#title' => $this
->t('Upload myfile'),
'#type' => 'file',
];
$form['submit'] = [
'#type' => 'submit',
'#value' => 'Import',
];
return $form;
}
public function validateForm(array &$form, FormStateInterface $form_state) {
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$validators = [
'file_validate_extensions' => [
'json',
],
];
$file = file_save_upload('myfile', $validators, FALSE, 0);
if (!$file) {
return;
}
else {
$data = file_get_contents($file
->getFileUri());
}
$nodes = json_decode($data, TRUE);
$batch = [
'title' => $this
->t('Importing Nodes...'),
'operations' => [],
'init_message' => $this
->t('Imporitng'),
'progress_message' => $this
->t('Processed @current out of @total.'),
'error_message' => $this
->t('An error occurred during processing'),
'finished' => '\\Drupal\\node_export\\NodeImport::nodeImportFinishedCallback',
];
foreach ($nodes as $node) {
$batch['operations'][] = [
'\\Drupal\\node_export\\NodeImport::nodeImport',
[
$node,
],
];
}
batch_set($batch);
$this
->messenger()
->addStatus($this
->t('Node has been imported succesfully.'));
}
}