Php 如何覆盖新行上CCK字段的Drupal deafult输出内容
我对Drupal很陌生(使用7),但我已经设法设置了我的内容类型(例如,Php 如何覆盖新行上CCK字段的Drupal deafult输出内容,php,templates,drupal,field,Php,Templates,Drupal,Field,我对Drupal很陌生(使用7),但我已经设法设置了我的内容类型(例如,'concert'),并且我创建了一个节点concert.tpl.php,我需要重写它的HTML结构,以适应concert内容类型的特定信息 在这种内容类型中,我有大量的CCK字段(几乎都是单行文本字段),我知道如何使用访问字段的内容。我的问题是:Drupal将每个字段输出到新行。因此,如果我有以下字段和以下值: field_concert_date = January 1, 2013 field_concert_time
'concert'
),并且我创建了一个节点concert.tpl.php
,我需要重写它的HTML结构,以适应concert
内容类型的特定信息
在这种内容类型中,我有大量的CCK字段(几乎都是单行文本字段),我知道如何使用
访问字段的内容。我的问题是:Drupal将每个字段输出到新行。因此,如果我有以下字段和以下值:
field_concert_date = January 1, 2013
field_concert_time = 3 PM
field_concert_location = Boston, MA
Drupal只需在新行上输出每个字段值(所有字段标签都隐藏)。我想要的输出类似于:
January 1, 2013 at 3PM in Boston, MA
我试图通过将所有三个字段的输出包装在
标记中来实现这一点,如下所示:
at in
但是Drupal仍然在自己的行中输出所有内容(甚至是
标记中的硬编码文本):
January 1, 2013
at
3 PM
in
Boston, MA
我看了一下,也做了一些基本的谷歌搜索,但我找不到这个特定的问题的参考。我假设罪魁祸首在于一些额外的标记,这些标记被添加到某个地方,强制在每个字段的末尾添加新行,但我不完全确定它来自何处。是否在字段.tpl.php
中?还是别的地方?或者它与调用render()
(在render()
成功返回字段内容后强制换行)有关?正如我所说,我对Drupal还相当陌生,还没有弄清楚如何找出像这样的小规模(但很重要!)问题
谢谢
另一个注意事项:我正在从头开始创建Drupal主题,到目前为止,我使用的唯一CSS是CSS重置。您是否使用文本作为这些字段的输入格式?从那里开始(/admin/structure/types/manage/[content\u type]/fields) 然后检查管理显示选项卡中有问题的内容类型(/admin/structure/types/Manage/[content\u type]/Display),并确保使用的是纯文本格式
另外,请检查过滤器处理顺序是否为应用于这些字段的文本格式启用了任何过滤器,屏幕位于/admin/config/content/formats。是的,文本是所有字段的输入格式,它们都格式化为纯文本。我可以通过定制
field.tpl.php
并去掉其中包含的所有多余标记(三个div
s只输出一个字段!)来解决这个问题,只在foreach
循环中留下
。我不确定这是否是最可持续的解决方案,但它实现了我想要的。如果有更好的解决方案,我当然很高兴听到他们!这是一个可靠的可持续解决方案。如果这是您第一次定制Drupal模板,恭喜您。一旦开始在模板级别工作,您就可以做一些令人兴奋的事情。