function entityqueue_form_widget_form_node_form_submit in Entityqueue Form Widget 8
Same name and namespace in other branches
- 2.0.x entityqueue_form_widget.module \entityqueue_form_widget_form_node_form_submit()
Submit form function.
Parameters
object $form: The Form.
Drupal\Core\Form\FormStateInterface $form_state: The Form.
1 string reference to 'entityqueue_form_widget_form_node_form_submit'
- entityqueue_form_widget_form_node_form_alter in ./
entityqueue_form_widget.module - Implements hook_form_node_form_alter().
File
- ./
entityqueue_form_widget.module, line 65 - Allows editors to add content to an entityqueue from the same add/edit form.
Code
function entityqueue_form_widget_form_node_form_submit($form, FormStateInterface $form_state) {
$node = $form_state
->getFormObject()
->getEntity();
$entity_id = $node
->id();
if (!$form_state
->isValueEmpty('entityqueue_form_widget')) {
$values = $form_state
->getValue('entityqueue_form_widget');
/* Add entity to all checked queues */
$eqs_machine_names = array_keys($values['entityqueues'], "1");
foreach ($eqs_machine_names as $eqs_machine_name) {
$query = \Drupal::entityQuery('entity_subqueue')
->condition('name', $eqs_machine_name);
$result = $query
->execute();
$subqueues = EntitySubqueue::loadMultiple($result);
foreach ($subqueues as $subqueue) {
$items = $subqueue
->get('items')
->getValue();
if (($item_key = array_search($entity_id, array_column($items, 'target_id'))) === FALSE) {
$new_aitem = [
"target_id" => $entity_id,
];
array_push($items, $new_aitem);
$subqueue
->set('items', $items);
$subqueue
->save();
}
}
}
// Remove entity from all un-checked queues.
$eqs_machine_names_delete = array_keys($values['entityqueues'], "0");
foreach ($eqs_machine_names_delete as $eqs_machine_name) {
$entity_subqueue = \Drupal::entityTypeManager()
->getStorage('entity_subqueue')
->load($eqs_machine_name);
$items = $entity_subqueue
->get('items')
->getValue();
if (($item_key = array_search($entity_id, array_column($items, 'target_id'))) !== FALSE) {
unset($items[$item_key]);
$entity_subqueue
->set('items', $items);
$entity_subqueue
->save();
}
}
}
}