1. That is what I would like to prevent. Deleting the children when parent term is deleted.
I'm currently building an e-commerce website which requires multi level category, so I have to use the function taxonomy_get_children() to be able to get the children. I've disabled the button and set a message to delete the child first before deleting the parent term if the parent term has children. I've used taxonomy_select_nodes() from your code to check if there's a node attached to it. That is the easiest way for me. Please check below to check my code. I have removed loading the nodes and just added in the instruction to see the list of nodes in the view tab to prevent too much memory usage though you've set a limit already.
2. Thank you for explaining that to me. That was explained well. Thank you.
Here is my code:
function mymodule_form_taxonomy_form_term_alter(&$form, &$form_state) {
// Checking if we are on the delete confirmation form.
if (isset($form['delete'])) {
// Getting the term id.
$tid = $form['#term']->tid;
// Check if term has children
$children = taxonomy_get_children($tid);
if(count($children) > 0) {
drupal_set_message(t("This term has children and cannot be deleted until the children of this term has been deleted."), 'error');
$form['description']['#markup'] = '';
$form['actions']['submit']['#disabled'] = TRUE;
}
// Getting node ids referencing this term.
$results = taxonomy_select_nodes($tid, FALSE);
if (count($results) > 0 && !empty($results)) {
drupal_set_message(t("This term is being used and cannot be deleted. Please remove this taxonomy term from the node first."), 'error');
$form['description']['#markup'] = 'Click the view tab to be able to see the list of nodes.';
$form['actions']['submit']['#disabled'] = TRUE;
}
}
}
Angebot innerhalb von 24 Stunden
Ob ein großes kommerzielles System, oder eine kleine Business Seite, wir schicken ein Angebot ab innerhalb von 24 Stunden nachdem Sie diese Taste drücken: Angebot anfordern
1. That is what I would like to prevent. Deleting the children when parent term is deleted.
I'm currently building an e-commerce website which requires multi level category, so I have to use the function taxonomy_get_children() to be able to get the children. I've disabled the button and set a message to delete the child first before deleting the parent term if the parent term has children. I've used taxonomy_select_nodes() from your code to check if there's a node attached to it. That is the easiest way for me. Please check below to check my code. I have removed loading the nodes and just added in the instruction to see the list of nodes in the view tab to prevent too much memory usage though you've set a limit already.
2. Thank you for explaining that to me. That was explained well. Thank you.
Here is my code:
function mymodule_form_taxonomy_form_term_alter(&$form, &$form_state) {
// Checking if we are on the delete confirmation form.
if (isset($form['delete'])) {
// Getting the term id.
$tid = $form['#term']->tid;
// Check if term has children
$children = taxonomy_get_children($tid);
if(count($children) > 0) {
drupal_set_message(t("This term has children and cannot be deleted until the children of this term has been deleted."), 'error');
$form['description']['#markup'] = '';
$form['actions']['submit']['#disabled'] = TRUE;
}
// Getting node ids referencing this term.
$results = taxonomy_select_nodes($tid, FALSE);
if (count($results) > 0 && !empty($results)) {
drupal_set_message(t("This term is being used and cannot be deleted. Please remove this taxonomy term from the node first."), 'error');
$form['description']['#markup'] = 'Click the view tab to be able to see the list of nodes.';
$form['actions']['submit']['#disabled'] = TRUE;
}
}
}