Avis pour inclure du php

cpalocpalo Member
avril 2017 modifié dans Discussions générales
Bonjour,

Pour inclure des petits morceaux de code, j'ai suivi l'astuce donnée par Stéphane, et pas de problème:
http://pluxopolis.net/article41/inclure-un-fichier-php-stocke-dans-le-dossier-de-son-theme
Et là je voulais modifier header.php en remplaçant la partie <div class="responsive-menu">.....</div> par l'inclusion d'un fichier menuPluxml.php.
J'ai donc fait, et ça fonctionne
<nav class="nav">
    <div class="container>
        <?php include(PLX_ROOT.$plxMotor->aConf['racine_themes'].$plxMotor->style.'/inc/menuPluxml.php') ?>	
    </div>
</nav>
La question que je me posais était de savoir si je ne devais pas faire comme lorsqu'on appelle appelle sidebar.php ou footer.php par exemple:
<nav class="nav">
    <div class="container>
      <?php include(dirname(__FILE__).'/menuPluxml.php'); ?>	
    </div>
</nav>
Le résultat est sans doute le même, mais il y en a peut etre une des deux qui est plus correcte au niveau de la logique du code?
Cordialement

Réponses

  • Pour garder la flexibilité de la mise en page reliée au thème, le choix serait le premier des deux. Si plusieurs thèmes devaient utiliser une version similaire, rien n'empêche de simplement recopier ce fichier de menu dans tous les répertoires de thèmes.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Faisons court :
    dirname(__FILE__) est à remplacer par __DIR__
    voir constantes maiques de PHP

    Il n'est pas nécessaire de préciser le chemin si c'est le repertoire du scrpit php qui contient l'include
    voir le manuel de include

    Au final pour la faire courte, on se limitera à
    [== PHP ==]
    <nav class="nav">
        <div class="container>
          <?php include('menuPluxml.php'); ?>	
        </div>
    </nav>
    
  • cpalocpalo Member
    avril 2017 modifié
    @bazooka07
    j'avais cité DIRNAME(__FILE__) parce que je citais le thème par défaut.
    Mais alors justement lorsque dans le home.php on a
    <?php include(dirname(__FILE__).'/sidebar.php'); ?>
    
    on devrait donc le remplacer par?
    <?php include('sidebar.php'); ?>
    
Connectez-vous ou Inscrivez-vous pour répondre.