我希望能够在Drupal中为块添加自定义字段吗?我有一个标题区域,跨越页面的整个宽度。下面是左侧列的主体内容和右侧边栏的各种块。标题区域需要有一个背景图像,文本显示在它上面。希望通过具有背景图像和文本的自定义字段的块来执行此操作。
答案 0 :(得分:4)
更好的方法是使用hook_block_info()
和hook_pages_block_view()
在代码中创建自定义块。然后通过hook_block_configure()
添加其他字段。
使用表格api,您可以添加任何类型的字段。
答案 1 :(得分:2)
使用Bean module,这将允许您创建包含字段,甚至图像字段的自定义块类型。它与块模块很好地集成。观看此视频即可获得演示 - http://www.youtube.com/watch?v=Eu1YNy-BNG8
答案 2 :(得分:1)
您可以使用视图模块,字段和块来实现此目的。
例如,您可以使用视图中的字段替换来设置类似的内容:
<div style="background: [field_image] left top no-repeat">
<h2>[title]</h2>
<p>[field_whatever]</p>
</div>
看起来有点矫枉过正,但它会把它交到客户手中。您还需要做一些限制,以使其仅使用某个节点ID,以便它们不会创建一百万个背景图像节点并破坏该站点。希望这会有所帮助。
答案 3 :(得分:1)
我这样做的方式,(我知道其他几个也这样做的人)就是制作一个内容类型的“块内容”。在那里,您可以根据需要创建任意数量的字段。
然后在节点类型处创建一个节点引用 - 字段,在那里你的块(mynodetype)将出现。
然后你创建一个视图 - 阻止:即你提供关系的“自定义块” - 上下文。大多数情况下,此上下文将类似于:显示节点的字段(nodetype:block content),该字段由“mynodetype”中的引用字段引用。
我发现这是一个非常干净的解决方案并且它运行良好,因为您只需要一个块在需要时显示,内容仍然在节点中并且不会污染块管理页面。
答案 4 :(得分:0)
您只能将字段附加到实体,因为块不是实体我担心您无法用字段解决问题。
您最好的选择是将块的内容设置为您要显示的文本,并使用CSS定位包含div并将背景图像放在其上。
或者只是将块内容的过滤器更改为“完整HTML”并将内容编写为内联,例如
<div style="background:url(some/path)">Block content here</div>
答案 5 :(得分:0)
您可以尝试使用Node Blocks来定义将自动创建块的内容类型。然后,通过一些CSS,您将能够做您想做的事。