Php 如何确定在混凝土5中添加块的日期?

Php 如何确定在混凝土5中添加块的日期?,php,concrete5,Php,Concrete5,$block->getBlockDateAdd()和$block->getBlockDateLastModified()都返回相同的时间戳,即上次修改的时间戳(在我的所有测试中) 这可能是因为每次修改块时,Concrete5都会创建一个新版本,因此$block->getBlockDateAdded()似乎会返回添加特定版本的日期,这与上次修改相同。那又有什么用呢 更重要的是:有没有办法获得添加块的“真实”日期,这意味着创建了第一个版本?我认为这是不可能的,因为版本历史记录保存在集合(页面)中,正

$block->getBlockDateAdd()
$block->getBlockDateLastModified()
都返回相同的时间戳,即上次修改的时间戳(在我的所有测试中)

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


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

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

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

编辑:我在论坛中找到了一个可能实现这一点的解决方案:

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;
}