【问题标题】:Drupal 7 Views - How to use HTML code inside field labels?Drupal 7 Views - 如何在字段标签中使用 HTML 代码?
【发布时间】:2011-12-07 14:32:51
【问题描述】:

视图中的字段标签假设为纯文本输入,它们可能使用check_plain() 对特殊字符进行编码(实际上并未查看视图后端)。

如何在标签中使用 HTML 代码?

编辑:我认为我的问题很清楚。我不想重写字段,我想在标签内使用 HTML 代码,仅此而已。

【问题讨论】:

  • 我不确定我是否正确理解了这个问题。视图具有“去除 HTML 标记如果选中,所有 HTML 标记都将被去除”选项。因此,默认情况下,字段中应允许使用 html,标签也应如此。如果您可以提供更多信息,那就太好了

标签: drupal drupal-7 drupal-views


【解决方案1】:

我想通了。虽然您不能在视图 UI 的标签内使用 HTML 输入,但您可以在样式输出模板内自定义标签。

例如对于使用表格样式输出的“示例”视图,您可以自定义 views-view-table--example.tpl.php 并使用如下代码:

//custom label for title field
$header['title'] = '<strong>Foo</strong> bar';

【讨论】:

  • 如果您只需要将文本包装在 HTML 标记周围,您可以通过 Style settings 部分中的 Customize label HTML 复选框对字段配置中的标题 HTML 进行一些控制。不过,这些选项非常有限。
【解决方案2】:

另一种解决方案是为特定视图格式添加新的处理函数,并在该预处理函数中进行更改。

例子:

/**
 * Implements hook_theme_registry_alter().
 */
function example_theme_registry_alter (&$theme_registery) {
    $theme_registery['views_view_table']['preprocess functions'][] = 'example_alter_table_header';
}

function example_alter_table_header(&$vars) {
  $view = $vars['view'];
  if ($view->name == 'my_view') {
    $vars['header']['field_some_title'] = 'HELLO<br/>WORLD';
  }

}

【讨论】:

  • 这比我最初的解决方案稍微复杂一点,但是当需要在多个视图和一些类似场景上覆盖相同的标签时,这种方法将证明自己非常有用。谢谢!
【解决方案3】:

您可以对该字段使用Rewrite output 选项。

【讨论】:

  • 不,我不能使用它。那只会重写字段的内容,但我需要的是在标签中包含 HTML 代码。您的解决方案可以被认为是一种解决方法,但在表格样式视图的情况下不起作用。对不起。
【解决方案4】:

这与'strip html'无关,忽略它。

出于这个原因,视图字段在其中具有“重写”功能。这样您就可以重写 html 输出,然后使用令牌重新插入动态元素。

所以要重写字段,将其包装在 h1 标记中,您可能会这样做......

编辑您的字段。在 D7 Views 3 中,您会在“重写结果”下看到一个切换部分。打开它并勾选“重写该字段的输出”。

在它下面的大框中输入:

<h1>[title]</h1>

就是这样。简单的。当视图被重新编辑时,您的标题文本将被包裹在 h1 标记中。

您可以在重写规则中使用的标记列在名为“替换模式”的切换开关中,位置稍低一些 - 它们会根据字段的类型而变化。

【讨论】:

  • 我不是 Views 的初学者,我知道如何重写字段。问题是我不知道如何“重写”标签。就像我对@Marius Ilie 的回答一样,这只是一种解决方法,在 Table 样式视图的情况下不起作用。
【解决方案5】:

查看 7.x-3.3

views/theme/theme.inc:269:      $object->label = check_plain($view->field[$id]->label());

views/theme/theme.inc:498:      $label = check_plain(!empty($fields[$field]) ? $fields[$field]->label() : '');

我编辑模块主题/theme.inc 文件:删除 check_plain

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多