public function getImportData($blockNode, $page) { $args = array(); $formLayoutSetControlID = ContentImporter::getPageTypeComposerFormLayoutSetControlFromTemporaryID((string) $blockNode->control['output-control-id']); $formLayoutSetControl = PageTypeComposerFormLayoutSetControl::getByID($formLayoutSetControlID); $pt = PageTemplate::getByID($page->getPageTemplateID()); $outputControl = PageTypeComposerOutputControl::getByPageTypeComposerFormLayoutSetControl($pt, $formLayoutSetControl); $args['ptComposerOutputControlID'] = $outputControl->getPageTypeComposerOutputControlID(); return $args; }
public function getPageTypeComposerOutputControlObject(PageTemplate $pt) { $db = Loader::db(); $ptComposerOutputControlID = $db->GetOne('select ptComposerOutputControlID from PageTypeComposerOutputControls where ptComposerFormLayoutSetControlID = ? and pTemplateID = ?', array($this->ptComposerFormLayoutSetControlID, $pt->getPageTemplateID())); if ($ptComposerOutputControlID) { return PageTypeComposerOutputControl::getByID($ptComposerOutputControlID); } }
<?php defined('C5_EXECUTE') or die("Access Denied."); use Concrete\Core\Page\Type\Composer\OutputControl as PageTypeComposerOutputControl; use Concrete\Core\Page\Type\Composer\FormLayoutSetControl as PageTypeComposerFormLayoutSetControl; $c = Page::getCurrentPage(); // retrieve all block controls attached to this page template. $pt = PageTemplate::getByID($c->getPageTemplateID()); $ptt = PageType::getByDefaultsPage($c); $controls = PageTypeComposerOutputControl::getList($ptt, $pt); $values = array(); foreach ($controls as $control) { $fls = PageTypeComposerFormLayoutSetControl::getByID($control->getPageTypeComposerFormLayoutSetControlID()); $cc = $fls->getPageTypeComposerControlObject(); $values[$control->getPageTypeComposerOutputControlID()] = $cc->getPageTypeComposerControlName(); } $form = Loader::helper('form'); ?> <div class="form-group"> <label for="ptComposerOutputControlID" class="control-label"><?php echo t('Control'); ?> </label> <?php echo $form->select('ptComposerOutputControlID', $values, $ptComposerOutputControlID); ?> </div>
<?php defined('C5_EXECUTE') or die("Access Denied."); use Concrete\Core\Page\Type\Composer\OutputControl as PageTypeComposerOutputControl; use Concrete\Core\Page\Type\Composer\FormLayoutSetControl as PageTypeComposerFormLayoutSetControl; $control = PageTypeComposerOutputControl::getByID($ptComposerOutputControlID); if (is_object($control)) { $fls = PageTypeComposerFormLayoutSetControl::getByID($control->getPageTypeComposerFormLayoutSetControlID()); $cc = $fls->getPageTypeComposerControlObject(); if (is_object($cc)) { ?> <div class="ccm-ui"> <div class="alert alert-info"> <?php if ($fls->getPageTypeComposerFormLayoutSetControlCustomLabel()) { $displayname = $fls->getPageTypeComposerFormLayoutSetControlCustomLabel(); } else { $displayname = $cc->getPageTypeComposerControlDisplayName(); } echo t('The %s page type composer form element will output its contents here (Block ID %s)', $displayname, $b->getBlockID()); ?> </div> </div> <?php } }
public function getPageTypeComposerOutputControlObject(Template $pt) { $app = Application::getFacadeApplication(); $db = $app->make('database')->connection(); $ptComposerOutputControlID = $db->fetchColumn('select ptComposerOutputControlID from PageTypeComposerOutputControls where ptComposerFormLayoutSetControlID = ? and pTemplateID = ?', [$this->ptComposerFormLayoutSetControlID, $pt->getPageTemplateID()]); if ($ptComposerOutputControlID) { return PageTypeComposerOutputControl::getByID($ptComposerOutputControlID); } }