以编程方式将默认图像添加到内容类型

时间:2014-01-13 15:05:30

标签: image drupal drupal-7 default content-type

是否可以使用功能,模块或任何内容将“默认图像”文件添加到内容类型字段。我到目前为止找到的唯一方法是将图像链接添加到没有图像创建的每个节点,但我想知道我是否可以使用更好的东西并推荐

我在question找到了一些相关信息。

- 编辑 -

为了澄清,我的意思是“内容类型中图像字段的默认图像”

但是,我正在使用功能创建内容类型,使用脚本创建网站。我不能使用表格或任何相关的东西,因为我可能永远不会自己触摸该网站。我希望将其全部自动化(:

谢谢!

3 个答案:

答案 0 :(得分:0)

默认图像在功能中不会出现,但您可以在模块中使用hook_field_default_fields_alter来设置该字段的默认图像。

以下是关于Drupal网站的讨论: https://drupal.org/node/1439136

评论6是一个可以适应您的领域的单个用例,而评论7是一个更通用的解决方案,您可以将其用于多个领域。

答案 1 :(得分:0)

我一直想尝试类似的东西。不知道它究竟是如何工作的,但一般的想法如下:

创建规则 - 插入内容类型。

让规则设置将成为图像的数据值。

在我的情况下,我打算创建一个新的内容类型(ImageNodes),它只是一个小的静态节点集。每个ImageNodes节点将包含一个键和一个图像。在我的规则中设置数据值时,我将检查正在插入的内容中的另一个字段,并将其用作对正确的ImageNodes节点的引用。

这种方法允许我在插入时将默认图像附加到我的内容节点,以允许它根据插入节点的内容附加备用图像。

注意,这种方法可以通过将图像创建为实体引用(或类似)来实现,或者规则模块足够智能,我可以将ImageNodes节点中的图像字段复制到内容中的图像字段正在插入的节点。如果没有选择任何条件,则为规则添加条件将使您能够仅注入默认图像。

答案 2 :(得分:0)

以下代码我在drupal.org上从Features issue #1439136: Support imagefield default images改编为使用功能API版本1。

通过更改钩子名称可以很容易地调整它以使用Features API版本2,如下面的注释和注释中所述。

此代码示例应添加到主模块文件ObjectMapper中。我建议最好添加到定义实体和字段的功能模块。它应该适用于任何Drupal可实现的实体。我已将它与用户,节点,分类词汇表和字段集合项一起使用。

要在您自己的模块中实现此功能,请复制下面的代码,然后:

  1. 将所有出现的modulename.module替换为您的模块计算机名称。
  2. modulename返回的数组中定义所有字段图像默认值。
  3. 使用名为modulename_images_fields_defaults()的文件夹
  4. 将默认图像放入模块路径

    备注:

    • 可以从名为images的功能API 1文件轻松找到并复制字段计算机名称。
    • 在功能API 2中,字段定义分为modulename.features.field.incmodulename.features.field_bases.inc,因此钩子也会重命名,可用于字段基础或字段实例:
      • modulename.features.field_instances.inc
      • hook_field_default_field_bases_alter()

    <强>代码:

    hook_field_default_field_instances_alter()