[Typo3-dev] Flexform Repeaters and Custom Field Validation

Jeff Segars jsegars at alumni.rice.edu
Wed Apr 27 00:04:07 CEST 2005


I'm working with a Flexform that requires array type data in a repeater. 
  I have a field called slideTiming that should be able to be repeated 
on a new row any number of times and I should be able to add new rows in 
the backend.

The basic idea is that a presentation can have any number of slide 
timings on it and new slide timings can be added from the same form 
where the presentation content element is defined.

I haven't seen anything like this done in TYPO3 before so I'm wondering 
if its possible to set up repeating fields via Flexforms or the TCA? 
I've searched the archives and typo3.org with no luck but I'm hoping 
someone out there has a great solution :)

Here's a snippet from the FlexForm I'm working with, where slideTiming 
is my repeated field...

<slides>
  <ROOT>
   <TCEforms>
    <sheetTitle>Slides</sheetTitle>
   </TCEforms>
   <type>array</type>
   <el>
    <slides type="array">
     <TCEforms>
      <label>Slides</label>
     </TCEforms>
     <type>array</type>
     <el>
      <slideTiming>
       <TCEforms>
        <label>Timing</label>
        <config>
         <type>input</type>
         <size>10</size>
         <eval>timesec</eval>
        </config>
       </TCEforms>
      </slideTiming>
     </el>
    </slides>
   </el>
  </ROOT>
</slides>

When I view this form in the backend, a single slideTiming displays 
correctly and there are icons to delete the slideTiming and move it up 
and down (within the array I assume).  I do not know how to enable 
creation of new rows, however, and if I manually create multiple 
slideTimings in the database, only the first slideTiming shows in the 
backend.

Any suggestions?  I know I could accomplish this through a separate 
database table and form for entering slide timings, but the data is so 
simple I'd like to avoid over complicating it.

I'm also looking to perform custom validation on these fields when a 
record is saved, similar to the timesec eval type that already exists. 
Is it possible to set up a user-defined eval type?

Thanks in advance for any help!
Jeff




More information about the TYPO3-dev mailing list