[Résolu] Styles suivant le mode

cpalocpalo Member
13 nov. modifié dans Entraide

Bonjour,
PluXml affiche une classe sur le body suivant le mode (home, static, archive, etc).
j'ai donc ce code

   <body class="<?php
    $var = $plxShow->mode();
    if ($var == 'home') {
        echo "home blog ";
    } elseif ($var == 'article') {
        echo "single single-post postid-" . $plxShow->artId() . " single-format-standard ";
    } elseif ($var == 'static') {
        echo "page page-id-" . $plxShow->staticId() . " page-template-default ";
    } else {
        echo "";
    }
    ?>

Par contre j'ai une page statique en page d'accueil.
Et donc ce qui est affiché

body class="mode-static">

Ce qui est normal comme résultat, mais j'aurais souhaité afin de la différencier quelque chose du genre.

body class="mode-static-home">

Est-ce possible? Sinon je prevoirai un header spécifique du genre :

body class="home  <php  ...code ci-dessus...   ?>

Réponses

  • bazooka07bazooka07 PluXml Project Manager

    Bonjour,
    En clair, tu nous dis qu'il manque un mode.
    Pour savoir quoi afficher côté site (front-end), PluXml exécute successivement les fonction plxMotor::prechauffage() et plxMotor::demarrage()
    Dans le fichier core/lib/class.plx.motor.php, la fonction prechauffage() fait un test sur $this->aConf['homestatic'] et autres. Si le test est positif on bascule $$this->mode à "static". Le plus simple est de modifier cette valeur à "homestatic".

    Peut-être, il y a un intérêt à ajoter cette modification à la prochaine version de PluXml. Je pense qu'il n'y aurait pas d'effet colatéral.

  • cpalocpalo Member

    Ce que je viens de faire; et c'est ok.
    Cela me simplifie certaines conditions dans mon css.
    Merci
    Effectivement, s'il n'y a pas d'effet collatéral cela pourrait être intéressant d'jouter cette modification car c'est bien un mode différent des autres.

  • Bonjour @cpalo

    Il est aussi possible de tester si il y a une requête dans l'url (déterminant le mode de PluXml entre autre) .

    if (($_SERVER['QUERY_STRING'] ==='') and  $plxShow->mode() ==='static' ) {
      echo  'homestatic ';
    }
    else { /* les tests sur mode continus */
    }
    

    Cdt

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins : https://github.com/gcyrillus PluXml 5.8.7 sur free ? oui c'est possible : http://gcyrillus.free.fr/new }-))))°> ♣♣♣♣

  • cpalocpalo Member

    @gcyrillus-nomade
    Pourrais-tu m'expliquer la différence avec la solution que tu proposes?
    Merci

    <body id="top" class="page mode-<?php $plxShow->mode(true) ?>">
    
  • 13 nov. modifié

    @cpalo il n'y a pas lieu de modifier les fichiers de PluXml, juste à faire ce test dans fichier de thème devant tes propres tests.
    En gros, ton code deviendrait (si j'ai compris l'idée, car je ne voit pas les autres modes testés, à moins que ce ne soit que des class en sus )

      <body class="<?php
        $var = $plxShow->mode();
        if (($_SERVER['QUERY_STRING'] =='') and  $var == 'static' ) {
            echo  'homestatic ';// nom(s) de class que tu souhaites
        }
        else { // = pas de page statique en accueil !
            if ($var == 'home') {
                echo "home blog ";
            } elseif ($var == 'article') {
                echo "single single-post postid-" . $plxShow->artId() . " single-format-standard ";
            } elseif ($var == 'static') {
                echo "page page-id-" . $plxShow->staticId() . " page-template-default ";
            } else {
                echo "";// quid des mode tag, categorie , .. ?
            }
        }
        ?>">
    

    Sans dépendre d'une modif ou évolution de PluXml, cela conserverait la compatibilité du thème avec les versions précédentes de PluXml

    Cdt

    ♣♣♣♣ <°(((((-{ ~ Mon site avec PluXml: https://re7net.com | Mes plugins : https://github.com/gcyrillus PluXml 5.8.7 sur free ? oui c'est possible : http://gcyrillus.free.fr/new }-))))°> ♣♣♣♣

  • cpalocpalo Member

    Ok je vois bien ..
    Le vrai test comprendrait biensur les autres modes et homestatic était le seul mode qui ne s'affichait pas.
    Mais actuellement j'avais besoin de faire une différence entre les mode-article et mode-static par rapport aux autres.

    • une typographie différente ( en particulier font-size plus grande dans le site-main)
    • homestatic sans sidebar par exemple
Connectez-vous ou Inscrivez-vous pour répondre.