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;
 }
Example #2
0
 public function getPageTypeObject()
 {
     return parent::getPageTypeObject();
 }