【问题标题】:How can my module inform the drupal Block module that a block no longer exists?我的模块如何通知 drupal Block 模块一个块不再存在?
【发布时间】:2012-03-25 13:03:08
【问题描述】:

我的模块定义了可变数量的块,然后这些块可供“块”模块在特定区域显示。

当我的模块删除一个块时,drupal 仍然认为它存在。我如何告诉drupal应该丢弃一个块?我正在寻找类似 block_delete($module, $delta) 的东西,但它不存在。

干杯,

阿尔伯特。

【问题讨论】:

  • 您不必这样做。如果在模块中的某个地方调用了 hook_block(),则会添加一个块。您所说的“当我的模块删除一个块时”到底是什么意思?它是否以与在 /admin/build/block/add 中添加自定义块相同的方式创建“自定义块”?
  • 您好,感谢您的回答。这是一个更具体的例子:(1)用户进入我模块的管理页面,可以添加/编辑/删除任意数量的“块”。然后通过 hook_block() 使这些对块模块可见。 (2) 用户然后将这些块之一(例如 delta 1)放在给定区域中。 (3) 用户返回管理页面并删除块 delta 1 (4) 现在访问任何页面都会给我一个错误,因为块系统“认为”我的模块的块 delta 1 仍在一个区域中,但它不再存在。那么:删除我的block时,如何强制block模块从所有region中删除呢?

标签: drupal drupal-7


【解决方案1】:

您可以在块表中搜索您的块的任何引用,并在您用于删除块的表单的提交功能中将它们从表中删除。我认为没有更清洁的方法可以确保移除块。您可以查看 menu_block 如何处理此问题(如果没有)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多