Contao\RadioTable::generate PHP Method

generate() public method

Generate the widget and return it as string
public generate ( ) : string
return string
    public function generate()
    {
        if (!is_array($this->arrOptions) || empty($this->arrOptions)) {
            return '';
        }
        $rows = ceil(count($this->arrOptions) / $this->intCols);
        $return = '<table id="ctrl_' . $this->strName . '" class="tl_radio_table' . ($this->strClass != '' ? ' ' . $this->strClass : '') . '">';
        for ($i = 0; $i < $rows; $i++) {
            $return .= '
    <tr>';
            // Add cells
            for ($j = $i * $this->intCols; $j < ($i + 1) * $this->intCols; $j++) {
                $value = $this->arrOptions[$j]['value'];
                $label = $this->arrOptions[$j]['label'];
                if (strlen($value)) {
                    $label = \Image::getHtml($value . '.svg', $label, 'title="' . \StringUtil::specialchars($label) . '"');
                    $return .= '
      <td><input type="radio" name="' . $this->strName . '" id="' . $this->strName . '_' . $i . '_' . $j . '" class="tl_radio" value="' . \StringUtil::specialchars($value) . '" onfocus="Backend.getScrollOffset()"' . $this->isChecked($this->arrOptions[$j]) . $this->getAttributes() . '> <label for="' . $this->strName . '_' . $i . '_' . $j . '">' . $label . '</label></td>';
                } else {
                    $return .= '
      <td></td>';
                }
            }
            // Close row
            $return .= '
    </tr>';
        }
        return $return . '
  </table>';
    }