jul 30
Drupal - preusmeritev po brisanju node
Drupal po brisanju noda privzeto preusmeri na prvo stran (<front>), kar je nadležno, če urejamo več podatkov in se moramo znova vračati nazaj. Posegel sem v node modul, po vsej verjetnosti pa obstaja tudi druga rešitev. Spodnja koda po brisanju preusmeri na parent node.
Datoteka “modules/node/node.module”:
<?php function node_delete_confirm($node) { $form['nid'] = array('#type' => 'value', '#value' => $node->nid); /** * @author Aleš Blaznik -> */ if (!isset($_SESSION)) { session_start(); } $parentNode = $node->parent_node > 0 ? 'node/'. $node->parent_node : '<front>'; $_SESSION['destination'] = isset($_GET['destination']) ? $_GET['destination'] : $parentNode; // <---------------------- return confirm_form($form, t('Are you sure you want to delete %title?', array('%title' => $node->title)), isset($_GET['destination']) ? $_GET['destination'] : 'node/'. $node->nid, t('This action cannot be undone.'), t('Delete'), t('Cancel')); } ?><?php function node_delete_confirm_submit($form_id, $form_values) { if ($form_values['confirm']) { node_delete($form_values['nid']); } /** * @author Aleš Blaznik -> */ if (!isset($_SESSION)) { session_start(); } if(isset($_SESSION['destination'])) { return $_SESSION['destination']; } // <---------------------- return '<front>'; } ?>


