Drupal 7 为我的内容类型中的每个分组部分添加标题



我创建了一个内容类型,它有大约 5 个组,都是垂直选项卡。

由于某种原因,字段组标签不适用于垂直制表符。 <h2>标签始终为:<h2 class="element-invisible">Vertical Tabs</h2> 。无论manage fields中设置了什么,标题始终Vertical Tabs,并且始终具有类element-invisible

我注意到在某些使用垂直选项卡的主题中完全相同的事情。

我还注意到这些主题在每个垂直选项卡上方都有一个额外的标题标签,它在其中显示该组的标题。(AdaptiveTheme)就是一个很好的例子。

无论如何,对于实际问题....

如何向内容类型中的每个分组部分(垂直选项卡)添加标题?

注意:这是用于添加内容的实际表单,而不是显示 创建的内容。

对此的任何帮助都非常感激。

使用 Drupal 7 内容主题为您的内容类型添加标题。 例如,如果您的内容类型名为 mycontent,请在主题的文件夹中创建以下脚本:

{theme path}/page--node--mycontent.tpl.php

若要预处理内容类型,请使用以下函数:

function mycontent_preprocess_page(&$vars) {
    if (isset($vars['node']->type)) { 
        $vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
    }
}

有关template_preprocess_page功能的更多信息,请点击此处

您可以在

主题模板中自定义内容类型表单.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']);
  }
}
?>

这个问题的其他答案是正确的。 负责垂直选项卡标题的代码是includes/form.inc文件中的theme_vertical_tabs函数。

如果您有自己的主题,则可以在主题的模板.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;
}

如果您希望使垂直选项卡标题显示在内容编辑屏幕中,并且您设置了管理员主题,则需要对管理主题进行上述修改。

相关内容

  • 没有找到相关文章

最新更新