Il est possible d'ajouter des champs assez simplement pour les modules en MVC (exemple : articles, news, calendrier, livre d'or), le tout n'étant évidemment pas d'ajouter uniquement une information à saisir dans le formulaire, mais également afficher cet élément à l'endroit voulu.
Vous n'avez besoin d'aucune connaissance particulière en programmation, mais il va falloir être méthodique dans la procédure à suivre pour mettre en place le nouvel élément.
Les ajouts peuvent être effectués avec un simple éditeur de texte (exemple :
notepad++).
La mise en place du nouveau champ se fait en 3 étapes : Modification de l'objet du module, ajout de variables de langue et création du champ dans le formulaire de saisie.
Dans cette exemple nous nous appuierons sur le module articles, avec l'ajout d'un champ "Activer les commentaires" (pour pouvoir choisir d'afficher ou non les commentaires pour chaque article).
Editez tout d'abord le l'objet principal du module. Dans le cas du module
articles, il s'agit du fichier
/articles/services/Article.class.php.
Il faut ici créer la variable correspondant à votre nouveau champ, créer les méthodes
get et
set pour le récupérer et le modifier, l'ajouter à la fonction pour récupérer ou ajouter les différents paramètres, et enfin ajouter une variable dans la liste des variables envoyées au template.
Exemple dans notre cas :
Editez ensuite le fichier d'installation du module. Dans le cas du module
articles, il s'agit du fichier
/articles/phpboost/ArticlesSetup.class.php.
Ajoutez votre champ dans la méthode
create_table() (dans le cas du module articles :
create_articles_table()) pour qu'il soit créé à l'installation. Dans certains modules on trouve également la méthode
insert_data() pour l'objet créé par défaut, pensez à le mettre à jour aussi dans ce cas là.
Exemple dans notre cas :
Si vous avez déjà installé le module, il va falloir ajouter le champ en base de données via une requête SQL :
ALTER TABLE nom_table ADD nom_colonne type_donnees
Exemple dans notre cas :
Il va falloir créer une variable de langue pour son titre dans le formulaire.
Editez le fichier
/articles/lang/french/common.php et ajoutez une variable de langue du type :
Exemple dans notre cas :
Si vous souhaitez ajouter une explication sous le titre dans le formulaire, ajouter une deuxième variable :
Vous pouvez répéter l'opération pour la langue anglaise si besoin.
Editez ensuite le formulaire du module. Dans le cas du module
articles, il s'agit du fichier
/articles/controllers/ArticlesFormController.class.php.
Ajoutez votre champ dans la méthode
build_form() pour l'afficher et dans la méthode
save() pour l'enregistrer.
Exemple dans notre cas :
Vous pouvez maintenant afficher votre nouveau champ directement dans les templates du module.
Exemple dans notre cas : Editer le fichier
/articles/templates/ArticlesDisplayArticlesController.tpl ou copiez le dans votre thème avant de le faire.
Voilà votre champ ajouté et opérationnel.
Ces différentes étapes peuvent être adaptées pour tout type de champ et pour tout module en MVC.
Ces modifications seront à refaire en cas de mise à jour du module en question par l'équipe.