如何在Drupal 7中为块添加自定义字段?

时间:2012-01-05 16:42:59

标签: drupal drupal-7 drupal-blocks

我希望能够在Drupal中为块添加自定义字段吗?我有一个标题区域,跨越页面的整个宽度。下面是左侧列的主体内容和右侧边栏的各种块。标题区域需要有一个背景图像,文本显示在它上面。希望通过具有背景图像和文本的自定义字段的块来执行此操作。

6 个答案:

答案 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)

您可以使用视图模块,字段和块来实现此目的。

  1. 使用“图像上传”字段和您要显示的任何其他字段
  2. 创建名为“背景图像”的内容类型
  3. 使用视图创建一个显示为块的视图。您可以设置要重写的字段,但是您可以。
  4. 使用“视图”设置,将背景图像显示为路径而非图像。
  5. 例如,您可以使用视图中的字段替换来设置类似的内容:

    <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,您将能够做您想做的事。