0

$block->getBlockDateAdded()并且$block->getBlockDateLastModified()两者都返回相同的时间戳,即最后一次修改的时间戳(在我所有的测试中)。

这可能是因为对块 Concrete5 的每次修改都会创建一个新版本,因此$block->getBlockDateAdded()似乎返回添加特定版本的日期,这与上次修改相同。但是那有什么用呢?

更重要的是:有没有办法获得添加块的“真实”日期,意味着创建第一个版本?

4

1 回答 1

1

我认为这是不可能的,因为版本历史记录与集合(页面)一起保存,并且正如您所提到的,为每个新页面版本创建一个新的块记录。

查看数据库中的 CollectionVersionBlocks 表,我看不到任何可用于将一个块与先前版本相关联的键——因此无法通过 Collection Versions 回溯并查看块的第一次存在发生的位置(您可以根据块类型和区域进行猜测,但这不能确定,因为用户可能将其从一个区域移动到另一个区域,或者页面上可能有多个相同类型的块)。

编辑:我在论坛中找到了可能实现此目的的解决方案:

private function find_prev_bID($bID) {
    if (empty($bID)){
        return;
    }
    $db = Loader::db();
    $prev_bID = $db->GetOne( 'SELECT originalBID FROM BlockRelations WHERE bID = ? AND relationType = ?', array($bID, 'DUPLICATE') );
    return $prev_bID;
}
于 2012-10-26T20:25:00.890 回答