web-dev-qa-db-ja.com

ドロップダウンフィールド機能をprivatemsgモジュールのボタンに変更する方法

プライベートメッセージモジュールを使用しています。

ドロップダウンを使用して、メッセージを既読および未読としてマークするオプションがあります。

ここでは次のようになります: http://drupal.org/node/70918

その代わりに、「既読としてマーク」と「未読としてマーク」という2つのボタンを配置し、同じアクションを実行する必要があります。

どうすればいいですか?

どんな助けでもありがたいです。

よろしくお願いします...

1
Fero

これは、次の方法で実現できます。

function yourmodule_form_alter(&$form, &$form_state, $form_id) {

switch ($form_id) {

    case 'privatemsg_list':

    // Removing Adding  Dropdowns and adding button for the "Mark as read" and "Mark as unread" function
    $form['actions']['#prefix'] = '<div style="display:none">';
    $form['actions']['#suffix'] = '</div>';

    $form['mark as read'] = array(
      '#type'   => 'submit',
      '#value'  => t('Mark as Read'),
      '#weight' => 15,
    );

    $form['mark as unread'] = array(
      '#type'   => 'submit',
      '#value'  => t('Mark as UnRead'),
      '#weight' => 15,
    );

    $form['delete'] = array(
      '#type'   => 'submit',
      '#value'  => t('Delete'),
      '#weight' => 15,
    );
    break;
}

そして、それは完了です。

0
Fero

hook_privatemsg_thread_operations_alter(&$operations)(残念ながら文書化されていませんが _ privatemsg_action_form() で呼び出されます)を実装して、削除と同様に、ボタンを使用するために既読としてマークを変更し、未読としてマークを付けることができます。それらは privatemsg_privatemsg_thread_operations() で定義されています。

このようなもの:

<?php
function yourmodule_privatemsg_thread_operations_alter(&$operations) {
  $operations['mark as read']['button'] = TRUE;
  $operations['mark as unread']['button'] = TRUE;
}
?>

注:これにはPrivatemsg6.x-2.xが必要です

1
Berdir