class ContentImport in Content Import 8.9
Same name and namespace in other branches
- 8 src/Form/ContentImport.php \Drupal\contentimport\Form\ContentImport
- 8.3 src/Form/ContentImport.php \Drupal\contentimport\Form\ContentImport
- 8.4 src/Form/ContentImport.php \Drupal\contentimport\Form\ContentImport
Configure Content Import settings for this site.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
- class \Drupal\contentimport\Form\ContentImport
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of ContentImport
1 string reference to 'ContentImport'
File
- src/
Form/ ContentImport.php, line 15
Namespace
Drupal\contentimport\FormView source
class ContentImport extends ConfigFormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'contentimport';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'contentimport.settings',
];
}
/**
* Content Import Form.
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$contentTypes = ContentImportController::getAllContentTypes();
$form['contentimport_contenttype'] = [
'#type' => 'select',
'#title' => $this
->t('Select Content Type'),
'#options' => $contentTypes,
'#default_value' => $this
->t('Select'),
'#required' => TRUE,
'#description' => $this
->t('Select content type to be import'),
];
$form['contentimport_importtype'] = [
'#type' => 'select',
'#title' => $this
->t('Select Import Type'),
'#options' => [
'Select',
'Create New content',
'Update existing content',
],
'#default_value' => $this
->t('Select'),
'#required' => TRUE,
'#description' => $this
->t('Select import type to create/update node.'),
'#ajax' => [
'event' => 'change',
'callback' => '::contentImportcallback',
'wrapper' => 'content_import_fields_change_wrapper',
'progress' => [
'type' => 'throbber',
'message' => NULL,
],
],
];
$form['file_upload'] = [
'#type' => 'file',
'#title' => $this
->t('Import CSV File'),
'#size' => 40,
'#description' => $this
->t('Select the CSV file to be imported.'),
'#required' => FALSE,
'#autoupload' => TRUE,
'#upload_validators' => [
'file_validate_extensions' => [
'csv',
],
],
];
$form['loglink'] = [
'#type' => 'link',
'#title' => $this
->t('Check Log..'),
'#url' => Url::fromUri('base:sites/default/files/contentimportlog.txt'),
'#description' => $this
->t('Upload CSV file only with delimter ","'),
];
$form['import_ct_markup'] = [
'#suffix' => '<div id="content_import_fields_change_wrapper"></div>',
];
$form['submit'] = [
'#type' => 'submit',
'#value' => $this
->t('Import'),
'#button_type' => 'primary',
];
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
$form_values = $form_state
->getValues();
if ($form_values['contentimport_contenttype'] == 'none' || $form_values['contentimport_importtype'] == 0) {
$form_state
->setErrorByName('contentimport_contenttype', $this
->t('Content type or Import type missing. Please select.'));
}
else {
$this->file = file_save_upload('file_upload', $form['file_upload']['#upload_validators'], FALSE, 0);
if (!$this->file) {
$form_state
->setErrorByName('file_upload', $this
->t('Provided file is not a CSV file or is corrupted.'));
}
}
}
/**
* Content Import Sample CSV Creation.
*/
public function contentImportcallback(array &$form, FormStateInterface $form_state) {
global $base_url;
$ajax_response = new AjaxResponse();
$content_type = $form_state
->getValue('contentimport_contenttype');
$import_type = $form_state
->getValue('contentimport_importtype');
$fields = get_fields($content_type);
$fieldArray = $fields['name'];
$content_type_fields = $import_type == 2 ? 'nodeid,title,langcode' : 'title,langcode';
foreach ($fieldArray as $val) {
$content_type_fields .= $val . ',';
}
$content_type_fields = substr($content_type_fields, 0, -1);
$sampleFile = $content_type . '.csv';
$handle = fopen("sites/default/files/" . $sampleFile, "w+") or die("There is no permission to create log file. Please give permission for sites/default/file!");
fwrite($handle, $content_type_fields);
$result = '<a class="button button--primary" href="' . $base_url . '/sites/default/files/' . $sampleFile . '">Click here to download Sample CSV</a>';
$ajax_response
->addCommand(new HtmlCommand('#content_import_fields_change_wrapper', $result));
return $ajax_response;
}
/**
* Content Import Form Submission.
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$content_type = $form_state
->getValue('contentimport_contenttype');
$import_type = $form_state
->getValue('contentimport_importtype');
// import_node($this->file, $content_type, $import_type);.
$batch = [
'title' => $this
->t('Importing Content'),
'operations' => [
[
'import_node',
[
$this->file,
$content_type,
$import_type,
],
],
],
'init_message' => $this
->t('Importing...please wait'),
'progress_message' => $this
->t('Processed @current out of @total.'),
'finished' => 'import_success',
];
batch_set($batch);
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigFormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides FormBase:: |
13 |
ConfigFormBase:: |
public | function | Constructs a \Drupal\system\ConfigFormBase object. | 11 |
ConfigFormBaseTrait:: |
protected | function | Retrieves a configuration object. | |
ContentImport:: |
public | function |
Content Import Form. Overrides ConfigFormBase:: |
|
ContentImport:: |
public | function | Content Import Sample CSV Creation. | |
ContentImport:: |
protected | function |
Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait:: |
|
ContentImport:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
ContentImport:: |
public | function |
Content Import Form Submission. Overrides ConfigFormBase:: |
|
ContentImport:: |
public | function |
Form validation handler. Overrides FormBase:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |