openMairie.org | Démonstration | Documentation | Forum

[intégrée] Prop0033 - Snippets de formulaire

Bonjour,

Toujours dans mon idée plus large de supprimer les EXTERNALS, voici une POC pour le déplacement de certains scripts présents dans le répertoire spg/ dans le répertoire core/.

J’ai donc créé une branche à partir de la branche 4.7.0 :
https://adullact.net/scm/viewvc.php/openmairie/openmairie_exemple/branches/poc-snippet-form/

##Statut
Fonctionnelle à part les trois points problématiques (voir plus bas)

##Idée générale
Certains widgets de formulaire (méthodes de la classe formulaire du script core/om_formulaire.class.php) ont besoin de de faire des appels à des scripts PHP via des requêtes AJAX ou via des popup. Ces scripts PHP sont aujourd’hui stockés dans le répertoire spg/ :

  • localisation.php
  • combo.php
  • file.php
  • upload.php
  • autocomplete.php
  • voir.php

Dans l’optique de supprimer le répertoire spg/, l’idée est de déplacer le code de ces scripts snippets de formulaire dans la classe formulaire du script core/om_formulaire.class.php dans des méthodes snippets de formulaire préfixées par snippet__.

Points réalisés

  • Déplacement du code dans les méthodes formulaire::snippet__*()
  • Suppression des scripts spg/ concernés
  • Ajout d’un point d’entrée application::view_form_snippet()
  • Modification de formulaire::__construct() : le premier paramètre est de nouveau utilisé et permet de sélectionner le mode d’instanciation de la classe soit vue de snippets de formulaire soit construction de formulaire
  • Ajout d’une méthode permettant de gérer la vue des snippets de formulaire : formulaire:view_snippet()
  • Remplacement de tous les appels vers spg/*.php par scr/spg.php?snippet=*

Points à améliorer

  • Le point d’entrée scr/spg.php est à renommer, est-ce que ça a du sens de l’intégrer au point d’entrée scr/form.php ?

Points problématiques

##A voir

Pour une meilleure lisibilité, il serait également intéressant de renommer également les méthodes widgets de formulaire en les préfixant par widget__. En plus du renommage des méthodes, la seule modification serait dans méthode formulaire::afficherChamp() qui appelle les méthodes widgets de formulaire.

Le point problématique concernant les appels en dur à spg/SNIPPETFORM.php dans les scripts javascript a été corrigé dans le même sens que celui de la poc visant à supprimer le répertoire scr/.

https://adullact.net/scm/viewvc.php/openmairie?view=revision&revision=4005

La POC est satisfaisante, je la transforme en prop.