# Add new Fields ## Keep it simple Per default, there are a lot of Field-Types available in Powermail. ![developer_new_fields1](../Images/developer_new_fields1.png) If you want to add further fields, you can do this with a little bit of Page TSConfig. ``` tx_powermail.flexForm.type.addFieldOptions.new = New Field # The label could also be written with LLL: to localize the label # Example to grab a value from locallang.xml or locallang.xlf #tx_powermail.flexForm.type.addFieldOptions.new = LLL:EXT:ext/Resources/Private/Language/locallang.xlf:label # Tell powermail that the new fieldtype will transmit anything else then a string (0:string, 1:array, 2:date, 3:file) # Example for dataType array #tx_powermail.flexForm.type.addFieldOptions.new.dataType = 1 # The new field is not just a "show some text" field. It's a field where the user can send values and powermail stores the values? # You can tell powermail that this new field should be exportable in backend module and via CommandController #tx_powermail.flexForm.type.addFieldOptions.new.export = 1 ``` With this TSConfig a new Option is available: ![developer_new_fields2](../Images/developer_new_fields2.png) If an editor chose the new field, powermail searches by default for a Partial with Name New.html (Default Path is powermail/Resources/Private/Partials/Form/Field/New.html). Because you should not modify anything within an extension-folder (because of upcoming extension-updates), you should create a new file in your fileadmin folder - e.g.: fileadmin/powermail/Partials/Form/Field/New.html ### Example Content: ```

This is a complete new Field

``` Let's take TypoScript Setup to tell powermail, where to find the new partial: ``` plugin.tx_powermail.view.partialRootPaths { 0 = EXT:powermail/Resources/Private/Partials/ 1 = fileadmin/powermail/Partials/ } ``` ### Example Code Look at https://github.com/einpraegsam/powermailextended for an example extension. This extension allows you to: - Extend powermail with a complete new field type (Just a small "Show Text" example) - Extend powermail with an own Php and JavaScript validator (ZIP validator - number has to start with 8) - Extend powermail with new field properties (readonly and prepend text from Textarea) - Extend powermail with an example SignalSlot (see ext_localconf.php and EXT:powermailextended/Classes/Controller/FormController.php)