如何从字段标签中删除冒号?


10

我只是希望能够从渲染的字段标签中删除冒号,例如:

酒店名称:至酒店名称

我复制了field.tpl.php并在那里删除了冒号,但是无论Drupal拒绝接受它是什么,并且正在从其他地方拉冒号。

如何使用template.php函数执行此操作?


您是否清除了缓存?
AjitS,2012年

是的,几次。不行
blue928


@ blue928看到重复的帖子,您需要重写theme_form_element()才能执行此操作
Clive

当有人编辑/输入内容时,上面的节点/修复程序只是从表单中删除了冒号。标签在节点中渲染后,我需要删除它们。..因此,它不会与上述内容重复。我实际上实施了该解决方案以获得该结果。
blue928

Answers:


16

答案肯定是使用field.tpl.php。如果查看该文件的源代码,则可以看到有问题的行:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>:&nbsp;
  </div>
<?php endif; ?>

(为了清楚起见,请注意间距和缩进)。

删除冒号就像用以下命令替换上述行一样简单:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>&nbsp;
  </div>
<?php endif; ?>

我刚刚在空白的Drupal安装上进行了测试,它可以完美运行;字段标签后不再有冒号。

如果您已经在做同样的事情,但是没有得到正确的结果,那么我可以想到一两个可能出错的事情:

  • 您已将field.tpl.php的自定义版本放入模块文件夹中,而不是放在站点的活动主题文件夹中(它必须位于主题文件夹中)。
  • 系统中的另一个模块/元素也以比您当前更健壮的方式覆盖field.tpl.php。要确定是否存在这种情况,将涉及到总是烦琐地禁用每个启用的模块来确定问题的根源。

由于冒号已硬编码到模板文件中,因此您将无法使用模板预处理功能进行更改。


嗯,确实有另一个模块阻止模板文件正常工作。感谢您指出一些有用的调试指导。
blue928 2012年

9

我刚刚创建了一个模块,该模块正是这样做的,它从输出的字段标签中删除了结肠(在每个字段的基础上):结肠切除术


可以确认。该模块工作出色,是解决该问题的简单,优雅的解决方案。
2015年


2

显示套件也提供相同的功能:

如果启用展示套件额外功能,则可以选择在标签前删除冒号:

这样做的路径是: /admin/structure/ds/list/extras/

在此处输入图片说明


1
这比删除冒号要多得多。如果您已经应用了自定义CSS,这将会杀死它。
2015年

0

就我而言,它是通过覆盖theme_field()field.module)的方式来工作的,方法是将整个函数复制到我的template.php文件中,并更改读取

$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . '&nbsp;</div>';

尝试之前先清除缓存。


0

我在任何地方都找不到Drupal 8的答案。如果您将Drupal 8用作基本主题,则在Classy核心主题中为冒号添加了CSS文件(field.css)。您所要做的就是在您自己的主题的CSS文件中覆盖它。

因此,从原始的field.css文件中:

.field--label-inline .field__label::after {
    content: ':';
}

在我的主题CSS文件中删除冒号:

.field--label-inline .field__label::after {
    content: '';
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.