Tu veux ou tu veux pas ?

J’ai repris il y a quelques temps la classe (statique) form de Clearbricks dans une classe parallèle, nommée forms, avec l’idée d’harmoniser un peu les paramètres de configuration des différentes méthodes.

Exemple :

echo '<label for="' . $wfid . '">' . form::field([$iname, $wfid], 20, 255, [
        'default'    => html::escapeHTML($s['value']),
        'class'      => 'maximal' . $class,
        'extra_html' => 'lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"'
]) . $label . '</label>';

Devenant avec la nouvelle classe :

echo '<label for="' . $wfid . '">' . forms::field([
    'name'    => $iname,
    'id'      => $wfid,
    'size'    => 20,
    'length'  => 255,
    'default' => html::escapeHTML($s['value']),
    'class'   => 'maximal' . $class,
    'extra'   => 'lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"'
]) . $label . '</label>';

C’est déjà disponible depuis la version 2.20 de Dotclear, mais pas encore appliqué.

Depuis hier je suis en train de réfléchir à une autre façon de fournir ces aides de construction des formulaires, la partie qui me rebute le plus en général, en passant par des classes instanciées plutôt qu’une classe statique, ce qui permet en particulier de « lier » un champ avec son label, ou encore de définir la liste des champs contenus dans un fieldset.

Pour reprendre l’exemple ci-dessus, le code deviendrait ceci :

$fld = new formField();

$fld->name       = $iname;
$fld->id         = $wfid;
$fld->size       = 20;
$fld->length     = 255;
$fld->default    = html::escapeHTML($s['value']);
$fld->class      = ['maximal', $class];
$fld->lang       = $core->auth->getInfo('user_lang');
$fld->spellcheck = true;
$fld->label      = new formLabel($label);

echo $fld->render();

Je me demande si je ne vais pas « trop loin » pour ça et si les deux classes (statiques) précédentes, form et forms, ne sont pas suffisantes.

Et sinon, question lecture du code, qu’est-ce qui vous semble le plus clair parmi les 3 possibilités ?

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15113

Haut de page