Lister les pages marquées "masquer"

Bonjour à tous
Pluxml est formidable (voila c'est dit :)
et juste une petite épine que je n'arrive pas à régler, comment lister les pages marquées "masquer" du menu pour une page "plan du site"

La fonction suivante ne listant que les "visibles"...
<?php $plxShow->staticList('accueil','<li id="#static_id" class="#static_class"><a href="#static_url" class="#static_status" title="#static_name">#static_name</a></li>') ?>

J'ai essayé de bidouiller des choses en faisant un groupe... mais rien de probant
Des suggestions ?

Réponses

  • Salut,

    Très bonne question. :)


    à plus,

    Gzyg
  • Ca fait plaisir, même si ca répond pas à la question :), déjà un bon point avec une bonne question !
    En espérant que les autres qui aimeront la question auront des pistes.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    février 2018 modifié
    En mode quick & dirty car j'ai pas trop le temps de tester, ce qui suit devrait t'aider :
    [== PHP ==]
    <?php
    
    $format = <<< FORMAT
        <li class="#static_class #static_status" id="#static_id" >
            <a href="#static_url" title="#static_name">#static_name</a> (#static_group)
        </li>\n
    FORMAT;
    
    if(!empty($this->plxMotor->aStats)) {
        echo <<< LIST_START
    <ul class="celkivabien" id="gennepa">\n
    LIST_START;
    
        foreach($this->plxMotor->aStats as $statId=>$params) {
            if(!empty($params['active']) AND $params['menu'] != 'oui') { # La page  est bien active et dispo ds le menu
                if($params['url'][0]=='?') # url interne commençant par ?
                    $url = $this->plxMotor->urlRewrite($params['url']);
                elseif(plxUtils::checkSite($params['url'],false)) # url externe en http ou autre
                     $url = $params['url'];
                else # url page statique
                    $url = $this->plxMotor->urlRewrite('?static'.intval($statId).'/'.$params['url']);
                $replaces = array(
                    '#static_id'        => 'static-'.intval($statId),
                    '#static_class'     => 'static',
                    '#static_url'       => $url,
                    '#static_name'      => plxUtils::strCheck($params['name']),
                    '#static_status'    => ($this->staticId()==intval($statId)) ? 'active' : 'noactive',
                    '#static_group'		=> plxUtils::strCheck($params['group'])
                );
                echo str_replace(array_keys($replaces), array_values($replaces), $format);
            }
        }
    
        echo <<< LIST_END
    </ul>
    LIST_END;
    } else {
    ?>
    <p>
        Nous ne cachons aucune page statique
    </p>
    <?php
    }
    ?>
    
    Avec la coloration syntaxique c'est mieux.

    Code modifié le 21/02/2018

    Directement inspiré de $plxShow->staticList() mais bien revisité quand même.

    Reste à traiter les groupes
  • J'ai copié collé en mode barbare et paf ... plus rien !
    Je regarde tout ca un peu plus en détail dès ce soir
    Merci beaucoup bazooka pour le quick retour

    ps : j'ai découvert ton site du coup et Alpine linux et ... absolument RIEN compris mais j'aime bien le nom :)
  • Hello à tous & spécialement Bazooka
    Pas réussi à faire marcher ce code... je m'y suis peut être pris comme un manche (fort possible :) mais plus rien ne s'affiche !
    Je vais essayer de bidouiller encore ce code !

    Si je réussi, je marquerais résolu avec la solution !
    Nice day all
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    février 2018 modifié
    Non pas vraiment

    Comme précisé cela a été fait en mode quick and dirty. Donc pas de test Et évidemment il y a queques bugs.

    J'ai corrigé le code dans le billet #5 et dans le lien externe. En gros, il faut remplacer $plxShow par $this. Plus quelques bricoles. Mais le principe est le même.
Connectez-vous ou Inscrivez-vous pour répondre.