public function getPageTypeComposerControlBlockObject(Page $c) { $app = Application::getFacadeApplication(); $db = $app->make('database')->connection(); if (!is_object($this->b)) { $setControl = $this->getPageTypeComposerFormLayoutSetControlObject(); $r = $db->fetchAssoc($q = 'select cdb.bID, cdb.arHandle from PageTypeComposerOutputBlocks cdb inner join CollectionVersionBlocks cvb on (cdb.bID = cvb.bID and cvb.cID = cdb.cID and cvb.cvID = ?) where cdb.ptComposerFormLayoutSetControlID = ? and cdb.cID = ?', [$c->getVersionID(), $setControl->getPageTypeComposerFormLayoutSetControlID(), $c->getCollectionID()]); if (!$r) { // this is the first run. so we look for the proxy block. $pt = PageTemplate::getByID($c->getPageTemplateID()); $outputControl = $setControl->getPageTypeComposerOutputControlObject($pt); if (is_object($outputControl)) { $cm = $c->getPageTypeObject(); $mc = $cm->getPageTypePageTemplateDefaultPageObject($pt); $r = $db->fetchAssoc('select bco.bID, cvb.arHandle from btCorePageTypeComposerControlOutput bco inner join CollectionVersionBlocks cvb on cvb.bID = bco.bID where ptComposerOutputControlID = ? and cvb.cID = ?', [$outputControl->getPageTypeComposerOutputControlID(), $mc->getCollectionID()]); } } if ($r) { $b = Block::getByID($r['bID'], $c, $r['arHandle']); $this->setPageTypeComposerControlBlockObject($b); return $this->b; } } return $this->b; }
public function getVersionID() { return parent::getVersionID(); }