[TYPO3-german] TCA selectbox required ???

Stephan Schuler Stephan.Schuler at netlogix.de
Tue Oct 29 12:58:03 CET 2013


Hallo Ralf


Deine Verpflichtungsvorgaben müssten zutreffen. Das "minitems=1" stimmt auf jeden Fall. Ob in der "select"-Situation auch "eval" angewendet wird weiß ich nicht. Ich glaube nicht, dann ist diese Konfiguration aber lediglich überflüssig, keinesfalls kontraproduktiv.

Allerdings hast du hier zwei Situationen, die zusammengenommen deine Bedingung schon ohne Benutzerzutun erfüllen.


Zunächst unterscheidet das TCA nicht großartig zwischen leeren Strings, leeren Array und NULL-Werten in der Datenbank. Je nach Stelle innerhalb der TCEmain-Verarbeitung wird die Situation "keine Option gewählt" entweder durch einen leeren String oder durch ein Array ohne Elemente dargestellt. Diese Verarbeitungsschritte folgen aufeinander, sodass man "von der jeweils schlechtesten Variante" ausgehen muss, wenn man einen Fehler ergründen will.
Nachdem du ein Select ohne Datenbank-Fremdschlüsselbeziehung hast, werden deine Optionen als kommagetrennte Liste in der Datenbank abgelegt. Dass du die Liste mittels minitems und maxitems auf exakt ein Element beschränkst ändert nichts an der Darstellungsweise.


Und weiterhin hast du leider eine Auswahloption geschaffen, die durch den leeren String abgebildet wird.

Im TCEmain kommt es jetzt grob zu folgendem Ablauf:

SELECT uid, config FROM table;
Resultat: $row = array('uid' => 1, 'config' => '');
TCEmain-Verarbeitung aufgrund der TCA-Vorgaben: $row['config'] = t3lib_div::trimexplode(',', $row['config']);

Das ergibt zunächst mal ein Array mit einem Element das durch den leeren String abgebildet wird.
Anschließend prüft das TCEmain, ob alle von der Datenbank zurückgelieferten Optionen deinen Vorgaben entsprechen. Das ist der Fall, deine leere Option ist erlaubt.
Jetzt wird gezählt: Mindestens und höchstens ein Element? Ja, auch das ist der Fall.


Dein Problem ist also, dass du das leere Element als gültige Option erlaubst.


Gruß,


Stephan Schuler
Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Website: media.netlogix.de



--
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Neuwieder Straße 10 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: info at netlogix.de | Internet: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Ralf-Rene Schröder
Gesendet: Dienstag, 29. Oktober 2013 12:29
An: typo3-german at lists.typo3.org
Betreff: [TYPO3-german] TCA selectbox required ???

Hallo...
ich möchte eine simple Selectbox bei einem Datensatz verpflichtend machen...
meine Versuche mit Folgendem scheiterten aber:

'config' => array(
  'type' => 'select',
  'items' => array(
    array('', ''),
    array('street', 'street'),
    array('race', 'race'),
  ),
  'size' => 1,
  'minitems' => 1,
  'maxitems' => 1,
  'eval' => 'required',
),

jemand einen Tipp fü mich (oder geht das absolut nicht ???)

--
image[FORMAT] - Ralf-René Schröder
http://www.image-format.eu ... Wir geben Ihrem Image das richtige Format _______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list