Afficher le dernier article dans la sidebar sur des pages statiques

Bonjour,

J'ai hésité à relancer cette discussion tant elle se rapproche de mon souci.

Pour ma première utilisation de PluXml (v5.0.2), j'ai fait un site de type "vitrine", constitué de 5 ou 6 pages statiques, pour une personne peu versé dans ce type d'outil. J'ai adapté un thème (theme-piano-black-2), le site est presque prêt (menu, pages, etc.), reste un dernier problème.

A priori, dans mon cas, le moteur de type blog (articles, catégorie, historique, commentaires) n'aurait pas d'usage.
Sauf que, je souhaite afficher le dernier article (seulement lui) dans la sidebar. pour que cette personne puisse mettre à jour ce texte simplement, avec l'interface d'administration (il s'agit juste de quelques mots du genre : "La promotion de la semaine" à changer régulièrement).

Dans le fichier sidebar.php de mon thème, bien dégraissé, j'ai ajouté le bloc suivant :
<div class="information-contents">
       <?php $plxShow->artContent(); ?>
     </div>
Ça fonctionne uniquement quand j'affiche des pages de type "article" (ce qui n'arrivera jamais, j'ai laissé ce type d'affichage pour tester), par exemple, avec des URL du type :
- http://127.0.0.1/blog.php
- http://127.0.0.1/index.php?article1/premier-article
- http://127.0.0.1/index.php?categorie1/rubrique-1

Ça ne marche pas si je reviens à l'accueil (configuré pour afficher une page statique) ou que j'affiche une page statique via le menu, soit avec des URL du type :
- http://127.0.0.1/
- http://127.0.0.1/index.php?static3/pagesite1

Pire, le source de la page renvoyée dans ce cas se termine brutalement après <div class="information-contents">.
Je suppose donc que l'appel à $plxShow->artContent(); ne se fait pas, dans ce cas, dans un contexte correct; et je me pose des questions à propos de ceci, lu dans la documentation :
Classe plxShow - Fonction artContent
Portée de la fonction : home,categorie,article
Comment augmenter sa portée pour qu'elle fonctionne aussi dans le cas des pages statiques ?

La solution passe surement par un usage correct du moteur comme indiqué dans cette page, mais un peu d'aide serait bienvenue.

Merci d'avance

Réponses

  • FrédéricFrédéric Member
    décembre 2010 modifié
    Bonjour,

    Si je comprends bien tu souhaites afficher des textes type "news" en sidebar sans utiliser la partie blog ?

    J'avais donné une astuce dans le Blog qui permet d'afficher des commentaires dans une page statique.

    Tu peux très bien t'en inspirer en enlevant le nom de l'auteur dans l'appel des derniers commentaires pour une page statique.Les commentaires seront ainsi tes "news" que tu pourras mettre a jour juste en envoyant un autre commentaire, Tu bloque le nombre de commentaires et ca roule...
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour C.Catarina

    Je vais court-circuiter la réponse de Frédéric pour te donner ma solution

    Dans la sidebar ajoute le code suivant:
    $plxShow->lastArtList('#art_content',1);
    
    ça t'affichera le contenu du dernier article: tout simplement

    tu peux mettre aussi des choses dans ce genre:
    $plxShow->lastArtList('<a href="#art_url" title="#art_title">#art_title</a>',1);
    
    En fait tu disposes de plusieurs variables pour formater l'affichage:

    #art_id : id de l'article
    #art_url : url de l'article
    #art_author : nom de l'auteur de l'article
    #art_title : titre de l'article
    #art_content : contenu de l'article
    #art_content(num) : contenu de l'article restreint à n caractères (remplacer num par un chiffre)
    #art_date : la date de publication de l'article
    #art_hour : l'heure de publication de l'article
    #cat_list : la(les) catégorie(s) de l'article

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • C.CatarinaC.Catarina Member
    décembre 2010 modifié
    Un grand merci à vous deux, plus particulièrement Stéphane, dont la solution à la fois simple et élégante répond parfaitement à mon besoin.

    Ce petit bout de code suffit à produire le résultat (presque) attendu :
    <div class="information-contents">
         <p>
           <?php $plxShow->lastArtList('#art_title',1); ?>
         </p>
         <p>
           <?php $plxShow->lastArtList('#art_content',1); ?>
         </p>
         </div>
    
    Je dis "presque" car un détail me chagrine encore; la mise en forme (<strong>, <center>) stockée dans le texte de l'article, et visible si l'article est affiché normalement (ou par le $plxShow->artContent(); que j'avais tenté), est perdue avec cet affichage.

    Et cela ne m'explique pas pourquoi cette fonction lastArtList fonctionne, alors que artContent ne fonctionne pas ...

    Mais en creusant le tuto de Frédéric (et la doc), j'ai trouvé une autre solution qui, elle, permet de prendre en compte le formatage défini à l'édition.
    <div class="information-contents">
    
           <?php $plxShow->staticInclude(7); ?>
    
         </div>
    
    Le seul défaut de cette approche est qu'elle m'impose de définir le numéro de la page statique "en dur" dans le fichier sidebar.php.

    Serait-il possible d'y faire référence par son titre ou son URL ?
Connectez-vous ou Inscrivez-vous pour répondre.