/** * Parse the template file and return it as string * @param array * @return string */ public function parse($arrAttributes = null) { if ($this->formcontrol_template) { $this->strTemplate = $this->formcontrol_template; $strClass = 'select'; $blnHasGroups = false; if ($this->multiple) { $this->strName .= '[]'; $strClass = 'multiselect'; } elseif (is_array($this->varValue)) { $this->varValue = $this->varValue[0]; } // Add empty option (XHTML) if there are none if (empty($this->arrOptions)) { $this->arrOptions = array(array('value' => '', 'label' => '-')); } // Chosen if ($this->chosen) { $strClass .= ' tl_chosen'; } $this->class = $strClass . (strlen($this->strClass) ? ' ' . $this->strClass : ''); $arrOptions = array(); // Generate options foreach ($this->arrOptions as $arrOption) { if ($arrOption['group']) { if ($blnHasGroups) { $arrOptions[] = array('type' => 'group_end'); } $arrOptions[] = array('type' => 'group_start', 'label' => specialchars($arrOption['label'])); $blnHasGroups = true; continue; } $arrOptions[] = array('type' => 'option', 'value' => $arrOption['value'], 'selected' => $this->isSelected($arrOption), 'label' => $arrOption['label']); } if ($blnHasGroups) { $arrOptions[] = array('type' => 'group_end'); } $this->options = $arrOptions; } return parent::parse($arrAttributes); }
/** * Parse the template file and return it as string * * @param array $arrAttributes An optional attributes array * * @return string The template markup */ public function parse($arrAttributes = null) { $this->arrOptions = ConditionalSelectMenu::prepareOptions($this->arrOptions); $GLOBALS['TL_JAVASCRIPT']['conditionalselect'] = 'system/modules/conditionalselectmenu/assets/conditionalselect' . ($GLOBALS['TL_CONFIG']['debugMode'] ? '' : '.min') . '.js'; $strOptions = ''; $strClass = 'select'; if ($this->multiple) { $this->strName .= '[]'; $strClass = 'multiselect'; } // Add empty option (XHTML) if there are none if (empty($this->arrOptions)) { $this->arrOptions = array(array('value' => '', 'label' => strlen($this->blankOptionLabel) ? $this->blankOptionLabel : '-')); } // Custom class if ($this->strClass != '') { $strClass .= ' ' . $this->strClass; } $this->strClass = $strClass; // Prepare Javascript if ($this->includeBlankOption) { $this->classOptions = ", {includeBlankOption: true" . (strlen($this->blankOptionLabel) ? ", blankOptionLabel: '" . $this->blankOptionLabel . "'" : '') . "}"; } return parent::parse($arrAttributes); }