2014-07-16 4 views
0

제목에 설명 된대로 빈 필드가 필요한 경우 노드를 삭제하려고합니다. 잘 모르겠습니다. 드루팔 (Drupal) 제 문제를 해결하기 위해 조언을 해 주실 수 있습니까? 새 모듈을 개발해야합니까? 또는 기존 모듈의 일부 라인을 수정하면됩니까?DRUPAL 7 - 빈 필드가 필요한 경우 노드 삭제 drupal 7

다음 빈 필드 노드를 만들 수 없습니다 필요에 따라 이미 필드를 제공 한 경우

답변

0

에 미리 감사드립니다, 그래서 필요가 다른 코드를 삭제 할 수 있습니다. 다음을 수행 한 후 필요에 따라 이루어지지 않으면

,

그냥 필요한 형태의 백 - 엔드로 필드를 확인합니다.

  1. 이동은 "필수 확인> 구조 -> 콘텐츠 형식

  2. 하여 특정 콘텐츠 형식의 필드를 관리을 클릭,

  3. 편집하여 원하는 필드

  4. 을 관리 -하는 필드 "를 해당 필드의 편집 페이지에서 저장하고 저장하십시오.

모든 작업이 완료되면 필드가 비어있는 양식 제출이 제한됩니다.

+0

답변 해 주셔서 감사합니다. 사실, 내 문제는 folowing입니다 : 필드의 구조를 수정할 수 없습니다. 하지만 노드 가져 오기를 사용하여 항목을 업로드했습니다. 일부 노드는 비어 있습니다. 이제 비어있는 필수 필드가있는 노드를 삭제하고 싶습니다. – InsRg

+0

이 hook_cron을 사용하면 향후 가져 오기에도 유용 할 수 있습니다.이 노드에 대한 nid를 가져와야합니다. field_data_YOURFIELDNAME 및 노드 테이블과 함께 조인 쿼리를 사용하여 얻을 수 있습니다. 그런 다음 nid 배열을 루프하고 node_delete ($ nid) 또는 node_delete_multiple ($ nid_array)을 사용하십시오 – JSunny

+0

고마워요! hook_cron으로 테스트 해 보겠습니다. 새 모듈을 만들어야합니까? 아닙니다. – InsRg

0

"drupal이 (가) 필수 필드가 비어있는 노드를 삭제할 수 없습니다."라는 Google의 첫 번째 결과입니다. OP에 내 정확한 문제가있는 것으로 보이므로 여기에 내 솔루션을 게시하고 있습니다. Google의 다른 결과로 내 문제를 해결할 수 없었습니다.

예 : 바닐라 드루팔 (Drupal 설치)은 바디와 같이 필요한 컨텐츠 유형으로 필드를 작성하십시오. 해당 내용 유형의 노드를 만듭니다. 그런 다음 본문에서 모든 내용을 제거한 후 해당 노드를 삭제하십시오. 드루팔 (Drupal)은 당신이하지 말라고하지 않는 한 폼 # 서브 미트 엘리먼트를 항상 유효하게하기 때문에 그렇게하지 않습니다. 예를 들어, 많은 필수 필드가 비어있는 노드가 프로그래밍 방식으로 작성됩니다.

/** 
* Implements hook_form_alter() 
*/ 
function mymodule_form_alter(&$form, &$form_state, $form_id) { 
    if (isset($form_id)) { 
    if ($form_id == 'NODETYPE_node_form') { 
     $form['actions']['fdelete'] = array(
     '#type' => 'submit', 
     '#weight' => 999, 
     '#access' => user_has_role(user_role_load_by_name('administrator')->rid), 
     '#value' => t('Force Delete'), 
     '#submit' => array('mymodule_force_delete'), 
     '#limit_validation_errors' => array(), 
    ); 
    } 
    } 
} 

function mymodule_force_delete(&$form, &$form_state) { 
    unset($_GET['destination']); 
    drupal_goto("node/{$form_state['node']->nid}/delete"); 
} 

이 솔루션은 노드/%/delete가 노드 내용의 유효성 검사를 트리거하지 않고 노드를 삭제하라는 메시지이므로 작동합니다.