I have a designed template on photoshop from a client. My interrogation... When I saw the template is: Can I put 2 fields side-by-side? I want to have f_firstname and f_lastname on one row... Is there anyway to inject tags or piece of code with classes like ex: div="column1of2" $field_here close div to have a 2 columns for 2 fields?
Actually, code generate each fields are on separates rows. That's not very pretty. Possible?
I have this code :
private static $allowed_actions = array(
    'FormInfolettre'
);
public function FormInfolettre() {
    $fields = new FieldList(
        EmailField::create('f_email', 'Votre courriel'),
        TextField::create('f_firstname', 'Votre prénom'),
        TextField::create('f_lastname', 'Votre nom'),
        TextField::create('f_message', 'Votremessage'),
);
    $actions = new FieldList(
        FormAction::create("Soumettre")->setTitle("Soumettre")
    );
    $required = new RequiredFields(
        array(
            'f_email',
            'f_firstname',
            'f_lastname',
            'f_message',
        ));
    $form = new Form($this, 'FormInfolettre', $fields, $actions, $required);
    return $form;
}
You can create FieldGroups for the container div and add extra css classes to the fields like
$fields = FieldList::create();
$firstName = TextField::create('FirstName','First Name')->addExtraClass('small-8 medium-4 large-5 columns');
$surname = TextField::create('Surname','Surname')->addExtraClass('small-12 medium-5 large-5 columns');
$nameGroup = FieldGroup::create($firstName, $surname);
$fields->push($nameGroup);
I believe this can be done in the new versions by adding your fields to groups then adding a class and CSS for those classes, one group that is left aligned and the other right aligned.
Alternatively, I forked an older version of Userforms a while back to accomplish this. https://github.com/helenclarko/silverstripe-userforms
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With