2016-11-11 5 views
1

を更新するには、テーブル使用VBO私が承認されたユーザーとユーザーの一括更新を実行するカスタム・ユーザー・フィールド

field_user_status_value 
----------------------- 
entity_type, entity_id, field_user_status_value 

がENTITY_IDは、以下の、テーブルに存在しないユーザIDです

function bulkapprove_action_info() { 
    return array(
    'bulkapprove_action_callback_name' => array(
     'type' => 'user', // Can be file, term, user, etc. 
     'label' => t('Approve User'), 
     'configurable' => FALSE, // Doesn't need config form 
     'behavior' => array('view_property'), // Uses view access rights , 
     'pass rows' => TRUE, 
     'triggers' => array('any'), // Works always 
    ), 
); 
} 

function bulkapprove_action_callback_name($entity, $context) 
{ 
    db_update('field_data_field_user_status')->fields(array('field_user_status_value' => 'Approved'))->condition('entity_id', $context->entity_id)->execute(); 
} 

しかし、それはあなたがTAを作成しない限り、あなたは直接データベースフィールドを更新しないのDrupalでは、この表の値

答えて

1

を挿入されていません:私は、テーブルを更新するために書いたカスタムモジュールble。 Drupalの内部APIは、値を正しく更新するためのツールのコレクションを提供し、サポートするすべてのモジュールがフックシステムを通じて必要に応じて変更を通知されるようにします。

この場合、コールバックは実際のエンティティ(この場合はユーザオブジェクト)に対してアクションを実行します。そのエンティティに対してアクションを実行し、エンティティを保存したいとします。

function bulkapprove_action_callback_name($entity, $context) 
{ 
    $entity->status = 1; 
    entity_save('user', $entity); 
} 
関連する問題