it-swarm-ko.tech

등록시 그룹 가입 또는 생성

사람들이 내 사이트에 등록 할 때 기존 그룹에 가입하거나 존재하지 않는 경우 새 그룹을 만들기를 원합니다. 한 그룹의 구성원 만 될 수 있으며 사이트에서 사용되는 그룹 유형은 하나뿐입니다.

자동 완성 위젯 세트가 있고 기능을 변경하여 오류 메시지를 표시하는 대신 그룹을 만들고 싶습니다. og.module을 변경하는 것은 많은 사용 사례에서 작동하기에 충분히 일반적인 특정 변경 사항을 만드는 것이 쉽지 않기 때문에 좋은 생각이 아니라고 생각합니다. 사용자 엔터티의 기능을 저장하고 존재하는지 확인한 다음 그룹을 생성하고 거기에 멤버십을 생성하거나 다른 방법이 있습니까?

분류를 내 그룹 콘텐츠로 사용하고 내 사용자 프로필에서 용어 참조 자동 완성 필드를 사용하려고 시도했지만 og가 현재 분류와 완전히 작동하지 않는 것 같고 분류를 저장하지 않는 첨부 된 필드 데이터에 다른 문제가있어서 사라졌습니다. 다시 내 그룹 콘텐츠 유형으로 노드 유형을 사용합니다.

4
stevepurkiss

hook_user_insert() 프로세스에서 너무 늦게 트리거됩니다. hook_form_FORM_ID_alter()을 사용하여 자동 완성 유효성 검사 콜백을 사용자 지정 함수를 사용하도록 변경했습니다.

  function MYMODULE_form_user_register_form_alter(&$form, &$form_state, $form_id) {

  $form['group_audience']['und'][0]['gid']['#element_validate'][0] = 'MYMODULE_field_audience_autocomplete_validate';
}

MYMODULE_field_audience_autocomplete_validate()은 오류를 던지는 대신 그룹을 생성한다는 점을 제외하면 원래 함수와 동일합니다.

0
stevepurkiss

당신의 일반적인 전제는 건전하다고 생각합니다. 대신 hook_user_insert () 를 사용하고 싶은데, 이는 사용자가 생성되기 전이 아니라 생성 된 후에 호출됩니다.

  • 모듈은 실제로 그룹을 만들거나 새 그룹을 삽입하는 데 실패 할 수 없습니다.
  • hook_user_presave는 실제로 데이터를 직렬화 (단순)하려는 모듈을 사용자 테이블 자체에 저장하기위한 것입니다.

OG7에서 필요한 후크는 그룹을 확인 및 생성하고 사용자를 삽입하는 데 모두 있습니다.

1
Chris Cohen