2016-11-07 4 views
0

하나 이상의 사용자에 대해 작업을 실행하기 위해 프로그래밍 방식으로 작업을 만들고 뷰에 VBO를 추가했습니다. 작업 자체는 일부 역할을 제거하고 선택한 사용자에게 새로운 역할을 추가합니다. 작업 내에서 user_save으로 전화하여 역할 변경 내용을 저장합니다.Drupal 7 VBO 업데이트 사용자가 작동하지 않습니다.

작업이 실행되는 동안 데이터베이스의 user_roles 테이블을 보면 특정 사용자의 역할 ID가 실시간으로 새 역할로 변경됩니다. 그러나 VBO가 완료되면 원래 사용자 개체로 되돌아가는 것처럼 보이므로 이전 역할이 제거되지 않고 새 역할이 추가되지 않습니다. 그것은 내 행동이 실행 된 후에 일어날 일이지만, 나는 그것이 무엇인지 상상할 수 없다.

이상하게도 VBO를 두 번째 실행하면 이상하게 작동합니다.

내 작업은 hook_action_info에서 "user"유형으로 정의되며 트리거는 유일한 매개 변수로 "any"가있는 배열입니다.

actions_do을 사용하여 작업을 직접 호출하면 처음에는 완벽하게 작동합니다.

아이디어가 있으십니까?

답변

0

은 내가 VBO를 테스트하고 또한 DPM ((STABLE) 모듈) 및 debug_backtracehook_user_update을 구현하기 위해 몇 가지 사용자를 사용하는 것이 좋습니다. 이것은 무슨 일이 일어나고 있는지 알려주고 디버깅 만하는 이상한 행동입니다.

자세한 정보가 있으면 질문에 덧붙여서 모두가 도울 수 있도록하십시오.

희망이 있습니다.