视图中的字段标签假定为纯文本输入,并且它们可能使用check_plain()来编码特殊字符(实际上没有查看视图后端)。Drupal 7视图 - 如何在字段标签内使用HTML代码?
HTML代码如何在标签内使用?
编辑:我以为我的问题很清楚。我不想重写字段,我想在标签内使用HTML代码,就这些。
视图中的字段标签假定为纯文本输入,并且它们可能使用check_plain()来编码特殊字符(实际上没有查看视图后端)。Drupal 7视图 - 如何在字段标签内使用HTML代码?
HTML代码如何在标签内使用?
编辑:我以为我的问题很清楚。我不想重写字段,我想在标签内使用HTML代码,就这些。
我想通了。虽然您无法在视图用户界面的标签内使用HTML输入,但您可以在样式输出模板中自定义标签。
例如对于使用表格样式输出“实例”视图您可以自定义views-view-table--example.tpl.php
和使用这样的代码:
//custom label for title field
$header['title'] = '<strong>Foo</strong> bar';
如果您只需围绕HTML标签打包文本,则可以通过'Style settings'部分中的'Customize label HTML'复选框来控制字段config中的标题HTML。虽然这些选项非常有限。 – cambraca
您可以使用该字段的Rewrite output
选项。
不,我不能使用它。这只会重写字段的内容,但我需要的是在标签内部添加HTML代码。您的解决方案可以被认为是解决方法,但在表格样式视图的情况下不起作用。抱歉。 – ovi
这和'strip html'没有任何关系,忽略了。
正是因为这个原因,视图字段中有'重写'函数。以便重写html输出,然后使用令牌重新插入动态元素。
因此改写领域,H1标签,你可能会做这样的事它包裹...
编辑你的领域。在D7 Views 3中,您会看到'重写结果'下的切换部分。打开它并勾选'重写此字段的输出'。
在其下型的大盒子:
<h1>[title]</h1>
就是这样。简单。当视图被重新整理时,标题文本将被包裹在h1标签中。
您可以在重写规则中使用的标记在名为“替换模式”的切换中列出,位置稍低一点 - 它们根据字段的类型而变化。
我不是初学者,我知道如何重写字段。问题是我不知道如何“重写”标签。就像我对@Marius Ilie回答的那样,这只是一种解决方法,在表格式视图的情况下这不起作用。 – ovi
查看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() : '');
我编辑模块主题/主题。 inc文件:删除check_plain
你应该[永远不要核心](http://drupal.org/best-practices/do-not-hack-core)或贡献模块来实现你的目标。 – ovi
另一种解决方案是为特定的视图格式添加新的处理函数,并对该预处理函数进行更改。
例子:
/**
* 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';
}
}
这比我的初始解决方案稍微复杂一点,但是当需要在多个视图和一些类似的场景中覆盖相同的标签时,这种方法将证明它本身非常有用。谢谢! – ovi
我不知道如果我理解问题的权利。视图有选项“剥离HTML标记如果选中,所有HTML标记都将被剥离。”所以默认情况下,html应该被允许在字段中,这也应该对标签也是如此。如果你可以把一些更多的信息,它会很好 –