/** * Constructs a BaseCommand object. * * @param string $data * The data to pass on to the client side. */ public function __construct(PageVariantInterface $page_variant) { $this->command = 'layoutReload'; $this->data = PageLayout::getLayoutPageVariantClientData($page_variant); }
/** * {@inheritdoc} */ public function buildConfigurationForm(array $form, array &$form_state) { // Adding $adding_variant = !isset($this->configuration['layout']); $form = parent::buildConfigurationForm($form, $form_state); $form['layout'] = array('#title' => t('Layout'), '#type' => 'select', '#default_value' => $this->getLayoutId(), '#options' => Layout::getLayoutOptions(), '#disabled' => !$adding_variant, '#description' => t('Note: change a template would require salvaging blocks from disappearing regions. We will do that ... soon.'), '#required' => TRUE); $page = $form_state['build_info']['args'][0]; if (!$adding_variant) { $page_variant = $page->getVariant($form_state['build_info']['args'][1]); $page_variant->init($page->getExecutable()); $form['links'] = array('#type' => 'markup', '#markup' => l(t('Preview layout'), $page->get('path'), array('attributes' => array('target' => drupal_html_id($page->id()))))); // This is just a quick hack, we need some form of theme_layout_ui call. $form['blocks'] = array('#title' => t('Blocks'), '#markup' => '<label>' . t('Layout UI') . '</label>' . '<div class="layout-configure-form">' . '<div id="layout-app">' . '<div class="operations">' . '<a class="highlight-blocks" href="#blocks">' . $this->t('Focus on blocks') . '</a> ' . '<a class="highlight-regions" href="#regions">' . $this->t('Focus on regions') . '</a> ' . '</div>' . '<div class="layout-app-inner"></div>' . '</div>' . '</div>', '#default_value' => '', '#attached' => array('library' => array('page_layout/layout'), 'js' => array(array('data' => PageLayout::getLayoutPageVariantClientData($page_variant), 'type' => 'setting')))); } return $form; }