Problème formulaire d'édition en cas de dossiers différents #16

Closed
opened 6 months ago by tcharlss · 1 comments
Owner

Le pipeline inserer_modeles_lister_formulaires_modeles permet en théorie d'ajouter des modèles se trouvant dans d'autres dossiers que le dossier standard des modèles (voir ticket #15 pour un exemple de cas de figure).

Ceux-ci sont bien listés dans le formulaire, cependant quand on en choisit et qu'on passe en mode édition, il n'y a aucune saisie.

En effet ça va toujours chercher le yaml dans le dossier standard, ça tient pas compte des autres chemins éventuels : https://git.spip.net/spip-contrib-extensions/inserer_modeles/src/branch/master/inc/inserer_modeles.php#L68

if ($chemin = find_in_path($formulaire, 'modeles/')) {

À priori ça pourrait être résolu comme ça :

  • Garder le chemin de chaque modèle dans inserer_modeles_lister_formulaires_modeles(), en plus de nom + icone_barre.
    $liste_formulaires_modeles[$formulaire] = array(
        'nom'         => `…`,
        'icone_barre' => `…`,
        'chemin'      => $chemin,
    );
    
  • Et utiliser cette liste dans charger_infos_formulaire_modele()
    $liste = inserer_modeles_lister_formulaires_modeles();
    $chemin = $liste[$formulaire]['chemin'] ?? '';
    if ($chemin = find_in_path($chemin)) {
    
Le pipeline [inserer_modeles_lister_formulaires_modeles](https://git.spip.net/spip-contrib-extensions/inserer_modeles/src/branch/master/inc/inserer_modeles.php#L51) permet en théorie d'ajouter des modèles se trouvant dans d'autres dossiers que le dossier standard des modèles (voir ticket #15 pour un exemple de cas de figure). Ceux-ci sont bien listés dans le formulaire, cependant quand on en choisit et qu'on passe en mode édition, il n'y a aucune saisie. En effet ça va toujours chercher le yaml dans le dossier standard, ça tient pas compte des autres chemins éventuels : https://git.spip.net/spip-contrib-extensions/inserer_modeles/src/branch/master/inc/inserer_modeles.php#L68 ```php if ($chemin = find_in_path($formulaire, 'modeles/')) { ``` À priori ça pourrait être résolu comme ça : * Garder le chemin de chaque modèle dans [inserer_modeles_lister_formulaires_modeles()](https://git.spip.net/spip-contrib-extensions/inserer_modeles/src/branch/master/inc/inserer_modeles.php#L12), en plus de nom + icone_barre. ```php $liste_formulaires_modeles[$formulaire] = array( 'nom' => `…`, 'icone_barre' => `…`, 'chemin' => $chemin, ); ``` * Et utiliser cette liste dans [charger_infos_formulaire_modele()](https://git.spip.net/spip-contrib-extensions/inserer_modeles/src/branch/master/inc/inserer_modeles.php#L61) ```php $liste = inserer_modeles_lister_formulaires_modeles(); $chemin = $liste[$formulaire]['chemin'] ?? ''; if ($chemin = find_in_path($chemin)) { ```
Poster
Owner

Je ferme, ajout inutile, ça fonctionne déjà en se servant correctement de $GLOBALS['dossier_squelettes']

Je ferme, ajout inutile, ça fonctionne déjà en se servant correctement de $GLOBALS['dossier_squelettes']
tcharlss closed this issue 6 months ago
Sign in to join this conversation.
No Label
No Milestone
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.