public function generate()
	{
		if (empty($this->arrOptions) || !\is_array($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 an empty cell
				else
				{
					$return .= '
      <td></td>';
				}
			}

			// Close row
			$return .= '
    </tr>';
		}

		return $return . '
  </table>';
	}
public function generate()
	{
		if (empty($this->arrOptions) || !\is_array($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>';

			
			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>';
				}
			}

			
			$return .= '
    </tr>';
		}

		return $return . '
  </table>';
	}
public function generate ( ) { if ( empty ( $ this -> arrOptions ) || ! \ is_array ( $ 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 an empty cell else { $ return .= '
      <td></td>' ; } } // Close row $ return .= '
    </tr>' ; } return $ return . '
  </table>' ; }
Generate the widget and return it as string

@return string
Generate the widget and return it as string