1
사용자가 확인 양식을 사용하지 않고도 사이트의 노드를 삭제할 수있는 최선의 방법을 찾고 있습니다. form_alter를 사용하여 사람들이 성공하지 못한 채 사용자 정의 제출 기능으로 이동하도록 시도했습니다.바이 패스 노드 삭제 Drupal의 양식 확인
누구도 이것을 시도한 적이 있습니까?
사용자가 확인 양식을 사용하지 않고도 사이트의 노드를 삭제할 수있는 최선의 방법을 찾고 있습니다. form_alter를 사용하여 사람들이 성공하지 못한 채 사용자 정의 제출 기능으로 이동하도록 시도했습니다.바이 패스 노드 삭제 Drupal의 양식 확인
누구도 이것을 시도한 적이 있습니까?
drupal 7로 가정하면 노드/%/삭제 메뉴 항목은 node_delete_confirm 양식에 직접 연결됩니다. hook_menu_alter를 사용하여 수정하고 drupal_get_form에서 노드를 삭제하는 자신의 디자인에 대한 페이지 콜백으로 기능을 변경할 수 있습니다.
예 : 모듈 파일에서
는 당신이 필요로하는 것 :
function mymodule_menu_alter(&$items) {
$items['node/%node/delete']['page callback'] = 'my_node_delete_function';
$items['node/%node/delete']['page arguments'] = array(1);
$items['node/%node/delete']['module'] = 'mymodule';
$items['node/%node/delete']['file'] = 'mymodule.pages.inc';
}
그리고 당신의 mymodule.pages.inc 파일에
는 당신이 필요로하는 것 :function my_node_delete_function($node) {
// Taken from node modules node_delete_confirm submit handler
node_delete($node->nid);
watchdog('content', '@type: deleted %title.', array('@type' => $node->type, '%title' => $node->title));
drupal_set_message(t('@type %title has been deleted.', array('@type' => node_type_get_name($node), '%title' => $node->title)));
// Do a drupal goto here to preserver the 'destination' parameter
drupal_goto();
}
감사합니다! 그것이 내가 필요한 것입니다. –
안녕하세요, 콘텐츠 유형이 = 'contentype'인 경우에만이 단계를 건너 뛰도록이 코드를 어떻게 수정할 수 있습니까? 나는 그것을하는 방법을 이해할 수 없다. – Shyghar
@Shyghar :'my_node_delete_function'에서 조건을 사용하십시오 :'if ($ node-> type == 'contenttype') {node_delete ($ node-> nid); /*...*/} else {/ * 삭제하기 전에 확인 양식 * /}' –