[Résolu] Problème de La Fabrique

Bonjour,
J’ai créé un objet éditorial (à partir d’une table existante) avec La Fabrique.
J’ai un champ « mb_prenom », de texte clair « Prénom principal, d’usage ».

L’activation du plugin me crée une erreur PHP à cause de la ligne suivante, dans base/monplugin.php :

function monplugin_declarer_tables_objets_sql($tables) {
    ...
  $tables['spip_gmembres'] = [
      ....
    'champs_editables'  => ['mb_refus', 'mb_inactif', ... ... 
    'rechercher_champs' => ["mb_prenom" => Prénom principal, d'usage],

On peut voir que pour les champs de recherche, le nom du champ est en simple quote, et que le texte en clair du champ n’est pas entre guillemets, ce qui provoque l’erreur.
Un petit truc à corriger dans La Fabrique je pense…

Ah oui c’est parce que je me suis trompé de zone de saisie pour la phrase d’explication de la saisie : je l’ai mise dans le champ de pondération de recherche, ce qui génère l’erreur dans la ligne citée.
Résolu.

Un petit truc à consolider dans La fabrique tout de même à mon avis.

tu te sentirai de faire un merge request en ce sens?

Bonjour,

Désolé, je comprends à peine la question, je n’ai pas suivi le passage de SVN à GIT, et je n’ai pas pu assister aux webinaires qui ont été donnés il y a quelques mois.

Ok, alors formulons autrement la question (ou plutot simplifions làé) : te sentirais tu de chercher et d’indiquer précisement les lignes à modifier pour obtenir le comportement souhaité ?

Ah oui… :slight_smile:

Donc ça se passe ici :

Il faut tester si la #VALEUR{recherche} est bien un nombre par la fonction php is_numeric.

Il y a le critère {recherche >=1 } qui vérifie que l’on a saisi une pondération de recherche, mais ça répond positif même si l’on a saisi un texte sans nombre.
Je n’ai pas réussi à passer is_numeric dans ce critère.

Donc j’ai filtré sur le contenu de la boucle :

["(#VALEUR{champ})"] => #VALEUR{recherche}

a été modifié par

[(#VALEUR{recherche}|is_numeric|oui) ["(#VALEUR{champ})"] => #VALEUR{recherche}]

Il doit y avoir plus sérieux comme solution, mais c’est une piste pour vous.

ah oui oki je comprend mieux le problème. Faut que je me replonge sur comment est fait la fabrique, mais sans doute qu’il y a moyen d’empecher de poster une valeure non numetique

1 « J'aime »

Bonjour,

Voici la réponse. C’est ici :

Et selon

Il faut insérer en ligne 180 :

type=number,

Voilà.
Sincères salutations

ah oui on pourrait yper en pure html. C’est pas une vérification coté PHP mais ca suffirait pour le besoin. Le reste du code de la fabrique est tellement complexe que j’ai pas osé regardé.