Zum Inhalt springen

sr_feuserregister - Select Field - Validierung

Erstellt am 16. März 2009 · 1 Antwort · letzte Antwort am 18. März 2009

Tags: Frage

klark ·

Hallo zusammen,

99% aller Probleme lassen sich bei mir normalerweise mit googlen und suchen im Forum erledigen.
Dieses Problem ist allerdings echt lästig, da keine Lösung bisher funktioniert hat.

Folgendes:
- feusers wurde um diverse Felder erweitert
- die neuen Felder wurden in das Template eingebaut
- editieren, neu erstellen, ... funktioniert problemlos

Nun möchte ich aber eins der neu angelegten Felder validieren, genauer gesagt eine Select-Box (tx_24addfields_akzeptgroup).
Folgenden Code habe ich momentan eingetragen:

Auszug Constants

plugin.tx_srfeuserregister_pi1 {
  requiredFields = username, password, first_name, last_name, email, address, city, zip, company, tx_24addfields_akzeptgroup
}

Auszug Setup

plugin.tx_srfeuserregister_pi1 {
  edit.evalValues.tx_24addfields_akzeptgroup = required
  parseValues.tx_24addfields_akzeptgroup = multiple
}

(zur Info: Es gibt nur die Möglichkeit bestehende User zu editieren, ein eigenständiges neu anlegen ist nicht möglich)

Ergebnis
Leider schlägt die Validierung nicht an. Man kann das Feld einfach leer lassen und abspeichern. Ich habe aus lauter Verzweiflung auch schon sämtliche andere eval codes ausprobiert (https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Index.html). Ohne Erfolg.

Es wäre großartig, wenn jemand Rat wüsste.

Viele Grüße

Edit:
Die Validierung funktioniert übrigens einwandfrei für andere hinzugefügte Felder des Typ "String". Das Problem scheint also wirklich die Select-Box zu sein.

Edit 2:
Es sieht so aus, als würde evalValues das required nur auf leere Felder überprüfen. Deshalb greift es bei der Select-Box vermutlich auch nicht ...
Falls dennoch einer eine Idee hat, nur her damit 🙂

Cyberto ·

Hallo klark

Ich hatte auch schon dasselbe Problem, dass bei einem Dropdown die Aufforderung requiredFields nicht funktioniert. Das Problem besteht darin, da ein leerer Eintrag im Dropdown die Value="0" hat.
In der Datei ext_tables deiner Extension kannst du im array tempColumns bei den 'items' das Array auf '' setzen also:
vorher:

$tempColumns = array (
	'tx_feusercolumn_regionalgruppe' => array (		
		'exclude' => 0,		
		'label' => 'LLL:EXT:feusercolumn/locallang_db.xml:fe_users.tx_feusercolumn_regionalgruppe',		
		'config' => array (
			'type' => 'select',	
			'items' => array (
				array('','0'),
			),
			'foreign_table' => 'tx_feusercolumn_groups',	
			'foreign_table_where' => 'ORDER BY tx_feusercolumn_groups.groups',	
			'size' => 1,	
			'minitems' => 0,
			'maxitems' => 1,
		)
	),
);

nachher

$tempColumns = array (
	'tx_feusercolumn_regionalgruppe' => array (		
		'exclude' => 0,		
		'label' => 'LLL:EXT:feusercolumn/locallang_db.xml:fe_users.tx_feusercolumn_regionalgruppe',		
		'config' => array (
			'type' => 'select',	
			'items' => array (
				array('',''),
			),
			'foreign_table' => 'tx_feusercolumn_groups',	
			'foreign_table_where' => 'ORDER BY tx_feusercolumn_groups.groups',	
			'size' => 1,	
			'minitems' => 0,
			'maxitems' => 1,
		)
	),
);

Wichtig ist:

array('','0'),-->array('',''),
ich hoffe das hilft dir :)

Grüsse aus der Schweiz