Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Data Model Questions /

getFrontendFields - ordering the fileds


Reply


2 Posts   2542 Views

Avatar
danzzz

Community Member, 175 Posts

17 September 2009 at 8:11pm

hi there,

I have this function to generate a registration form:

public function getFrontendFields() {
   $fields = $this->scaffoldFormFields(array(
      'restrictFields' => array(
         'Anrede',
         'FirstName',
         'Surname',
         'Email',
         'Geburtsdatum',
      ),
      'fieldClasses' => array(
         'Email' => 'EmailField',
      )
   ));
   
   return $fields;
   
}

so, first problem:
on the page the ordering of the fields is not the same, the ordering is:

FirstName,
Surname,
Email,
Anrede (Salutation in German),
Geburtsdatum (Birthday in German)

how can I order the fields? for example the salutation should be on first place :-)

next question:

how can I implement a CompositeDateField for my birthday field?
If I would generate a normal form I would use:

$geburtsdatum = new CompositeDateField(
   'Geburtstag',
   'Geburtstag (Tag, Monat,Jahr)','','1910-2009'
);

how can I implement this into my getFrontendFields Code?

thanx

Daniel

Avatar
danzzz

Community Member, 175 Posts

21 September 2009 at 12:16am

hi,

I have the solution ... (thx 2 ajshort from silverstripe irc channel)

field ordering:

$fields->changeFieldOrder(array(
         'Anrede',
         'FirstName',
         'Surname',
         'Email',
         'Geburtsdatum'
      ));

replaceing fields:

$geburtsdatum = new CompositeDateField(
         'Geburtstag',
         'Geburtstag (Tag, Monat, Jahr)','','1910-2009'
      );
      
      $fields->replaceField('Geburtsdatum',$geburtsdatum);

daniel