Views Bulk Operations
にいくつかのカスタムアクションを追加しようとしていますが、何らかの理由でリストに表示されません。
これは私のコードです(Drupal.orgから入手したので、これは動作しているコードだと思います...)
function publication_action_info() {
return array(
'node_unpublish_action' => array(
'description' => t('Unpublisedh node--'),
'type' => 'node',
'configurable' => FALSE,
'hooks' => array(
'node' => array('insert', 'update'),
),
),
'node_unpublish_by_keyword_action' => array(
'description' => t('Unqsdfqsdfpublish node containing keyword(s)--'),
'type' => 'node',
'configurable' => TRUE,
'hooks' => array(
'node' => array('insert', 'update'),
),
),
);
}
それで、これを機能させるための私のコードまたはロジックの何が問題になっていますか?
構成>>アクションを使用して新しいアクションを作成してみてください
これが方法です、私はD7のために見つけました...
/**
* Implementation of hook_action_info().
*/
function MODULE_action_info() {
$action = array(
'MY_ACTION_NAME' => array(
'label' => t('MY ACTION LABEL.'),
'type' => 'node',
'configurable' => FALSE,
'triggers' => array('any'),
),
);
return $action;
}
/**
* Action function for MY_ACTION_NAME.
*/
function MY_ACTION_NAME(&$entity, $context = array()) {
// Your code here.
}
次に、アクションMY ACTION LABELをVBOリストに追加します。
単なるメモ-Drupal 7の場合、IMO @tanmaykの回答が最善です-hook_action_info()を使用してカスタムモジュールでアクションを定義すると、アクションは[構成]> [システム]> [アクション]に表示されますウィンドウとVBOリスト内。
ただし、ユーザーにアクションの使用を許可する必要があることに注意してください([ユーザー]> [権限])。そのメモリをトリガーしてくれた@autopoieticに感謝します。
トリガーを使用してみてください
'triggers' => array('node_presave', 'node_insert', 'node_update'),
の代わりに
'hooks' => array(
'node' => array('insert', 'update'),
),
ここに、行動の厄介な例があります。
'action_example_node_sticky_action' => array(
'type' => 'node',
'label' => t('Action Example'),
'configurable' => TRUE,
'triggers' => array('node_presave', 'node_insert', 'node_update'),
),
詳細は 開発者向けの例 のaction_exampleを参照してください
また、この記事は役に立ちます: Views Bulk Operations(VBO)開発ガイド 。
しかし注意してください:
このガイドは、Drupal 6にのみ適用され、リリース6.x-1.13で最終更新されます。