Sondage
bug & correction
Support des Modules
Poussiko Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre Poussiko
- Inscrit le : 26/10/2025
- Site internet
Je rencontre un bug sur le module Sondage (Poll) sous PHPBoost 6.04 / PHP 7.4.
Description du problème
Lorsqu’un membre (non administrateur) tente d’accéder au formulaire de création d’un sondage (`/poll/add/`), une erreur fatale se produit :
> *Fatale : The fieldset "publication" doesn't exists in the "poll_form" form*
Le problème ne se manifeste pas pour les administrateurs.
Cause technique
Dans la classe :
```
/poll/controllers/PollItemFormController.class.php
```
la méthode `build_countdown_field()` appelle directement :
```php
$this->form->get_fieldset_by_id('publication');
```
Or,
- le fieldset `publication` n’est pas ajouté au formulaire pour les membres (droits plus restreints),
- et l’API `HTMLForm` ne fournit aucune méthode pour tester l’existence d’un fieldset (`has_fieldset()` ou `get_fieldsets()` n’existent pas),
- `get_fieldset_by_id()` déclenche donc une erreur fatale si le fieldset est absent.
Proposition de correction
La solution que j'ai mise en œuvre (il y en a peut être d'autres...) a consisté à modifier PollItemFormController.class.php et à sécuriser l’accès au fieldset via un `try / catch`.
Correction appliquée dans `build_countdown_field()` :
```php
protected function build_countdown_field()
{
try {
$publication_fieldset = $this->form->get_fieldset_by_id('publication');
}
catch (Exception $e) {
// Le fieldset n'existe pas pour les membres
return;
}
// Ajout des champs liés au compte à rebours
...
}
```
Les champs `publishing_state` et `end_date_enabled` ont également été protégés via `has_field()` car ils ne sont pas présents côté membres.
@ plus
Édité par Poussiko Le 23/12/2025 à 12h54
Mipel Membre non connecté
-
Administrateur
- Voir le profil du membre Mipel
- Inscrit le : 04/04/2016
- Site internet
- Groupes :
-
Equipe Rédaction
-
Equipe Modération
Merci pour le signalement, les membres n'ont effectivement pas le droit de publication s'ils ne sont pas modérateurs.
Je vois que le ticket est créé dans le bugtracker, on le traitera dès que possible.
Merci de penser à joindre le rapport système de votre site, il peut nous aider à mieux répondre à vos questions.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie