/** * @param \DataContainer $dc * @return array */ public function getAppearance(\DataContainer $dc) { $type = $dc->activeRecord->type; $style = FieldAppearance::getAppearance(); $options = array(); if ($type == 'simple_choice') { $options = $style['simple_choice']; } if ($type == 'multi_choice') { $options = $style['multi_choice']; } return $options; }
/** * @param DataContainer $dc * @return array */ public function getListModules(\DataContainer $dc) { $type = 'fmodule_fe_list'; $listID = $dc->activeRecord->f_list_field; $tl_moduleDB = $this->Database->prepare('SELECT name, id, f_select_module FROM tl_module WHERE type = ?')->execute($type); $options = array(); $filters = array(); while ($tl_moduleDB->next()) { $options[$tl_moduleDB->id] = $tl_moduleDB->name; $filters[$tl_moduleDB->id] = $tl_moduleDB->f_select_module; } $activeOptions = array(); if ($listID) { $selectedList = $filters[$listID]; $filterFieldsDB = $this->Database->prepare('SELECT tl_fmodules_filters.* FROM tl_fmodules JOIN tl_fmodules_filters ON tl_fmodules.id = tl_fmodules_filters.pid WHERE tablename = ? ORDER BY tl_fmodules_filters.sorting')->execute($selectedList); $filterFields = array(); $doNotSetByType = array('legend_start', 'legend_end', 'widget', 'map_field'); $doNotSetByID = array('auto_page', 'auto_item'); $allowedOptionTypes = array('search_field', 'multi_choice', 'simple_choice', 'fulltext_search', 'date_field'); $allowedOptionID = array('pagination', 'orderBy', 'sorting_fields'); while ($filterFieldsDB->next()) { if ($filterFieldsDB->fieldID && in_array($filterFieldsDB->type, $allowedOptionTypes) && !in_array($filterFieldsDB->fieldID, $allowedOptionID)) { $activeOptions[$filterFieldsDB->fieldID] = $filterFieldsDB->title; } if (in_array($filterFieldsDB->type, $doNotSetByType)) { continue; } if (in_array($filterFieldsDB->fieldID, $doNotSetByID)) { continue; } //active options $filterFields[$filterFieldsDB->id] = array('id' => $filterFieldsDB->id, 'label' => $filterFieldsDB->title, 'fieldID' => $filterFieldsDB->fieldID, 'title' => $filterFieldsDB->title, 'description' => $filterFieldsDB->description, 'type' => $filterFieldsDB->type, 'isInteger' => $filterFieldsDB->isInteger, 'addTime' => $filterFieldsDB->addTime, 'from_field' => $filterFieldsDB->from_field, 'to_field' => $filterFieldsDB->to_field, 'dataFromTaxonomy' => $filterFieldsDB->dataFromTaxonomy, 'reactToTaxonomy' => $filterFieldsDB->reactToTaxonomy, 'reactToField' => $filterFieldsDB->reactToField, 'active' => '', 'cssClass' => '', 'templates' => array(), 'appearance' => FieldAppearance::getAppearance()[$filterFieldsDB->type], 'used_templates' => '', 'used_appearance' => '', 'changeOnSubmit' => '', 'dependsOn' => ''); } $GLOBALS['TL_DCA']['tl_module']['fields']['f_form_fields']['eval']['filterFields'] = $filterFields; $GLOBALS['TL_DCA']['tl_module']['fields']['f_form_fields']['eval']['currentListID'] = $listID; $GLOBALS['TL_DCA']['tl_module']['fields']['f_active_options']['options'] = $activeOptions; } return $options; }