한 편집자는 영어 내용 만 편집하고 다른 편집자는 다른 언어로만 내용을 편집 할 수있는 편집자 역할을 만들려고합니다.
나는 꽤 오랫동안 연구 해왔고 Content Access도 체크 아웃했지만 해결책을 찾지 못했습니다.
어떻게하면 되나요?
감사합니다!
한 편집자는 영어 내용 만 편집하고 다른 편집자는 다른 언어로만 내용을 편집 할 수있는 편집자 역할을 만들려고합니다.
나는 꽤 오랫동안 연구 해왔고 Content Access도 체크 아웃했지만 해결책을 찾지 못했습니다.
어떻게하면 되나요?
감사합니다!
답변:
여기에 지정된 답변은 번역에 특화된 언어 를 제공하는 데 도움이 될 것입니다
설치 한 후 번역 관리 모듈 ,
번역 기능으로 사용자를 만들 수 있습니다
사용자가 영어에서 스페인어로만 번역하고 다른 사용자가 사용자를 만드는 동안 영어에서 프랑스어로 번역 할 수 있도록 지정할 수 있습니다.
사용자 역할이 있는 새 사용자 작성 : Translator ( tmgt module
설치 될 때 작성 됨 )
그런 다음 아래와 같이 자신의 번역 기술을 선택하십시오.
아마도이 https://www.drupal.org/project/i18n_access 7.x-dev 버전을 사용할 수 있습니다
hook_menu_alter를 사용하여 노드 편집 양식에 대한 액세스 콜백을 바꾸거나 변경할 수 있습니다 .
사용 가능한 언어를 기반으로 권한 화면에 표시되는 권한을 만들려면이 후크가 포함 된 사용자 정의 모듈이 필요합니다.
/**
* Implements hook_permission().
*/
function MODULENAME_permission(){
//do something here to get an array of language names: $languages (I'm not familiar with i18n)
foreach ($languages as $lang) {
$permissions[$term->name] = array(
'title' => t($lang->name), //Or wherever the langauge name is stored
'description' => t('Edit content in '. $lang->name), //Again, adjust as needed
);
}
return $permissions;
}
그러면 사용 권한 페이지에 사이트의 각 언어에 대한 모듈 이름 아래에 확인란이 표시됩니다. 언어 이름은 어떤 경우에도 변경되지 않는 것으로 가정합니다.
그런 다음 사용자가 다음과 같이 허용되지 않으면 액세스를 차단하기 위해 이들을 사용해야합니다.
/**
* Implements hook_node_access($node, $op, $account).
*/
function MODULENAME_node_access($node, $op, $account){
//Get the language name for the node and store in variable $lang (again, I don't know how)
//Then see if the user can do anything except view it
if ($op != 'view'){
if (!user_access($lang)){
return NODE_ACCESS_DENY;
}
}
return NODE_ACCESS_IGNORE;
}
이 방법으로 역할을 수행하려면 역할을 편집하려면 '노드 편집'권한과 언어 기반 권한이 필요합니다.