하나 이상의 사용자에 대해 작업을 실행하기 위해 프로그래밍 방식으로 작업을 만들고 뷰에 VBO를 추가했습니다. 작업 자체는 일부 역할을 제거하고 선택한 사용자에게 새로운 역할을 추가합니다. 작업 내에서 user_save
으로 전화하여 역할 변경 내용을 저장합니다.Drupal 7 VBO 업데이트 사용자가 작동하지 않습니다.
작업이 실행되는 동안 데이터베이스의 user_roles 테이블을 보면 특정 사용자의 역할 ID가 실시간으로 새 역할로 변경됩니다. 그러나 VBO가 완료되면 원래 사용자 개체로 되돌아가는 것처럼 보이므로 이전 역할이 제거되지 않고 새 역할이 추가되지 않습니다. 그것은 내 행동이 실행 된 후에 일어날 일이지만, 나는 그것이 무엇인지 상상할 수 없다.
이상하게도 VBO를 두 번째 실행하면 이상하게 작동합니다.
내 작업은 hook_action_info에서 "user"유형으로 정의되며 트리거는 유일한 매개 변수로 "any"가있는 배열입니다.
actions_do
을 사용하여 작업을 직접 호출하면 처음에는 완벽하게 작동합니다.
아이디어가 있으십니까?