image de catégorie catThumbnail

Bonjour
je configure un site de la manière suivante:
j'affiche 1 article par page en choisissant d'afficher la catégorie. Je fais défiler mes articles avec Pagination. et pour chaque article je montre l'image de sa catégorie A ou catégorie B.
je veux aussi inclure tous mes articles dans la catégorie C et les faire défiler avec pagination, de manière mélangée (A+B) . la catégorie C n'a pas d'image d'accroche mais je souhaite que chaque article s'affiche avec l'image de sa catégorie propre A ou B.

je ne vois pas comment faire cette présentation. Est ce que les ressources de Pluxml permettent de dégager une solution ?
merci par avance, José

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,
    Pour l'article courant, on peut avoir la liste de ses catégories séparées par des virgules avec la fonction $plxShow->artCatIds().
    Pour avoir la vignette (image d'accroche de chaque catégorie, on peut utiliser $plxShow->catThumbnail() qui utilise la valeur de $plxShow->plxMotor->cible.Donc il faut sauvegarder cette valeur avec l'appel de la fonction et la restaurer après le rsésultat.

    <?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
          <h2><?php $plxShow->artTitle('link'); ?></h2>
    <?php
        $catList = explode(',', $plxShow->artCatIds());
           # Sauvegarde de la valeur cible
           $saveCible = $plxShow->plxMotor->cible;
           $foreach($catList as $catId) {
                $plxShow->plxMotor->cible;
                $plxShow->catThumbnail();
           }
           # On restaure cible
           $plxShow->plxMotor->cible = $saveCible;
    ?>
    <?php endwhile; ?>
    

    Mais je ne suis pas sûr d'avoir compris tout ton énoncé.

  • Bonsoir,

    idem, je ne suis pas sur de tout comprendre. De mon coté voici ce que je ferai rapport à ce que j'ai compris:

    <?php
    $catIds = $plxShow->artActiveCatIds();
        foreach ($catIds as $idx => $catId) {
            if (isset($plxShow->plxMotor->aCats[$catId])) { # La catégorie existe
            $catName = plxUtils::strCheck($plxShow->plxMotor->aCats[$catId]['name']);
                # on verifie que c'est une catégorie et qu'elle a une image
                if($catName != L_UNCLASSIFIED && $plxShow->plxMotor->aCats[$catId]['thumbnail'] !='' ) {
                #on affiche la balise image 
    echo '<img src="'. $plxShow->plxMotor->aCats[$catId]['thumbnail'] .'" alt="'.$catName.'">'; 
                    # on stoppe la boucle sitôt que l'on a une image
                    break;
                }                    
            }
        }
    ?>
    
    

    à insérer dans ton template home là ou tu veut afficher l'image.
    c'est plus verbeux que le code de @bazooka07 et en partant depuis la boucle dans le template

    Cdt


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Merci pour vos réponses, mais ce que je veux faire c'est dans la page categorie-full-width.php

    • catégorie A possède une image accroche A
    • catégorie B possède une image accroche B
    • catégorie C: pas d' image accroche

    lorsque je suis sur le site , j'affiche l'image de l'article avec <?php $plxShow->artThumbnail(); ?>, le titre etc...

    et si j'ai choisis la catégorie C ( articles de la catégorie A + catégorie B ) je veux afficher aussi l'image d'accroche de la catégorie A ou de la catégorie B

    j'ai essayé vos deux codes , mais ils ne marchent pas

  • février 2023 modifié

    Bonjour,

    Il est normal que ces codes ne fonctionnent pas dans une page statique, ils sont prévus pour être insérés dans un fichier template home bouclant sur les articles.

    Le plus simple est de partager ce que tu as dans ta page statique en indiquant l'endroit où tu veux afficher ce thumbnail.

    Pourquoi ne pas utilisé une page catégorie limitée à l'affichage d'un seul article ? Tout y est déjà quasiment. :)

    En fait, on a sûrement pas réussi à comprendre ce que tu souhaites faire.

    Cdt


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • @gcyrillus-nomade

    Pourquoi ne pas utilisé une page catégorie limitée à l'affichage d'un seul article ? Tout y est déjà quasiment

    c'est vrai que tout y déjà , ou presque !
    à partir de la page categorie-full-width.php , il me faut juste distinguer l'image d'accroche de la catégorie A ou B.

    merci beaucoup pour votre réactivité

  • Rebonjour,

    Il faut que tu donnes plus de détails car en mettant le code dans la boucle des articles de categorie-full-width.php


    <?php include __DIR__.'/header.php'; ?> <main class="main" role="main"> <div class="container"> <div class="grid"> <div class="content col sml-12"> <ul class="repertory menu breadcrumb"> <li><a href="<?php $plxShow->racine() ?>"><?php $plxShow->lang('HOME'); ?></a></li> <li><?php $plxShow->catName(); ?></li> </ul> <p><?php $plxShow->catDescription('#cat_description'); ?></p> <p><?php $plxShow->catThumbnail(); ?></p> <?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?> <article class="article" id="post-<?php echo $plxShow->artId(); ?>"> <header> <span class="art-date"> <time datetime="<?php $plxShow->artDate('#num_year(4)-#num_month-#num_day'); ?>"> <?php $plxShow->artDate('#num_day #month #num_year(4)'); ?> </time> </span> <h2> <?php $plxShow->artTitle('link'); ?> </h2> <div> <small> <span class="written-by"> <?php $plxShow->lang('WRITTEN_BY'); ?> <?php $plxShow->artAuthor() ?> </span> <span class="art-nb-com"> <?php $plxShow->artNbCom(); ?> </span> </small> </div> <div> <small> <span class="classified-in"> <?php $plxShow->lang('CLASSIFIED_IN') ?> : <?php $plxShow->artCat() ?> </span> <span class="tags"> <?php $plxShow->lang('TAGS') ?> : <?php $plxShow->artTags() ?> </span> </small> </div> </header> <?php $catIds = $plxShow->artActiveCatIds(); foreach ($catIds as $idx => $catId) { if (isset($plxShow->plxMotor->aCats[$catId])) { # La catégorie existe $catName = plxUtils::strCheck($plxShow->plxMotor->aCats[$catId]['name']); if($catName != L_UNCLASSIFIED && $plxShow->plxMotor->aCats[$catId]['thumbnail'] !='' ) {// on verifie que c'est une catégorie et qu'elle a une image echo '<img src="'. $plxShow->plxMotor->aCats[$catId]['thumbnail'] .'" alt="'.$catName.'">'; // ICI l'affichage d'une balise image break;// , la première trouvée une suffit , sinon rien } } } ?> <?php $plxShow->artThumbnail(); ?> <?php $plxShow->artChapo(); ?> </article> <?php endwhile; ?> <nav class="pagination text-center"> <?php $plxShow->pagination(); ?> </nav> <?php $plxShow->artFeed('rss',$plxShow->catId(), '<span><a href="#feedUrl" title="#feedTitle">#feedName</a></span>'); ?> </div> </div> </div> </main> <?php include __DIR__.'/footer.php'; ?>

    Pour moi cela fonctionne, Idem si tu met le code de @bazooka07 (à la place du mien) Cela affiche aussi quelque choses.


    <?php include __DIR__.'/header.php'; ?> <main class="main" role="main"> <div class="container"> <div class="grid"> <div class="content col sml-12"> <ul class="repertory menu breadcrumb"> <li><a href="<?php $plxShow->racine() ?>"><?php $plxShow->lang('HOME'); ?></a></li> <li><?php $plxShow->catName(); ?></li> </ul> <p><?php $plxShow->catDescription('#cat_description'); ?></p> <p><?php $plxShow->catThumbnail(); ?></p> <?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?> <article class="article" id="post-<?php echo $plxShow->artId(); ?>"> <header> <span class="art-date"> <time datetime="<?php $plxShow->artDate('#num_year(4)-#num_month-#num_day'); ?>"> <?php $plxShow->artDate('#num_day #month #num_year(4)'); ?> </time> </span> <h2> <?php $plxShow->artTitle('link'); ?> </h2> <div> <small> <span class="written-by"> <?php $plxShow->lang('WRITTEN_BY'); ?> <?php $plxShow->artAuthor() ?> </span> <span class="art-nb-com"> <?php $plxShow->artNbCom(); ?> </span> </small> </div> <div> <small> <span class="classified-in"> <?php $plxShow->lang('CLASSIFIED_IN') ?> : <?php $plxShow->artCat() ?> </span> <span class="tags"> <?php $plxShow->lang('TAGS') ?> : <?php $plxShow->artTags() ?> </span> </small> </div> </header> <?php $catList = explode(',', $plxShow->artCatIds() ); # Sauvegarde de la valeur cible $saveCible = $plxShow->plxMotor->cible; foreach($catList as $catId ) { $plxShow->plxMotor->cible ; $plxShow->catThumbnail() ; } # On restaure cible $plxShow->plxMotor->cible = $saveCible; ?> <?php $plxShow->artThumbnail(); ?> <?php $plxShow->artChapo(); ?> </article> <?php endwhile; ?> <nav class="pagination text-center"> <?php $plxShow->pagination(); ?> </nav> <?php $plxShow->artFeed('rss',$plxShow->catId(), '<span><a href="#feedUrl" title="#feedTitle">#feedName</a></span>'); ?> </div> </div> </div> </main> <?php include __DIR__.'/footer.php'; ?>


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • @gcyrillus-nomade
    @bazooka07

    Ce matin je n'avais pas du bien recopié le code gcyrillus. Cela fonctionne super bien. Un grand merci à vous deux.
    quand PluxMl sera côté en bourse, j'achèterai...

Connectez-vous ou Inscrivez-vous pour répondre.