it-swarm-korea.com

특정 공간에서만 기능을 사용할 수 있도록하는 방법은 무엇입니까?

Drupal 6 오픈 아트리움 사이트 (예 : 기능, 공간, 유기적 그룹)의 경우 실행 중이며 수백 개의 그룹 중 소수에만 실제로 적용되는 몇 가지 사용자 지정 기능을 만들었습니다. 그 자리에서.

현재 "기능 사용자 지정"구성 화면에는 몇 개의 특수 그룹으로 의도적으로 제한하려는 기능을 포함하여 all 기능이 표시됩니다.

이러한 특수 기능이 모든 그룹에 제공되는 것을 방지하고 특수 그룹에 해당 기능을 유지하는 가장 좋은 방법은 무엇입니까?

3
smokris

각 공간의 기능은 spaces_features_form() 함수를 통해 구성됩니다. hook_form_alter() 을 구현하여 특정 그룹에서 기능을 선택적으로 조건부로 제거 할 수 있습니다.

function MYMODULE_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'spaces_features_form') {
    $space = spaces_get_space();
    // Populate the array with hard-coded NIDs, or whatever logic
    // needed to determine if these features should be allowed.
    if ($space->type == 'og' && !in_array($space->group->nid, array(...))) {
      // Hide features foo and bar.
      foreach (array('feature_foo', 'feature_bar') as $feature) {
        $form['spaces_features'][$feature]['#access'] = FALSE;
      }
    }
  }
}
2
jhedstrom

기능은 모듈입니다. 모듈은 시스템 전체에서 활성화되며 공간 또는 그룹에 연결할 수 없습니다. 그러나 사용자 지정 권한을 생성하여 액세스 권한을 제어 할 수 있습니다. hook_perm () 참조.

1
tim.plunkett

이 hook_perm 제안에 그룹 유형에 따라 적용 가능한 기능을 비활성화하기 위해 양식에 변경 사항을 추가합니다. hook_form_alter는 아마도 기능 관련 항목이 아직 존재하지 않기 때문에 작동하지 않을 것입니다. # after_build 후크를 등록한 다음 그에 따라 양식을 수정해야 할 수 있습니다.

1
lordg

컨텍스트는 확실히 갈 길입니다.
Context , FeaturesSpaces 는 강력한 조합입니다. 이 DevelopmentSeed 게시물은 도움이 될 것입니다. Building a "Blog Feature"in Drupal with Context and Spaces

1
teknikqa