/** * Modify palette if bootstrap is used. * * Hook palettes_hook (MetaPalettes) is called. * * @return void * * @SuppressWarnings(PHPMD.Superglobals) */ public function generatePalette() { // @codingStandardsIgnoreStart // TODO: How to handle editAll actions? // @codingStandardsIgnoreEnd if (Input::get('table') != 'tl_layout' || Input::get('act') != 'edit') { return; } $layout = LayoutModel::findByPk(Input::get('id')); // dynamically render palette so that extensions can plug into default palette if ($layout->layoutType == 'bootstrap') { $metaPalettes =& $GLOBALS['TL_DCA']['tl_layout']['metapalettes']; $metaPalettes['__base__'] = $this->getMetaPaletteOfPalette('tl_layout'); $metaPalettes['default extends __base__'] = Bootstrap::getConfigVar('layout.metapalette', array()); // unset default palette. otherwise metapalettes will not render this palette unset($GLOBALS['TL_DCA']['tl_layout']['palettes']['default']); $subSelectPalettes = Bootstrap::getConfigVar('layout.metasubselectpalettes', array()); foreach ($subSelectPalettes as $field => $meta) { foreach ($meta as $value => $definition) { unset($GLOBALS['TL_DCA']['tl_layout']['subpalettes'][$field . '_' . $value]); $GLOBALS['TL_DCA']['tl_layout']['metasubselectpalettes'][$field][$value] = $definition; } } } else { MetaPalettes::appendFields('tl_layout', 'title', array('layoutType')); } }
/** * Add form validation to the palette of supported widgets. * * @return void */ public function addFormValidationToPalette() { foreach ($this->getDefinition()->get(['palettes'], []) as $name => $palette) { if (is_array($palette) || !in_array($name, $this->supportedWidgets)) { continue; } MetaPalettes::appendBefore('tl_form_field', $name, 'expert', array('formvalidation' => array('fv_enabled'))); } if ($this->getDefinition()->has(['palettes', 'checkbox'])) { MetaPalettes::appendFields('tl_form_field', 'checkbox', 'expert', array('minlength', 'maxlength')); } }
/** * Add the toggle feature field to the palette. * * @param DataContainer $dataContainer Data container driver. * * @return void * @SuppressWarnings(PHPMD.Superglobals) */ public function addToggleFeatureField(DataContainer $dataContainer) { if (!isset($this->legendMapping[$dataContainer->table])) { return; } foreach ($GLOBALS['TL_DCA'][$dataContainer->table]['palettes'] as $name => $palette) { if (is_array($palette)) { continue; } MetaPalettes::appendFields($dataContainer->table, $name, $this->legendMapping[$dataContainer->table], ['feature_toggle']); } }
<?php /** * Contao I18n provides some i18n structures for easily l10n websites. * * @package dev * @author David Molineus <*****@*****.**> * @copyright 2015 netzmacht creative David Molineus * @license LGPL 3.0 * @filesource * */ use Bit3\Contao\MetaPalettes\MetaPalettes; /* * Palettes */ $GLOBALS['TL_DCA']['tl_module']['palettes']['i18n_navigation'] =& $GLOBALS['TL_DCA']['tl_module']['palettes']['navigation']; $GLOBALS['TL_DCA']['tl_module']['palettes']['i18n_form'] =& $GLOBALS['TL_DCA']['tl_module']['palettes']['form']; MetaPalettes::appendFields('tl_module', 'login', 'redirect', ['jumpToI18n']); MetaPalettes::appendFields('tl_module', 'logout', 'redirect', ['jumpToI18n']); MetaPalettes::appendFields('tl_module', 'personalData', 'redirect', ['jumpToI18n']); MetaPalettes::appendFields('tl_module', 'registration', 'redirect', ['jumpToI18n']); MetaPalettes::appendFields('tl_module', 'lostPassword', 'redirect', ['jumpToI18n']); MetaPalettes::appendFields('tl_module', 'closeAccount', 'redirect', ['jumpToI18n']); MetaPalettes::appendFields('tl_module', 'search', 'redirect', ['jumpToI18n']); /* * Fields */ $GLOBALS['TL_DCA']['tl_module']['fields']['jumpToI18n'] = array('label' => &$GLOBALS['TL_LANG']['tl_module']['jumpToI18n'], 'inputType' => 'checkbox', 'exclude' => true, 'eval' => array('tl_class' => 'w50'), 'sql' => "char(1) NOT NULL default ''");
public function onLoadCallback() { MetaPalettes::appendFields('tl_module', 'registration', 'config', array('avisota_selectable_lists')); MetaPalettes::appendFields('tl_module', 'personalData', 'config', array('avisota_selectable_lists')); }
/** * Make bootstrap_parentId editable in editAll and if a parent id got broken (after duplicating). * * @return void * * @SuppressWarnings(PHPMD.Superglobals) */ public function enableFixParentPalette() { if (\Input::get('bootstrap') === 'parent' && \Input::get('act') === 'edit') { $row = \ContentModel::findByPk(\Input::get('id')); if ($row) { $GLOBALS['TL_DCA']['tl_content']['palettes'][$row->type] = $GLOBALS['TL_DCA']['tl_content']['palettes']['bootstrap_parent']; } } elseif (\Input::get('act') === 'editAll') { $wrappers = Bootstrap::getConfigVar('wrappers'); foreach ($wrappers as $wrapper) { foreach ($wrapper as $name => $type) { if ($name === 'start') { continue; } MetaPalettes::appendFields('tl_content', $type['name'], 'type', array('bootstrap_parentId')); } } } }
<?php /** * @package contao-form-validation * @author David Molineus <*****@*****.**> * @copyright 2015-2016 netzmacht David Molineus * @license LGPL 3.0 * @filesource * */ \Bit3\Contao\MetaPalettes\MetaPalettes::appendFields('tl_settings', 'form_validation', array('fv_assetPath')); $GLOBALS['TL_DCA']['tl_settings']['fields']['fv_assetPath'] = array('label' => &$GLOBALS['TL_LANG']['tl_settings']['fv_assetPath'], 'inputType' => 'text', 'exclude' => true, 'eval' => array('tl_class' => 'long'), 'sql' => "varchar(128) NOT NULL default ''");
<?php /** * Avisota newsletter and mailing system * * Copyright (C) Avisota * * @package contao-css-to-inline-style * @file config.php * @author Sven Baumann <*****@*****.**> * @license LGPL-3.0+ * @copyright Copyright 2016 Avisota */ \Bit3\Contao\MetaPalettes\MetaPalettes::appendFields('orm_avisota_layout', 'mailChimp', 'template', array('cssToInline')); $fields = array('cssToInline' => array('label' => &$GLOBALS['TL_LANG']['orm_avisota_layout']['cssToInline'], 'exclude' => true, 'inputType' => 'checkbox')); $GLOBALS['TL_DCA']['orm_avisota_layout']['fields'] = array_merge($GLOBALS['TL_DCA']['orm_avisota_layout']['fields'], $fields); unset($fields);
<?php /** * contao-calendar-filter-tag * * Copyright © ContaoBlackForest * * @package contao-calendar-filter-tag * @file tl_module.php * @author Sven Baumann <*****@*****.**> * @author Dominik Tomasi <*****@*****.**> * @license LGPL-3.0+ * @copyright Copyright 2016 ContaoBlackForest */ \Bit3\Contao\MetaPalettes\MetaPalettes::appendFields('tl_calendar_events', 'title', array('tag')); $fields = array('tag' => array('label' => &$GLOBALS['TL_LANG']['tl_calendar_events']['tag'], 'exclude' => true, 'search' => true, 'sorting' => true, 'flag' => 1, 'inputType' => 'text', 'eval' => array('maxlength' => 255), 'sql' => 'varchar(255) NOT NULL default \'\'')); $GLOBALS['TL_DCA']['tl_calendar_events']['fields'] = array_merge($fields, $GLOBALS['TL_DCA']['tl_calendar_events']['fields']); unset($fields);
/* * Palettes */ $GLOBALS['TL_DCA']['tl_form_field']['metapalettes']['button'] = array('type' => array('type', 'name', 'slabel', 'bootstrap_addIcon'), 'image' => array(':hide', 'imageSubmit'), 'expert' => array(':hide', 'class', 'accesskey', 'tabindex'), 'template' => array(':hide,customTpl')); foreach (Bootstrap::getConfigVar('form.widgets', array()) as $widget => $config) { if (isset($config['input-group']) && $config['input-group']) { MetaPalettes::appendAfter('tl_form_field', $widget, 'fconfig', array('icon' => array(':hide', 'bootstrap_addIcon'), 'unit' => array(':hide', 'bootstrap_addUnit'))); } } // append inlineStyle option to radio and checkbox MetaPalettes::appendFields('tl_form_field', 'radio', 'fconfig', array('bootstrap_inlineStyle')); MetaPalettes::appendFields('tl_form_field', 'checkbox', 'fconfig', array('bootstrap_inlineStyle')); // Add search select option MetaPalettes::appendFields('tl_form_field', 'select', 'fconfig', array('bootstrap_select_search')); if (Bootstrap::getConfigVar('form.styled-upload.enabled')) { MetaPalettes::appendFields('tl_form_field', 'upload', 'fconfig', array('placeholder')); } $GLOBALS['TL_DCA']['tl_form_field']['metasubpalettes']['bootstrap_addIcon'] = array('bootstrap_icon', 'bootstrap_iconPosition'); $GLOBALS['TL_DCA']['tl_form_field']['metasubpalettes']['bootstrap_addUnit'] = array('bootstrap_unit', 'bootstrap_unitPosition'); unset($GLOBALS['TL_DCA']['tl_form_field']['subpalettes']['addSubmit']); $GLOBALS['TL_DCA']['tl_form_field']['metasubpalettes']['addSubmit'] = array('slabel', 'bootstrap_addSubmitIcon', 'bootstrap_addSubmitIconPosition', 'bootstrap_addSubmitClass'); /* * Fields */ $GLOBALS['TL_DCA']['tl_form_field']['fields']['type']['options_callback'] = function () { return array_keys($GLOBALS['TL_FFL']); }; $GLOBALS['TL_DCA']['tl_form_field']['fields']['bootstrap_addIcon'] = array('label' => &$GLOBALS['TL_LANG']['tl_form_field']['bootstrap_addIcon'], 'exclude' => true, 'inputType' => 'checkbox', 'eval' => array('submitOnChange' => true), 'sql' => "char(1) NOT NULL default ''"); $GLOBALS['TL_DCA']['tl_form_field']['fields']['bootstrap_icon'] = array('label' => &$GLOBALS['TL_LANG']['tl_form_field']['bootstrap_icon'], 'exclude' => true, 'inputType' => 'icon', 'options' => Bootstrap::getIconSet()->getIcons(), 'eval' => array('tl_class' => 'w50', 'iconTemplate' => Bootstrap::getIconSet()->getTemplate()), 'sql' => "varchar(32) NOT NULL default ''"); $GLOBALS['TL_DCA']['tl_form_field']['fields']['bootstrap_iconPosition'] = array('label' => &$GLOBALS['TL_LANG']['tl_form_field']['bootstrap_iconPosition'], 'exclude' => true, 'inputType' => 'select', 'options' => array('left', 'right'), 'reference' => &$GLOBALS['TL_LANG']['tl_form_field'], 'eval' => array('tl_class' => 'w50'), 'sql' => "varchar(32) NOT NULL default ''"); $GLOBALS['TL_DCA']['tl_form_field']['fields']['bootstrap_addUnit'] = array('label' => &$GLOBALS['TL_LANG']['tl_form_field']['bootstrap_addUnit'], 'exclude' => true, 'inputType' => 'checkbox', 'eval' => array('submitOnChange' => true, 'tl_class' => 'clr'), 'sql' => "char(1) NOT NULL default ''");