web-dev-qa-db-ja.com

受信トレイに追加のフィールドを表示しますか?

2つの新しいフィールド(ビューフィールドと単純なテキストフィールド)を追加しました。これらのフィールドを受信ボックスに表示したいと思います(/messages)既存の件名、参加者、および最終更新データとともに。それらのフィールドをそのページに追加するにはどうすればよいですか?使用できるtpl形式はありますか?

1
mchar
/**
 * Implements hook_form_alter().
 */
function modulename_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'privatemsg_list') {
    $form['updated']['list']['#header']['bar_column_field']['data'] = 'Bar Column';
    $form['updated']['list']['#header']['bar_column_field']['field'] = 'bar_column_field';
    $form['updated']['list']['#header']['bar_column_field']['class'][] = 'privatemsg-header-bar-column';
    $form['updated']['list']['#pre_render'][] = '_pre_render_bar_column';
  }

/**
 * Custom #pre_render function.
 */
function _pre_render_bar_column($tableselect) {  
  $i = 0;
  foreach ($tableselect['#options'] as $id => $options) {
    $data = 'Bar data in the table ' . $i++ . '';
    $tableselect['#options'][$id]['bar_column_field'] = array('data' => $data, 'class' => array('privatemsg-list-bar'));
  }
  return $tableselect;
}

クエリなどを実行し、実際のデータを新しい列に配置した後、$data変数を任意のフィールドの値で変更できます。フィールドは、メッセージング(admin/config/messaging/privatemsg/fields)またはその他の使用可能なエンティティに添付できます。

1
mchar