4

コンテンツ タイプを作成しましたが、すべて垂直タブである約 5 つのグループがあります。

何らかの理由で、フィールド グループ ラベルが垂直タブで機能しません。<h2>タグは常に:です<h2 class="element-invisible">Vertical Tabs</h2>。タイトルはVertical Tabs、設定されているものに関係なくmanage fields常にあり、常にクラスがありますelement-invisible

垂直タブを使用するいくつかのテーマでまったく同じことがわかりました。

また、これらのテーマには、そのグループの見出しを表示する各垂直タブの上に追加の見出しタグがあることに気付きました. ( adaptivetheme ) はこの良い例です。

とにかく、実際の質問に....

コンテンツ タイプのグループ化された各セクション (垂直タブ) に見出しを追加するにはどうすればよいですか?

注: これは、作成されたコンテンツの表示ではなく、コンテンツを追加するための実際のフォーム用です。

これに関するヘルプは非常に高く評価されています。

4

3 に答える 3

1

この質問に対する他の回答は、正しい軌道に乗っていました。垂直タブの見出しを担当するコードは、ファイルtheme_vertical_tabs内の関数です。includes/form.inc

独自のテーマがある場合は、テーマの template.php ファイルでこの関数をコピーして変更し、オーバーライドすることができます。

function YOUR_THEME_NAME_vertical_tabs($variables) {
  $element = $variables['element'];

  // Add required JavaScript and Stylesheet.
  drupal_add_library('system', 'drupal.vertical-tabs');

  // Following line changed to use title set in field settings and remove class="element-invisible
  $output = '<h2>' . t($element['#title']) . '</h2>';  
  $output .= '<div class="vertical-tabs-panes">' . $element['#children'] . '</div>';

  return $output;
}

垂直タブの見出しをコンテンツ編集画面に表示することを検討していて、管理テーマが設定されている場合は、上記の変更を管理テーマに対して行う必要があります。

于 2014-05-01T17:39:44.450 に答える
1

テーマの template.php またはカスタム モジュールでコンテンツ タイプ フォームをカスタマイズできます。これはここに文書化 されています。たとえば、テーマ MYMODULE にカスタム コンテンツ タイプの記事を使用するカスタム モジュールがある場合、次のようにカスタマイズできます。

<?php
/**
* Implements hook_theme().
*/
function MYMODULE_theme($existing, $type, $theme, $path) {
  return array(
    'article_node_form' => array(
      'render element' => 'form',
      'template' => 'article-node-form',
      // this will set to module/theme path by default:
      'path' => drupal_get_path('module', 'MYMODULE'),
    ),
  );
}
?>

カスタム データを出力するには:

<?php
/**
* Preprocessor for theme('article_node_form').
*/
function template_preprocess_article_node_form(&$variables) {
  // nodeformcols is an alternative for this solution.
  if (!module_exists('nodeformcols')) {
    $variables['sidebar'] = array();   // Put taxonomy fields in sidebar.
    $variables['sidebar'][] = $variables['form']['field_tags'];
    hide($variables['form']['field_tags']);
    // Extract the form buttons, and put them in independent variable.
    $variables['buttons'] = $variables['form']['actions'];
    hide($variables['form']['actions']);
  }
}
?>
于 2014-03-18T17:16:42.850 に答える