/** * Generate the widget and return it as string * @return string */ public function generate() { if (!is_array($this->arrOptions) || !count($this->arrOptions)) { return ''; } $this->import('Database'); $objVariant = $this->Database->prepare("SELECT * FROM tl_iso_products WHERE id=?")->limit(1)->execute($this->currentRecord); // Begin table $return = '<table class="tl_variantwizard" id="ctrl_' . $this->strId . '"> <tbody>'; // Add fields foreach ($this->arrOptions as $option) { $datepicker = ''; $arrData = $GLOBALS['TL_DCA']['tl_iso_products']['fields'][$option['value']]; switch ($arrData['inputType']) { case 'text': $objWidget = new TextField($this->prepareForWidget($arrData, $this->strId . '[' . $option['value'] . ']', $objVariant->{$option['value']})); if ($arrData['eval']['datepicker']) { $objWidget->id = str_replace('[', '_', $objWidget->id); $objWidget->id = str_replace(']', '_', $objWidget->id); $datepicker = ' <script> window.addEvent(\'domready\', function() { ' . sprintf($arrData['eval']['datepicker'], 'ctrl_' . $objWidget->id) . ' }); </script>'; } break; default: $arrField = $this->prepareForWidget($arrData, $this->strId . '[' . $option['value'] . ']', $objVariant->{$option['value']}); foreach ($arrField['options'] as $k => $v) { if ($v['value'] == '') { unset($arrField['options'][$k]); } } $objWidget = new SelectMenu($arrField); break; } $return .= ' <tr> <td>' . $objWidget->generateLabel() . ' </td> <td>' . $objWidget->generate() . $datepicker . ' </td> </tr>'; } return $return . ' </tbody> </table>'; }