Eclydre Web Manager > Développeur > Les fichiers DB > Input : text / password

Input : text / password

input => text

Crée un champ < input type="text"
Ce type de champ est réservé pour les champs numériques ou varchar de 250 caractères maximum et sans retour chariot, sinon on utilisera plutôt les inputs textarea ou rte

A l'enregistrement les quotes " sont transformées en & #8220; => "
Pour éviter cette transformation, ajouter :
'noquote' => 'yes',

Texte traduisible

On peut ajouter un paramètre pour activer la possibilité de traduire le texte dans les langues déclarées dans le cms.

        'nom'=> array(
                'type'=>'text',
                'label'=>'c_page.nom',
                'input'=>'text',
                'inline'=>'yes',
                'traduction'=>array(
                        'champ'=>'nom_trad_id',
                        'write'=>$recordDroits['c_page']['table']['nom_trad_id']['write'],
                        'show'=>$recordDroits['c_page']['table']['nom_trad_id']['show']
                ),
                'maxlen'=>'200',
                'required'=>'yes',
                'defaut'=>'',
                'write'=>'all',
                'show'=>'all'
            ),
        'nom_trad_id'=> array(
                'type'=>'long',
                'input'=>'hidden',
                'defaut'=>'0',
                'write'=>'all',
                'show'=>'all'
            ),

Texte directement traduisible

On peut aussi imaginer un texte traduisible directement dans le formulaire, en combinant un champ text + champ hidden + une sous table sur les traductions
        'texte'=> array(
                'type'=>'text',
                'label'=>'txt_texte.texte',
                'input'=>'textarea',
                'style'=>'height: 150px;',
                'maxlen'=>'10000',
                'traduction'=>array(
                        'champ'=>'lg_mot_id',
                        'write'=>'',
                        'show'=>$recordDroits['txt_texte']['table']['lg_mot_id']['show'],
                ),
                'required'=>'yes',
                'defaut'=>'',
                'write'=>'all',
                'show'=>'all'
            ),
        'lg_mot_id'=> array(
                'type'=>'long',
                'input'=>'hidden',
                'defaut'=>'0',
                'write'=>'all',
                'show'=>'all'
            ),
        'traduction'=> array(
                'type'=>'lg_mot',
                'inline'=>'yes',
                'showtest'=>array('is_defined'=>array('id')),
                'label'=>'txt_texte.traduction',
                'input'=>'table',
                'valeurs'=>"SELECT t.id FROM lg_mot t, lg_langue l WHERE l.id=t.lg_langue_id AND traduction_id='' ORDER BY l.iso",
                'write'=>'ADMIN',
                'show'=>'ADMIN',
            ),

  1. On bloque l'édition des traductions via les pictos ISO
  2. On déclare notre champ hidden de traduction
  3. On déclare une sous-table pour l'affichage de sous formulaire sur les traductions

Aide à la saisie

On peut ajouter une aide à la saisie sur ce type de champ.
L'icône Loupe apparait alors, un popup s'ouvre, on fait une sélection ou autre et un texte est recopié automatiquement dans le champ < input type="text"

Ajout d'un popup de sélection parmi la liste des couleurs de la table g_couleur

                'val_find'=>array( 'table'=>'g_couleur', 'id'=>'nom', 'nom'=>'nom', 'liste'=>'nom'),

Cas particulier des types date et datetime

Pour les champs de type date et datetime, le cms va ajouter automatiquement via JQuery une aide à la saisie.
Pour compléter le contrôle de saisie, il faut ajouter un contrôle JS qui va vérifier le format de saisie de la date
            'jsControl'=>array(
                    'aide'=>'format_date',
                    'ereg'=>'^(([d]{0})|(0000-00-00s00:00:00)|(0000-00-00)|((20[0-9]{2})-(0[1-9]|1[0-2])-([012][0-9]|3[01])))(([d]{0})|(([s])([01][0-9]|2[0123]):([0-5][0-9])(([d]{0})|:([0-5][0-9]))))$',
                    ),
                'maxlen'=>'10', # 10=date, 19=datetime
                'style'=>'width: 150px;',
                'aide'=>'format_date',
                'defaut'=>'0000-00-00 00:00:00',

Cas particulier du password

Type => password, équivaut un < input type="password".
Les règles d'utilisation sont les mêmes que pour Input=>text