Per aspera ad astra
Home Les VALIDATORS
VALIDATORS Imprimer Envoyer

Les validators sont des vérificateurs automatique de la validité des champs du formulaire.

Leur validation est indispensable si on utilise un datahandler en écriture pour qu'il fasse des UPDATE ou toute mise à jour dans votre source de données.

 

Page officielle sur les validators : http://formidable.typo3.ug/typo3-form-news/news/0018-how-to-use-validators/back/2.html

 

Il sont de 5 types :

  • STANDARD : sur tout type de renderlet avec des cas prédéfinis (requis, longeur max...)
  • NUMERIQUE : critères sur les nombres
  • FICHIER : critères sur les fichiers
  • DATABASE : critère en base
  • CUSTOM : ce que vous voulez !
Détail des validations prédéfinies dans formidable V 2.0.484 :

STANDARD

 
<renderlet:TEXT name="mytxt" label="My text field">
    <validators>
        <validator:STANDARD>

            <!-- champs requis -->
            <required message="text field is required" />

            <!-- Format email -->
            <email>
                <message>This is not an email</message>
            </email>

            <!-- Taille minimale -->
            <minsize>
		<value>10</value>
                <message>Your text is to short</message>
            </minsize>

            <!-- Taille maximale -->
            <maxsize>
		<value>10</value>
                <message>Your text is to long</message>
            </maxsize>

            <!-- Taille exacte -->
            <size>
		<value>10</value>
                <message>Your text has not the right size</message>
            </size>

            <!-- Même valeur qu'un autre champ -->
            <sameas>
		<value>mytxt</value>
                <message>The second text field is not the same as the first one</message>
            </sameas>

            <!-- Vérification que l'utilisateur est authentifié -->
            <authentified>
		<value>TRUE</value>
                <message>You must be looged in to complete this form</message>
            </authentified>

        </validator:STANDARD>
    </validators>
</renderlet:TEXT>


NUMERIQUE

<renderlet:TEXT name="mytxt" label="My text field">
  <validators>
    <validator:NUM>

	<-- Test de la numéricité du nombre -->
      <isnum>
        <message>Your field should be numeric</message>
      </isnum>

	<!-- Test d'infériorité-->
      <islower>
        <value>100</value>
        <message>Your field should be lower than 100</message>
      </islower>

	<!-- Test de supériorité -->
      <ishigher>
        <value>100</value>
        <message>Your field should be higher than 100</message>
      </ishigher>

	<!-- Entre deux valeurs -->
      <isbetween>
        <value>50,100</value>
        <message>Your field should be between 50 and 100</message>
      </isbetween>

	<!-- Est un integer-->
      <isinteger>
        <message>Your field should be an integer</message>
      </isinteger>
      
	<!-- Est un float -->
      <isfloat>
        <message>Your field should be a float</message>
      </isfloat>

    </validator:NUM>
  </validators>
</renderlet:TEXT>


FILE

<renderlet:UPLOAD name="myfile" label="My file field">
	<data targetDir="uploads" />
	<validators>
		<validator:FILE>

			<!-- Vérifier l'extension -->
			<extension>
				<value>jpg,gif,png</value>
				<message>Your file should be either a jpg, gif or png</message>
			</extension>

			<!--  Vérifier la taille de l'upload : peut être de type filesize, filesizekb, filesizemb -->
			<filesizekb>
				<value>10</value>
				<message>Your file is to big</message>
			</filesizekb>

		</validator:FILE>
	</validators>
</renderlet:UPLOAD>

 

 

DB


<renderlet:TEXT name="mytxt" label="My text field">
	<validators>
		<validator:DB>
			<unique>
				<tablename>fe_users</tablename>
				<field>username</field>
				<message>This username does already exist in our database</message>
				<deleted>true</deleted>
			</unique>
		</validator:DB>
	</validators>
</renderlet:TEXT>

 

CUSTOM

<validator:STANDARD when="after-init-datahandler">
	<custom message="Le nombre de patients en France + le nombre de patients à l'étranger doit être égal au nombre de participants.">
		<userobj>
			
<![CDATA[
				$aData = $this->getUserObjParams();
				$data= $this->oDataHandler->getFormData();

				 if ( ($data["save-submit"] != 1) && (intval($this->rdt('nb_patient')->getValue()) != (intval($this->rdt('nb_patients_en_france')->getValue()) + intval($this->rdt('nb_patients_monde')->getValue())))) {
					return FALSE;
				}

				return TRUE;
			]]></php>
		</userobj>
	</custom>
</validator:STANDARD>
Mise à jour le Mardi, 19 Octobre 2010 13:42