function simple_node_importer_form_alter in Simple Node Importer 8
Same name and namespace in other branches
- 7 simple_node_importer.module \simple_node_importer_form_alter()
Implements hook_form_alter().
File
- ./
simple_node_importer.module, line 143 - Simple node importer module file.
Code
function simple_node_importer_form_alter(&$form, FormStateInterface &$form_state, $form_id) {
if ($form_id == 'node_simple_node_form') {
// Set the session variable to false.
$sessionVariable = \Drupal::service('user.private_tempstore')
->get('simple_node_importer');
$sessionVariable
->set('file_upload_session', FALSE);
$form['status']['#access'] = FALSE;
$form['title']['#required'] = FALSE;
$form['title']['#access'] = FALSE;
$form['field_select_content_type']['widget']['#ajax'] = [
'callback' => 'simple_node_importer_snp_ajax_breif_callback',
'wrapper' => 'replace_breif_note_div',
'event' => 'change',
];
$form['field_select_entity_type']['widget']['#ajax'] = [
'callback' => 'simple_node_importer_snpentity_ajax_breif_callback',
'wrapper' => 'replace_breif_note_div',
'event' => 'change',
];
$form['field_select_content_type']['#states'] = [
'visible' => [
'select[name="field_select_entity_type"]' => [
'value' => 'node',
],
],
'required' => [
'select[name="field_select_entity_type"]' => [
'value' => 'node',
],
],
];
$form['replace_breif_note_div'] = [
'#type' => 'container',
'#markup' => '',
'#attributes' => [
'id' => 'replace-breif-note-div',
],
'#weight' => 3,
];
$form['download_template'] = [
'#type' => 'submit',
'#value' => t('Download Sample File'),
'#weight' => 3,
'#submit' => [
'simple_node_importer_template_submit_handler',
],
'#limit_validation_errors' => [
[
'field_select_content_type',
],
[
'field_select_entity_type',
],
],
'#states' => [
'invisible' => [
':input[name="field_select_entity_type"]' => [
'value' => '_none',
],
],
],
];
$form['field_upload_csv']['#states'] = [
'invisible' => [
':input[name="field_select_entity_type"]' => [
'value' => '_none',
],
],
];
$form['#validate'][] = 'simple_node_importer_validate';
$fieldSelectContentOptions = $form['field_select_entity_type']['widget']['#options'];
/*
** Check whether Admin set the content type to import or not.
** If variable 'content_type_select' is empty.
** ask to select the content type list.
*/
if (count($fieldSelectContentOptions) == 1) {
$form['field_select_entity_type']['#access'] = FALSE;
$form['field_select_content_type']['#access'] = FALSE;
$form['field_upload_csv']['#access'] = FALSE;
$form['download_template']['#access'] = FALSE;
$form['actions']['submit']['#access'] = FALSE;
$link = \Drupal::l(t('Admin Settings Page'), new url('simple_node_importer.config_form'));
$message = t('Kindly contact Admin to select the entity types and content types which are allowed to be imported, for this you can visit:@link', [
"@link" => $link,
]);
drupal_set_message($message);
}
$form['field_upload_csv']['#upload_validators']['file_validate_extensions'] = [
'csv',
];
$form['actions']['submit']['#submit'][] = "simple_node_importer_form_submit_redirect_handler";
}
if ($form_id == 'node_simple_node_edit_form') {
drupal_set_message(t('OOPs! Sorry you are not allowed to resubmit this node again. Please start with new import.'));
$form['field_select_content_type']['#disabled'] = TRUE;
$form['field_select_entity_type']['#disabled'] = TRUE;
$form['field_upload_csv']['#disabled'] = TRUE;
$form['actions']['submit']['#disabled'] = TRUE;
}
if ($form_id == 'simple_node_importer_config_form') {
$form['#submit'][] = 'simple_node_importer_config_form_submit';
}
$refKey = \Drupal::request()
->get('refkey');
$bundleName = \Drupal::request()
->get('bundle');
if ($bundleName != 'user') {
$bundleFormId = 'node_' . $bundleName . '_form';
}
else {
$bundleFormId = 'user_register_form';
}
$excludeArr = [
'type',
'reference',
'name',
'mail',
'roles',
'status',
];
if ($form_id == $bundleFormId && !empty($refKey)) {
$failedRow = NodeImportController::getFailedRowsInRc(NULL, $refKey);
foreach ($failedRow as $rowVal) {
$sni_nid = $rowVal['sni_nid'];
unset($rowVal['sni_nid']);
$entity_type = \Drupal::request()
->get('entity_type');
foreach ($rowVal as $fieldKey => $fieldVal) {
if (!in_array($fieldKey, $excludeArr)) {
$fieldWidget = $form[$fieldKey]['widget'];
$fieldSetVal = GetServices::generateFieldSetValue($fieldKey, $fieldVal, $fieldWidget, $entity_type, $bundleName);
if (isset($fieldSetVal['bugField']) && !empty($fieldSetVal['bugField'])) {
foreach ($fieldSetVal['bugField'] as $err) {
$msg = t("Please check the value or format of the field: @bugField", [
'@bugField' => $err,
]);
\Drupal::messenger()
->addError($msg);
}
$form[$fieldKey] = $fieldSetVal['fieldWidget'];
}
else {
$form[$fieldKey] = $fieldSetVal;
}
}
else {
if ($fieldKey == 'name' && !empty($fieldVal)) {
$user = user_load_by_name($fieldVal);
if ($user) {
$msg = t("User already exists with username: @bugField", [
'@bugField' => $fieldKey,
]);
\Drupal::messenger()
->addError($msg);
}
}
elseif ($fieldKey == 'mail' && !empty($fieldVal)) {
$user = user_load_by_mail($fieldVal);
if ($user) {
$msg = t("User already exists with email: @bugField", [
'@bugField' => $fieldKey,
]);
\Drupal::messenger()
->addError($msg);
}
}
if (!in_array($fieldKey, [
'type',
'status',
'reference',
])) {
$fieldWidget = $form['account'][$fieldKey];
$fieldSetVal = GetServices::generateFieldSetValue($fieldKey, $fieldVal, $fieldWidget, $entity_type, $bundleName);
if (isset($fieldSetVal['bugField']) && !empty($fieldSetVal['bugField'])) {
foreach ($fieldSetVal['bugField'] as $err) {
$msg = t("Please check the value or format of the field: @bugField", [
'@bugField' => $err,
]);
\Drupal::messenger()
->addError($msg);
}
$form['account'][$fieldKey] = $fieldSetVal['fieldWidget'];
}
else {
$form['account'][$fieldKey] = $fieldSetVal;
}
}
elseif ($fieldKey == 'status') {
$form[$fieldKey]['widget']['value']['#default_value'] = $fieldVal == 1 || $fieldVal == TRUE ? TRUE : FALSE;
}
}
}
}
$form['refkey'] = [
'#type' => 'hidden',
'#value' => $refKey,
];
$form['sni_nid'] = [
'#type' => 'hidden',
'#value' => $sni_nid,
];
$form['actions']['submit']['#submit'][] = 'simple_node_importer_update_rc_table_form_submit';
}
}