HTML_QuickForm2 - Radio-Button als checked setzen

Wie definiert man in HTML_QuickForm2, dass innerhalb eines HTML-Formulares Radio Buttons standardmäßig vorausgewählt werden? Die Suche nach dem Default-Value ist in der offiziellen Dokumentation nicht ganz einfach zu finden und ein "setDefault", wie man es in der Vorgängerversion vorfindet, sucht man vergeblich.

Mit diesem kleinen Codeschnipsel wird deutlich, wie man ein einfaches checked="checked" umsetzt. Hierbei wird auf addDataSource zurückgegriffen, mit dem auch andere Standardwerte definiert werden:

/*
 * Formular erstellen
 */
$form = new HTML_QuickForm2('Radio_Button_vordefiniert');

/*
 * Defaults - Werte vorbelegen
 */
$form->addDataSource(new HTML_QuickForm2_DataSource_Array(array(
    'F_SYSTEM' => 'desktop'  # Setze Default für Radio-Button
)));


/*
 * Radio Buttons erzeugen
 */
$form->addElement('radio', 'F_SYSTEM', array('value' => 'desktop'), array('content' => 'Desktop'));
$form->addElement('radio', 'F_SYSTEM', array('value' => 'notebook'), array('content' => 'Notebook'));

echo $form;

Wichtig ist, dass die HTML-Attribute und -values übereinstimmen. In diesem Beispiel ist dies der Name des Formularfeldes F_SYSTEM und die möglichen Values desktop und notebook.

Das HTML-Ergebnis zeigt, dass der Radio Button Desktop vorausgewählt ist:

 

<div class="quickform">
<form action="Radio_Button_vordefiniert.php" id="Radio_Button_vordefiniert" method="post">
<div>
<input type="hidden" name="_qf__Radio_Button_vordefiniert" id="qf:Radio_Button_vordefiniert">
<div class="row">
    <p class="label"></p>
    <div class="element">
        <input type="radio" checked="checked" id="F_SYSTEM-0" name="F_SYSTEM" value="desktop">
        <label for="F_SYSTEM-0">Desktop</label>
    </div>
</div>
<div class="row">
    <p class="label"></p>
    <div class="element">
        <input type="radio" id="F_SYSTEM-1" name="F_SYSTEM" value="notebook">
        <label for="F_SYSTEM-1">Notebook</label>
    </div>
</div>
</div>
</form>
</div>