Bonjour tous le monde,
Y'a-t-il un moyen de modifier la configuration de certains elements du helper de cakePHP3 pour l'adapter à la structure de son site (notamment le FormHelper).
Merci pour votre aide,
Non si j'ai bien compris,
il faut rajouter dans AppView (c'est fait exprès), dans initialize(), ton loadHelper donc dedans tu fais
$this->loadHelper('Form', [
'templates' => 'le-nom-de-ton-template',
]);
Le Form avant le tableau revient à dire Pour $this->Form->...... utilise la template "......"
Il faut créer le fichier "le-nom-de-ton-template.php" dans le dossier config.
Le fichier devra contenir un tableau des templates indexés par leur nom:
return [
'inputContainer' => '<div class="form-control">{{content}}</div>',
//Ici tu mets ce que tu veux perso
'input' => '<input type="{{type}}" class="taclassici" name="{{name}}"{{attrs}}>',
];
par exemple (c'est dans la doc ce que je dis au dessus).
Tous les templates que vous définissez vont remplacer ceux par défaut dans le helper. Les Templates qui ne sont pas remplacés vont continuer à être utilisés avec les valeurs par défaut.
Après tu utilise ton template comme tu fait normalement, la seul différence c'est que ton template sera utiliser, donc tes input perso, etC...
Si j'ai bien compris ça devrait fonctionner, au moin j'aurai appris en même tmeps que toi ^^
Oui tu cherche le fichier FormHelper ( dans src\View\Helper\ ) puis tu cherche ce que tu veux modifier, par exemple pour modifier la class du button
<?= $this->Form->button('Envoyer') ?>
tu cherche dans FormHelper la class button:
public function button($title, array $options = [])
{
$options += ['escape' => false, 'secure' => false];
$options['text'] = $title;
return $this->widget('button', $options);
}
et après le $options += [ tu mets la class que tu veux par exemple
public function button($title, array $options = [])
{
$options += ['class' => 'taclasseici', 'escape' => false, 'secure' => false];
$options['text'] = $title;
return $this->widget('button', $options);
}
Après tu peux créer tes templates en précisant pendant la création de ton formulaire le template à utiliser.
Voilà.
Merci pour ta réponse.
Le problème c'est que lors d'une mise à jour je vais perdre les changements. Je pense donc qu'il faut que je réécrive par dessus les fonctions vu qu'elles sont en public. Je pensais créer un plugin, mais je suis pas sûre que ce soit la meilleur solution.
À moins que tu veux dire que je dois créer un fichier FormHelper sous src/view/helper.
Je viens d'éditer mais comme tu as rep en même temps tu va surement pas le voir,
"Après tu peux créer tes templates en précisant pendant la création de ton formulaire le template à utiliser."
Au pire tu as la doc elle expliquera mieux que moi ^^
http://book.cakephp.org/3.0/fr/views/helpers/form.html#personnaliser-les-templates-que-formhelper-utilise
Merci pour vos réponses d'une redoutable efficacité. Il me semble que c'est bien ça que je cherche.
Je ne sais pas pourquoi lorsque j'ai parcouru la doc j'ai pas tilté...
Je m'emmêle un peu les pinceaux. Si j'ai bien compris la doc je dois rajouter dans AppController le loadHelper(form...).
Puis je dois créer un fichier app_form.php dans mon dossier config. Dedans je créais un tableau qui contient les champs que je veux modifier, et leur modification. Mais je me retrouve avec une fatal Error. Pour être franc, j'ai un peu du mal à comprendre la logique de conception, si quelqu'un peu m'eclaircir ?
Ce que je souhaite faire c'est mettre les labels à null par default, et changer les class de quelques elements du form.
Super merci, ça semble fonctionner.
J'ai changé les classes, et mis "label" => null.
Encore merci pour ton aide, ça fait vraiment plaisir :)