sorry dass ich erst jetzt antworte, aber hatte recht viel um die Ohren :-)
also den hook registrierst du in einer config Datei:
PHP-Code:
//zum Beispiel so: Ich verwende für das Autoloading den Namspaceclassloader
$GLOBALS['TL_HOOKS']['prepareFormData'][] = array('\Guave\Example\Classes\Hooks', 'parseCountryForEmail');
PHP-Code:
<?php
namespace Guave\Example\Classes;
class Hooks {
/**
* @param array $arrSubmitted
* @param array $arrLabels
* @param \Form $form
*/
public function parseCountryForEmail(&$arrSubmitted, &$arrLabels, &$form)
{
//prüfen ob land übermittelt wurde
if(!in_array('land', $arrSubmitted)) {
return;
}
//nun holen wir uns das FormField land aus der Form
$countrySelect = \FormFieldModel::findOneBy(array('name=?', 'pid=?'), array('land', $form->id));
if(!$countrySelect) {
return;
}
//und nun holen wir uns die die Optionen der Select und suchen unser Value und ersetzen den in der From übergebenen Wert mit der Bezeichnung
$options = unserialize($countrySelect->options);
foreach ($options as $option) {
if($option['value'] == $arrSubmitted['land']) {
$arrSubmitted['land'] = $option['label'];
return;
}
}
}
}
Der Code ist schnell geschrieben und ungetestet, sollte aber so funktionieren.
lg
Gebi