public function getPalette()
{
$palette = 'default';
$strPalette = $GLOBALS['TL_DCA'][$this->strTable]['palettes'][$palette];
// Check whether there are selector fields
if (!empty($GLOBALS['TL_DCA'][$this->strTable]['palettes']['__selector__'])) {
$sValues = array();
$subpalettes = array();
$objFields = $this->Database->prepare("SELECT * FROM " . $this->strTable . " WHERE id=?")->limit(1)->execute($this->intId);
// Get selector values from DB
if ($objFields->numRows > 0) {
foreach ($GLOBALS['TL_DCA'][$this->strTable]['palettes']['__selector__'] as $name) {
$trigger = $objFields->{$name};
// Overwrite the trigger
if (\Input::post('FORM_SUBMIT') == $this->strTable) {
$key = \Input::get('act') == 'editAll' ? $name . '_' . $this->intId : $name;
if (isset($_POST[$key])) {
$trigger = \Input::post($key);
}
}
if ($trigger != '') {
if ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$name]['inputType'] == 'checkbox' && !$GLOBALS['TL_DCA'][$this->strTable]['fields'][$name]['eval']['multiple']) {
$sValues[] = $name;
// Look for a subpalette
if (strlen($GLOBALS['TL_DCA'][$this->strTable]['subpalettes'][$name])) {
$subpalettes[$name] = $GLOBALS['TL_DCA'][$this->strTable]['subpalettes'][$name];
}
} else {
$sValues[] = $trigger;
$key = $name . '_' . $trigger;
// Look for a subpalette
if (strlen($GLOBALS['TL_DCA'][$this->strTable]['subpalettes'][$key])) {
$subpalettes[$name] = $GLOBALS['TL_DCA'][$this->strTable]['subpalettes'][$key];
}
}
}
}
}
// Build possible palette names from the selector values
if (!count($sValues)) {
$names = array('default');
} elseif (count($sValues) > 1) {
foreach ($sValues as $k => $v) {
// Unset selectors that just trigger subpalettes (see #3738)
if (isset($GLOBALS['TL_DCA'][$this->strTable]['subpalettes'][$v])) {
unset($sValues[$k]);
}
}
$names = $this->combiner($sValues);
} else {
$names = array($sValues[0]);
}
// Get an existing palette
foreach ($names as $paletteName) {
if (strlen($GLOBALS['TL_DCA'][$this->strTable]['palettes'][$paletteName])) {
$strPalette = $GLOBALS['TL_DCA'][$this->strTable]['palettes'][$paletteName];
break;
}
}
// Include subpalettes
foreach ($subpalettes as $k => $v) {
$strPalette = preg_replace('/\\b' . preg_quote($k, '/') . '\\b/i', $k . ',[' . $k . '],' . $v . ',[EOF]', $strPalette);
}
}
return $strPalette;
}