Example #1
0
    /**
     * 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() . '&nbsp;</td>
      <td>' . $objWidget->generate() . $datepicker . '&nbsp;</td>
    </tr>';
        }
        return $return . '
  </tbody>
</table>';
    }