检测 Block 在 Concrete5 中是否处于活动状态

Detect if Block is active in Concrete5

Concrete5 块在 "removed" 时不会被删除,因为历史中的一致性原因。

现在我有以下情况: 我有一个 自定义块,数据库 table 名为 btMyCustomBlock

看起来像这样:

 |---bID---|---cID---|---someParam---|

现在,当这样一个块是 "removed" 并且页面被保存时,数据库仍然会维护这个块 - 这没问题。

但是:我需要一种方法来检测我的块现在是否在此页面上使用。我正在寻找类似的东西:

Select a random entry from btMyCustomBlock WHERE entry is used as a block on the page right now.

我该怎么做?我发现 table Blocks 有字段 bIsActive 但似乎这与我正在寻找的内容不相关,是吗?

我相信你要找的就是这个

SELECT b.*
FROM btMyCustomBlock b
INNER JOIN CollectionVersionBlocks cvb ON b.bID = cvb.bID
INNER JOIN CollectionVersions cv ON cvb.cvID = cv.cvID
WHERE cv.cvIsApproved = 1

获取连接到当前批准的页面版本的所有记录。