0

$block->getBlockDateAdded()両方とも$block->getBlockDateLastModified()同じタイムスタンプを返します。これは(私のすべてのテストで)最後の変更のタイムスタンプです。

これは、ブロックを変更するたびに、Concrete5が新しいバージョンを作成するため$block->getBlockDateAdded()、特定のバージョンが追加された日付を返すように見えるためである可能性があります。これは、最後の変更と同じです。しかし、そのときの用途は何ですか?

そしてもっと重要なこと:ブロックが追加された「実際の」日付を取得する方法はありますか?つまり、最初のバージョンが作成されますか?

4

1 に答える 1

1

バージョン履歴はコレクション(ページ)に保持され、おっしゃるように、新しいページバージョンごとに新しいブロックレコードが作成されるため、これは不可能だと思います。

データベースのCollectionVersionBlocksテーブルを見ると、1つのブロックを以前のバージョンに関連付けるために使用できるキーが見つかりません。したがって、コレクションバージョンをさかのぼって、ブロックの最初の存在がどこで発生するかを確認する方法はありません。 (ブロックタイプと領域に基づいて推測できますが、ユーザーがそれをある領域から別の領域に移動したか、ページ上に同じタイプの複数のブロックが存在する可能性があるため、これは確実ではありません)。

編集:私はこれを達成するかもしれないフォーラムで解決策を見つけました:

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 に答える