Afficher un texte automatique en fonction de la catégorie de l'article

LolYangccoolLolYangccool Member
mai 2014 modifié dans Entraide
Bonjour,
J'aimerais afficher un texte de manière automatique lorsque celui-ci est classé dans une catégorie bien précise.
Ce texte sera long de plusieurs lignes et devra être placé à la fin de l'article.

J'ai pensé utiliser Champart mais pour le faire automatiquement je n'ai aucune idée de comment faire.

Est-ce possible ?

Merci. :)

Réponses

  • Si ce texte est commun à plusieurs articles, champArt n'est pas la bonne solution.
    Tu peux faire une condition sur l'appartenance à une catégorie et afficher soit une page static, soit la description de la categorie, ou un texte en dur dans le template ..
  • LolYangccoolLolYangccool Member
    mai 2014 modifié
    Bonjour,
    Merci pour la réponse. :)

    Oui, ce texte sera commun à tous les articles d'une même catégorie.
    Afficher une page statique me paraît pas mal, mais comment tu fais pour dire que la page doit être affichée quand c'est telle catégorie uniquement.
    Sinon, ce qui serait encore mieux, c'est d'avoir une case à cocher dans la rédaction de l'article qui, quand elle est coché, affiche la fameuse page statique.

    Il faudrait alors dans le template (?) mettre le code pour afficher la page statique (que je peux retrouver puisque je l'utilise déjà sur mon site) mais ajouter une condition pour que cette page ne soit affichée que lorsque la case est cochée.
    Par contre pour afficher la case à cocher dans l'admin...

    Et je suis incapable de faire tout ça. :(

    Meri à toi. :)

    Edit : Encore une question qui est indirectement en rapport avec ce sujet :
    Est-il possible de remplir des champs dans la rédaction de tous les articles en un seul coup ?

    Je m'explique :
    Si j'arrive à mettre les cases à cocher en place, j'ai une grosse trentaine d'articles qui devront tous être modifié avec la coche de cette case.
    Est-il possible de toute les cocher d'un coup sans devoir aller le faire article par article ?
  • [== PHP ==]
    $cibleCat = "001"; // id de la catégorie cible
    $cibleStatic = "2"; // id de la page static à inclure
    $listCat = $plxShow->artCatIds(); // liste des catégories de l'article séparées par des virgules
    $tabCat = explode(",", $listCat); // on transforme cette liste en tableau
    if(in_array($cibleCat,$tabCat)){ // si l'id de la catégorie cible est dans le tableau
     // on inclue la page static cible
    }else{ // si l'id de la catégorie cible n'est pas dans le tableau
    }
    
    

    ou (beaucoup) plus court :
    [== PHP ==]
    if(strstr($plxShow->artCatIds(), '003')){$plxShow->staticInclude('3');}else{}
    
  • Va faire un tour du côté du blog de Stephane (http://www.pluxopolis.net). Tu y trouveras une partie des réponses à tes questions.
  • danielsan a écrit:
    ou (beaucoup) plus court :
    [== PHP ==]
    if(strstr($plxShow->artCatIds(), '003')){$plxShow->staticInclude('3');}else{}
    
    Su-per ! :P
    It's working !

    Sujet résolu ! :)
  • LolYangccoolLolYangccool Member
    mai 2014 modifié
    J'aurais encore besoin de votre aide.
    Je cherche à créer une bordure avec un fond de couleur à l'intérieur de cette bordure afin de différencier le texte ajouté du texte de l'article.
    J'ai commencé à créer la bordure mais pour le moment il n'y a que la ligne superieure qui est affichée. Cependant, cette bordure apparaît sur tous les articles.

    Voilà mon code dans articles.php :
    [== HTML ==]
    <p class="info_tutoriels">
    <?php if(strstr($plxShow->artCatIds(), '015')){$plxShow->staticInclude('28');}else{} ?></p>
    
    J'aimerai que la class « info_tutoriels » ne soit utilisée que lorsque la page 28 est incluse dans l'article.

    Comment faire.
    Merci. :)
  • FrancisFrancis Member
    Ce ne serait pas plus simple comme ça :
    <?php
    if ( strstr($plxShow->artCatIds(), '015') ) {
       echo '<p class="info_tutoriels">';
       $plxShow->staticInclude('28');
    }
    else {
       echo '<p>';
    }
    echo '</p>';
    ?>
    
    pour donner la classe "info_tutoriels" au paragraphe uniquement si la page statique 28 est affichée ?

    Et si jamais tu n'as pas besoin du paragraphe lorsque la page statique n'est pas affichée, tu peux même enlever le else et tout afficher dans le if.
  • Merci, je n'arrive pas à le mettre en forme via CSS.
    Quand je mets :
    [== CSS ==]
    .info_tutoriels {
    border: 2px dashed #71A08B;
    }
    
    Je n'ai rien qui se passe sur la page statique à l'intérieur de l'article.
  • FrancisFrancis Member
    Il faudrait regarder si cette classe est bien prise en compte. Tu peux essayer d'ajouter color: red; à la suite de la propriété border, par exemple.

    Il se pourrait que ce soit le niveau de définition du sélecteur en CSS, qui soit insuffisant.
    Par exemple, si ton paragraphe p se trouve dans un bloc d'identifiant "toto", tu peux essayer de mettre #toto . info_tutoriels {...} pour voir si ça marche, car l'identifiant donne un niveau de priorité supérieur à la classe.
  • D'accord, merci beaucoup.
    Pour le moment j'ai fais une présentation qui me va, du coup je vais laisser comme ça.
    Je modifierais probablement plus tard.
Connectez-vous ou Inscrivez-vous pour répondre.