[bogue][nextIdCategory()] L'ajout catégorie dans édition article, peut en écraser une autre.
Bonjour,
je viens de remarqué un bogue lorsque l'on ajoute une catégorie a partir de la page d'édition d'un article, celle-ci peut remplacer une catégorie existante.
Pour reproduire ce bug.
- réorganiser le sens d'affichage des catégories sans mettre la dernière catégorie en dernier (a partir de la page catégorie.php).
- édité ou crée un article sans l'enregistrer,mais ajouter une nouvelle catégorie (à partir de la page article.php).
Cette nouvelle catégorie prendra invariablement le N° + 1 de la dernière catégorie affiché dans le tableau catégorie , si cette dernière de votre liste est la numéro 3 et que vous avez 5 catégories, vous aurez toujours 5 catégorie et la numéro quatre aura été simplement éditer.
si ce bug est déjà connu et documenter, merci de me rediriger vers le(s) sujet(s) le mentionnant.
Pour Infos, défaut logique provenant de
/**
* Méthode qui retourne le prochain id d'une catégorie
*
* @return string id d'un nouvel article sous la forme 001
* @author Stephane F.
**/
public function nextIdCategory() {
if(is_array($this->aCats)) {
$idx = key(array_slice($this->aCats, -1, 1, true));
return str_pad($idx+1,3, '0', STR_PAD_LEFT);
} else {
return '001';
}
}
dans class.plx.admin.php , sans hook, impossible d'effectuer une correction au bon endroit sans toucher aux entrailles de PluXml.
Le premier hook dispo plxAdminEditCategoriesNew est déjà trop loin dans le deroulé du script où un
$cat_id = str_pad(count(array_column($this->aCats, null))+1,3, '0', STR_PAD_LEFT);
aurait pu être efficace à la place du
$cat_id = $this->nextIdCategory();
Cdt
Edit: Je me demande si finalement cette fonction est utile car utilisée uniquement dans ce cas .
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Réponses
Bonjour,
Effectivement il y a un petit souci et il passe sous les radars depuis des lustres ou versions de PluXml.
Pas de panique, rien de bien grave. Voici la solution à intégrer dans la prochaine mise à jour de PluXml :
Merci pour le retour.
Note qu'il n'y a pas ce souci. Juste à incrémenter une valeur numérique pour être rigoureux :
Et en croisant les doigts pour que $this->plxGlob_arts->aFiles soit toujours un tableau
Pull-Request #534
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Merci,
Cela règle bien le soucis au premier abord, mais c'est peut-être encore boiteux, car si entre-temps on retire(delete) une catégorie, celle-ci laisse un trou dans les numéros de catégories et le dernier numéro de catégorie peut être supérieur au nombre de catégories elle-même
Peut-être que finalement, rechercher le dernier numéro de catégorie serait plus judicieux. Remplir les trous n'est probablement pas une bonne idée .
Merci pour nous en tous cas.
Cdt,
GC
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Bonjour,
Les catégories peuvent se numéroter jusqu'à 999. Cela laisse le temps de voir venir.
Par contre, supprimer une catégorie peut, peut-être, poser un problème côté site quand on affiche les catégories d'un article. A vérifier.
La fonction plxShow::artCat() pose un petit souci.
En supposant qu'un article soit classé dans plusieurs catégories, disons 3 par exemple, et qu'on supprime 2 de ces catégories. Alors on affiche 2 fois "non classé" et la catégorie encore existante.
Cela fait un peu bizarre.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Oui effectivement,
le plus simple serait d’empêcher d'effacer une catégorie tant que des articles lui sont rattachés.
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
C'est un peu contraignant. A la limite, on affiche un avertissement si une catégorie à supprimer contient au moins un article.
Il suffit de corriger plxShow::artCat() :
Mais il y a encore un autre souci :
Si un article appartient uniquement à une catégorie et qu'on supprime celle-ci l'article devient invisible sur le site alors qu'il devrait être considéré comme non classé (id categorie: "000").
Au final, c'est plxMotor::artInfoFromFilename() qui fait mal le job. Il ne vérifie pas si les catégories de l'article sont valides.
Je vais voir cela.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Oui, et on a déjà la possibilité de rendre inactive ou de masquer une catégorie avec un résultat assez similaire. peut-être faudrait-il plutôt proposer de désactiver la catégorie qui contient encore des articles dans ce cas ?
D'un truc simple, ça se complique à trop s'y pencher Désolé.
Cdt,
GC
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Une autre personne aurait soulever le problème dans l'avenir si tu n'avais pas fait la remarque.
Autant traiter le problème plutôt que de lui tourner le dos.
Cela augmentera la résilience de PluXml.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2