如何在Drupal7中向块添加自定义字段



我希望能够在Drupal中向块添加自定义字段?我有一个横跨整个页面宽度的页眉区域。下面是正文内容的左列和各个块的右侧边栏。页眉区域需要有一个背景图像,上面显示文本。希望通过为背景图像和文本自定义字段的块来实现这一点。

更好的方法是使用hook_block_info()hook_pages_block_view()在代码中创建自定义块。然后通过hook_block_configure()添加附加字段。

使用表单api,您可以添加任何类型的字段。

使用Bean模块,这将允许您创建带有字段的自定义块类型,甚至是图像字段。它与blocks模块很好地集成在一起。观看此视频进行演示-http://www.youtube.com/watch?v=Eu1YNy-BNG8

您可以使用视图模块、字段和块来实现这一点。

  1. 创建一个名为"背景图像"的内容类型,其中包含"图像上载"字段和要显示的任何其他字段
  2. 使用"视图"可以创建显示为块的视图。您可以根据自己的意愿设置要重写的字段
  3. 使用"视图"设置,将背景图像显示为路径,而不是图像

例如,您可以使用视图中的字段替换来设置类似的内容:

<div style="background: [field_image] left top no-repeat">
<h2>[title]</h2>
<p>[field_whatever]</p>
</div>

这看起来有点过头了,但它会把它掌握在客户手中。你还想做一些限制,让它只使用某个节点ID,这样他们就不会创建一百万个背景图像节点并破坏网站。希望这能有所帮助。

我做这件事的方式(我知道其他几个人也这样做)是制作一个内容类型"块内容"。在那里,您可以创建任意数量的字段。

然后,在块(mynodetype)将出现的节点类型处创建一个节点引用字段。

然后你制作了一个视图块:即"自定义块",在这里你可以给出一个关系上下文。大多数情况下,此上下文类似于:显示由"mynodetype"中的引用字段引用的节点的字段(nodetype:block content)。

我发现这是一个非常干净的解决方案,效果很好,因为你只有一个块,它在需要时显示,内容仍然在节点中,不会污染块管理页面。

您只能将字段附加到实体,因为块不是实体,恐怕您无法解决字段的问题。

最好的办法是将块的内容设置为要显示的文本,并使用CSS将包含的div作为目标,并在其上放置背景图像。

或者,只需将块内容的过滤器更改为"Full HTML",并在线编写样式,例如

<div style="background:url(some/path)">Block content here</div>

您可以尝试使用节点块来定义将自动创建块的内容类型。然后,有了一点CSS,你就可以做你想做的事了。

相关内容

  • 没有找到相关文章

最新更新