Static et articles en page d'accueil
Bonjour à vous,
je souhaite mettre en page d'accueil un texte d'intro (page static) éditable en back office puis la liste des derniers articles.
Un mélange de template static et home en quelque sorte, quelle approche avoir ?
- créer un template 'static-home' et y inclure la boucle lastArtList (mais limité car on ne peut obtenir toutes les infos des articles, ou le chapo se fait couper ... et inclure la boucle
while($plxShow->plxMotor->plxRecord_arts->loop())
fait tout planter ) - créer un template home.php et y inclure la page static définie comme page d'accueil mais quand on fait cela en indiquant qu'une page static est l'accueil ça utilise la template static
ps : j'ai trouvé ce sujet https://forum.pluxml.org/discussion/comment/62085 mais n'ai pas tout compris ...
Je suis un peu perdu et ça fait trèèèèèèèès longtemps que je n'ai pas mis les mains dans le code.
(oui, i'm back with pluxml pour quelques webprojet )
Merci, bien à vous
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Salut @danielsan,
le plus simple à mon avis sera de :
1. créer un template "static-home" (en dupliquant le template existant static.php) et y incorporer la boucle des articles avec les réglages qui te conviennent après la ligne 22 ( ou en ligne 24 en l’incluant dans une
<div></div>
pour ne pas toucher au code du contenu)2. créer une nouvelle page statique (que tu peux nommer "accueil" ou "home", ou autre...) à laquelle tu appliqueras le template "static-home" en laissant le contenu vide.
3. définir cette nouvelle page statique en tant que "page d'accueil" et enregistrer via le bouton "modifier la liste des pages statiques".
4. vérifier que tout fonctionne
5. éditer cette nouvelle page statique pour ajouter ton texte d'intro dans le champ "contenu".
Bonsoir,
@kowalsky,
Avec ta méthode, comment gères-tu la pagination quand les articles s'affichent sur plusieurs pages ?
@danielsan,
C'est rarement utilisé mais PluXml peut gérer plusieurs templates pour la page d'accueil. Seule contrainte : le nom de chaque template doit contenir "home" dans le thème ( voir tableau $aTemplates dans core/admin/parametres_affichage.php à partir dans de la ligne n°32 pour PluXml ).
Donc dans le thème, cloner le template home.php avec un nom contenant home et avant la boucle des articles utiliser la fonction $plxShow->staticInclude() dans un div :
STATIC_ID est le numéro ou le titre de la page statique. Elle doit être active. Eviter de l'afficher dans le menu.
Ensuite dans le back-office sélectionner le nouveau template de la page d'accueil dans "Options d'affichage"
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Salut,
Je ne sais pas si j'ai bien compris, mais ça à l'air d'un édito que tu veux en gros ?
Perso, il y a quelques temps, j'avais utilisé ce plugin .
Je ne sais pas si il fonctionne encore avec les dernières versions, mais tu peux tester !
@bazooka07
c'est une erreur de sémantique de ma part, danielsan a utilisé le terme "boucle des articles" pour nommer deux actions différentes dans sa demande. J'ai repris ce terme en retour mais dans ma proposition, il ne s'agit que d'insérer la fonction "lastArtList" après le contenu éditable du template pour afficher "la liste des derniers articles" (et non la vraie fonction boucle).
<?php $plxShow->lastArtList('<li><a href="#art_url" title="#art_title">#art_title</a></li>',10) ?>
Ce qui donnerait :
Dans ta proposition, c'est effectivement la vraie "boucle des articles" (au sens PluXml) qui est utilisée.
<?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
Bonjour et merci pour vos réponses.
@bazooka07 en effet c'est bien cette approche que je visais ... à cela prêt que cela vise un numéro de page static et non la page définie comme page d'accueil
(si un jour je souhaite changer de "block static", il faut que je garde la static 1 pour cela)
J'imagine qu'avant d'afficher la page, le moteur regarde d'abord quoi faire : y-a-t-il une page static définie comme page d'accueil ou non ... donc cibler la page d'accueil comme ID à inclure ne fonctionnera pas ...
Bon sinon j'ai collé simplement
<?php $plxShow->staticInclude(1); ?>
dans le template home.php et ça ne fonctionne pas
La page static 1 est bien active et masquée dans le menu
Je recreuse l'histoire après mon service ce soir
@danielsan ,
Il y a un bug dans plxShow::StaticInclude(). $plxGlob_stats doit être créé comme ceci :
On peut aussi corriger les expressions régulières qui ne sont pas correctes. Elles marchent par chance.
Voici tout le détail de plxShow::staticInclude() :
Dans PluXml, il y a 2 façons de choisir la page d'accueil :
Je vais envoyer un PR sur github pour corriger ce bug.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
j'ai fait la modif, ça fonctionne maintenant
merci !
j'ai bien fait de poser la question alors