pluxml / PluXml

A CMS to create lightweight websites with ease and without database.
http://pluxml.org
GNU General Public License v3.0
218 stars 70 forks source link

impossibilité de decoché une statique mise précedement en Acceuil #669

Closed gcyrillus closed 10 months ago

gcyrillus commented 1 year ago

Cette portion de code dans class.plx.Admin.php en l'état, peut-être retirée

             elseif($k == 'homestatic') {
                if(
                    empty(trim($v)) or
                    !preg_match('#^\d{3,4}$#', $v)
                ) {
                    continue;
                }

            }

fait double emploi et empeche le vidage du champ homestatic dans le fichier de configuration de PluXml.

kazimentou commented 12 months ago

Non, cela ne fait pas double emploi. On filtre cette valeur pour le formulaire posté par un humain. Par contre le test est effectivement erronné. Voici la correction :

            elseif($k == 'homestatic') {
                if(
                    !empty($v) and
                    !array_key_exists($v, $this->aStats)
                ) {
                    continue;
                }

            }

Je vais publier un commit très prochainement.

gcyrillus commented 12 months ago

superbe, merci

bazooka07 commented 12 months ago

Voir commit : https://github.com/pluxml/PluXml/commit/7002c16a587141882ce20fe2c2de563ed04b854f

Je m'interroge sur la pertinence d'afficher la page static qui sert de homepage dans le menu généré par plxShow::staticList(). Certes on peut agir dans le panneau de config pour désactiver cet affichage mais pour un newbie ce n'est pas forcément instinctif. Ton avis ?

haruka-7 commented 12 months ago

Je ne pense pas que ça pose problème, ça me semble assez simple, même pour un newbie, d'aller mettre la page en "masquer" depuis l'admin et ça éviterait de gérer un cas particulier dans le code. Je préfère garder la mécanique existante.

gcyrillus commented 12 months ago

Il y aussi Cpalo qui souhaiter retirer le lien vers la page d'accueil lorsque l'on etait sur la page d'acceuil ;) Je lui avais proposé ceci qui semble convenir:

<?php $homeLink = ($plxShow->mode() =='static'  && $_SERVER['QUERY_STRING'] =='' ) ? '' :  $plxShow->getLang('HOME') ;  ?>
    <?php $plxShow->staticList($homeLink,'<li class="#static_class #static_status" id="#static_id"><a href="#static_url" title="#static_name">#static_name</a></li>'); ?>

cdt

haruka-7 commented 12 months ago

Pour ce cas on pourrait ajouter un nouveau paramètre booléen à plxShow::staticList(), quelque chose du genre :

<?php $plxShow->staticList('$extra', '$format', '$format_group', $display_home) ?>

bazooka07 commented 12 months ago

La remarque de @cpalo rejoint ce que j'ai proposé. Pour satisfaire tout le monde, on peut passer une option à plxShow::staticList($extra, $format, $format_group, $menublog). Par contre, cela m'ennuie d'ajouter une nouvelle option après $menublog car il faut renseigner en même temps les valeurs de $format et $format_group. Une alternative est de tester le type de $extra. Si type string pas de changement. si type boolean avec valeur false, on n'affiche pas le lien. Il y a le même souci quand on donne une valeur numérique à $menublog. Il faut aussi renseigner avec des strings $format et $format_group. Une alternative serait de passer des valeurs boolénnes à la place pour prendre les formats par défaut. En jetant un oeil dans le code de PluXml, je constate que le test sur $menublog est incorrect. On teste s'il est vrai au lieu de tester une valeur numérique positive. J'attends vos retours pour tester cela.

Il y a la remarque sur le titre de page de Txori posté ce jour sur le forum.

cpalo commented 12 months ago

Bonsoir, j'ai utilisé ce que gcyrillus m'avait proposé. Et ça fonctionne impeccable.

haruka-7 commented 12 months ago

@bazooka07

Par contre, cela m'ennuie d'ajouter une nouvelle option après $menublog car il faut renseigner en même temps les valeurs de $format et $format_group.

Est-ce qu'on ne devrait pas laisser à null les valeurs des paramètres et tester avec empty() dans la fonction pour appliquer les valeurs par défaut, pour éviter ça ? Car même si on est pas strict_types=1 sur plxShow, je préfère ça que de passer des paramètres qui peuvent avoir plusieurs types (string ou bool) et que l'on test le type dans la fonction. C'est d'ailleurs à cause de ça qu'il y a effectivement un bug sur le paramètre $menublog.

Il y a la remarque sur le titre de page de Txori posté ce jour sur le forum.

Je n'ai pas encore regardé les impacts de ça, mais sur le principe je pense qu'on peut faire de sorte de ne plus rendre le titre obligatoire sur les pages

bazooka07 commented 12 months ago

Effectivement on peut passer null en paramètres et tester avec is_null pour prendre les formats par défaut.