concrete/src/Updater/Migrations/Migrations/Version20181116072400.php
protected function fixOverlappingStartEndDates()
    {
        $rs = $this->connection->executeQuery(<<<'EOT'
select
    cv1.cID,
    cv1.cvID
from
    CollectionVersions as cv1
    inner join CollectionVersions as cv2
        on cv1.cID = cv2.cID
        and cv1.cvID <> cv2.cvID
        and cv1.cvIsApproved = cv2.cvIsApproved
where
    cv1.cvIsApproved = 1
    and ifnull(cv1.cvPublishDate, '0000-00-00 00:00:00') <= ifnull(cv1.cvPublishEndDate, '9999-99-99 99:99:99')
    and ifnull(cv1.cvPublishEndDate, '9999-99-99 99:99:99') >= ifnull(cv2.cvPublishDate, '0000-00-00 00:00:00')
order by
    cv1.cID,
    cv1.cvID desc
EOT
        );
        $page = null;
        while (($row = $rs->fetch(PDO::FETCH_ASSOC)) !== false) {
            if ($page === null || $page->getCollectionID() != $row['cID']) {
                $page = Page::getByID($row['cID'], $row['cvID']);
            } else {
                $page->loadVersionObject($row['cvID']);
            }
            $version = $page->getVersionObject();
            // Force fixing other collection version publish date/time interval
            $version->setPublishInterval($version->getPublishDate(), $version->getPublishDate());
        }
    }
protected function fixOverlappingStartEndDates()
    {
        $rs = $this->connection->executeQuery(<<<'EOT'
select
    cv1.cID,
    cv1.cvID
from
    CollectionVersions as cv1
    inner join CollectionVersions as cv2
        on cv1.cID = cv2.cID
        and cv1.cvID <> cv2.cvID
        and cv1.cvIsApproved = cv2.cvIsApproved
where
    cv1.cvIsApproved = 1
    and ifnull(cv1.cvPublishDate, '0000-00-00 00:00:00') <= ifnull(cv1.cvPublishEndDate, '9999-99-99 99:99:99')
    and ifnull(cv1.cvPublishEndDate, '9999-99-99 99:99:99') >= ifnull(cv2.cvPublishDate, '0000-00-00 00:00:00')
order by
    cv1.cID,
    cv1.cvID desc
EOT
        );
        $page = null;
        while (($row = $rs->fetch(PDO::FETCH_ASSOC)) !== false) {
            if ($page === null || $page->getCollectionID() != $row['cID']) {
                $page = Page::getByID($row['cID'], $row['cvID']);
            } else {
                $page->loadVersionObject($row['cvID']);
            }
            $version = $page->getVersionObject();
            // Force fixing other collection version publish date/time interval
            $version->setPublishInterval($version->getPublishDate(), $version->getPublishDate());
        }
    }
protected function fixOverlappingStartEndDates ( ) { $ rs = $ this -> connection -> executeQuery ( <<<'EOT'
select
    cv1.cID,
    cv1.cvID
from
    CollectionVersions as cv1
    inner join CollectionVersions as cv2
        on cv1.cID = cv2.cID
        and cv1.cvID <> cv2.cvID
        and cv1.cvIsApproved = cv2.cvIsApproved
where
    cv1.cvIsApproved = 1
    and ifnull(cv1.cvPublishDate, '0000-00-00 00:00:00') <= ifnull(cv1.cvPublishEndDate, '9999-99-99 99:99:99')
    and ifnull(cv1.cvPublishEndDate, '9999-99-99 99:99:99') >= ifnull(cv2.cvPublishDate, '0000-00-00 00:00:00')
order by
    cv1.cID,
    cv1.cvID desc
EOT ) ; $ page = null ; while ( ( $ row = $ rs -> fetch ( PDO :: FETCH_ASSOC ) ) !== false ) { if ( $ page === null || $ page -> getCollectionID ( ) != $ row [ 'cID' ] ) { $ page = Page :: getByID ( $ row [ 'cID' ] , $ row [ 'cvID' ] ) ; } else { $ page -> loadVersionObject ( $ row [ 'cvID' ] ) ; } $ version = $ page -> getVersionObject ( ) ; // Force fixing other collection version publish date/time interval $ version -> setPublishInterval ( $ version -> getPublishDate ( ) , $ version -> getPublishDate ( ) ) ; } }
Be sure that there are not approved collection versions with overlapping publish dates.
Be sure that there are not approved collection versions with overlapping publish dates .