Pluxopolis

Tout savoir pour devenir un pro de PluXml, mais pas seulement...

Mettre en place un édito

Rédigé par Stéphane 23 commentaires
Je vous propose mettre en place sur votre site un édito, c'est à dire un article qui va rester en haut de la page d'accueil jusqu'à la publication d'un nouvel édito (ou le temps que vous choisirez).

Pour ce tutorial je me base sur le thème par défaut de PluXml 5.1.7

Les deux points clés qui vont être utilisés sont :
  • Création d’une catégorie Edito qui sera réservée aux éditos.
  • Utilisation de la fonction lastArtList de la classe plxShow pour afficher le dernier édito publié sur le site.

Création et paramétrage de la catégorie Edito

Commençons par créer une nouvelle catégorie que nous appellerons Edito.

A partir de l’administration de votre PluXml, allez dans le menu Catégories et créez une nouvelle catégorie de manière à obtenir la ligne Edito.



Reportez bien dans les colonnes les valeurs :
  • Nb art/page : 1
  • Menu : Masquer
Relevez l’identifiant de la catégorie (colonne Identifiant): ici nous avons la valeur 002. Nous utiliserons cette valeur plus tard.

Cliquez sur le lien Options de la catégorie Edito.

Réglez le déroulant Afficher les articles de cette catégorie sur la page d'accueil sur la valeur Non et cliquez sur le bouton Mettre à jour cette catégorie pour enregistrer la modification.



Modification du thème pour afficher les éditos

Editez le fichier home.php stocké dans le dossier theme/defaut/

Au dessus de la ligne

<?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
Rajoutez le code suivant :

<article role="article" class="edito">
<?php $plxShow->lastArtList('<header><h1><a href="#art_url" title="#art_title">#art_title</a></h1><p>Par #art_author</p></header><section>#art_content(9999)</section>', 1, '002') ?>
</article>
Ici nous utilisons la fonction lastArtList de la classe plxShow car elle permet d’afficher les derniers articles publiés sur le site.

Les 3 premiers paramètres utilisés de lastArtList sont :

Paramètre 1 : contient le code html affiché où chaque variable suivante sera remplacée par la donnée correspondante de l’article
  • #art_url : url de l’article
  • #art_title : titre de l’article
  • #art_author : non du rédacteur de l’article
  • #art_content(nb caractères) : contenu de l’article
Ce code html peut bien sûr être adapté selon vos besoins. D’autres variables sont disponibles :
  • #art_id: identifiant de l’article
  • #art_chapo : chapo de l’article
  • #art_date : date de publication de l’article
  • #art_hour : heure de publication de l’article
  • #cat_list : nom de la catégorie
  • #art_nbcoms : nombre de commentaires
Paramètre 2 : nombre maximum d’articles affichés. Ici nous avons 1 car nous ne souhaitons afficher que le dernier article de la catégorie Edito.

Paramètre 3 : Reportez ici l’identifiant de votre catégorie Edito créée précédemment. Le numéro est affiché sur l’écran de gestion des catégories dans la colonne Identifiant.

Il ne reste plus qu’à mettre en forme l’affichage de l’édito avec un peu de code css que nous allons copier à la fin du fichier style.css du thème, stocké dans le dossier themes/defaut

.edito {
	background-color: #efefef;
	border: 1px solid #ccc;
	padding: 10px 15px 20px 15px;
	font-size: 0.9em;
	margin-bottom: 20px;
}
.edito header,
.edito section {
	background-color: #efefef;
}
.edito h1 {
	font-size: 1.5em;
	margin: 0;
	padding: 0;
	text-align: left;
}
.edito p {
	text-align: left;
}
.edito section {
	margin: 0;
	padding: 0;
}

La classe css utilisée est .edito
Elle permet de définir le comportement visuel de chaque élément html

Rédaction du premier édito

Il ne reste maintenant plus qu’à rédiger notre premier édito.

Créez un nouvel article et surtout publié le dans la catégorie Edito.
Avec le paramètrage que nous avons fait pour la catégorie Edito, l’article créé restera visible sur la page d’accueil tant qu’un nouvel article ne sera pas publié dans cette catégorie. Donc n’oubliez pas de cocher la catégorie Edito.

Afficher/Masquer l'article édito

(Mise à jour le 31/03/2014)

Comme demandé dans les commentaires, voici une modification qui permet de ne pas afficher la partie Edito si on le souhaite.

Tout d'abord, à la place du code proposé au début de l'article, au dessus de la ligne

<?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
Rajoutez le code suivant :

<?php 
$catEdito = '002';
if($plxShow->plxMotor->aCats[$catEdito]['active']) {
	$plxShow->lastArtList('<article role="article" class="edito"><header><h1><a href="http://pluxopolis.net/article6/mettre-en-place-un-edito#art_url" title="#art_title">#art_title</a></h1><p>Par #art_author</p></header><section>#art_content(9999)</section></article>', 1, $catEdito); 
}
?>

Remplacez la valeur 002 par l'identifiant de votre catégorie Edito au niveau de la ligne

$catEdito = '002';
Ce code a l'avantage de ne pas laisser de balises html <article></article> vide si aucun édito n'est rédigé.

Maintenant si un article est publié dans la catégorie Edito et que vous souhaitez ne plus l'afficher, il vous suffit de désactiver la catégorie en allant dans la gestion des catégories, de sélectionner la valeur Non dans la colonne Active et de sauvegarder la modification en cliquant sur le bouton Modifier la liste des catégories.



Edit: 07/03/2016: Afficher le chapo avec un lien "Lire la suite de l'édito"

Si votre édito est long, vous pouvez utiliser le chapo pour rédiger la partie qui sera visible sur la page d'accueil, et mettre le reste du texte dans la partie contenu de l'article. Dans ce cas au niveau du code à rajouter dans le fichier home.php du thème, utiliser le code suivant pour afficher le chapo avec en dessous un lien "Lire la suite de l'édito".


<article role="article" class="edito">
<?php $plxShow->lastArtList('<header><h1><a href="http://pluxopolis.net/article6/mettre-en-place-un-edito#art_url" title="#art_title">#art_title</a></h1><p>Par #art_author</p></header><section>#art_chapo</section><footer><a href="http://pluxopolis.net/article6/mettre-en-place-un-edito#art_url" title="#art_title">Lire la suite de #art_title</a></footer>', 1, '002') ?>
</article>

23 commentaires

#1  - fonds d'écran a dit :

super bonne idée !
super bon tuto !
tu continueras toujours de m'étonner par ta capacité de codage au service de l'imagination avec une efficacité redoutable ;)
merci Stéphane
bg

Répondre
#2  - Stéphane a dit :

@fonds d'écran :
Merci bg

Répondre
#3  - Flipflip a dit :

Parfait comme astuce, ça m'a permis de l'utiliser à volonter pour un projet de thème.

Merci.

Répondre
#4  - Kléber a dit :

C'est super mais je me demandais si on pouvait afficher directement le nombre de commentaires, ça j'y arrive avec #art_nbcoms mais je ne trouve pas comment afficher le lien vers les commentaires, et j'y connais pas grand chose en php donc ça aide pas.

Répondre
#5  - jerrywham a dit :

@Kléber : regarde comment est écrit le fichier home.php du thème par défaut et tu trouveras ce que tu cherches. Il faut parfois (toujours?) se sortir les doigts du nez et les mettre dans le cambouis...

@Stephane : Pour un texte d'accueil fixe on peut également utiliser l'astuce de la méthode staticInclude de plxShow.

Répondre
#6  - Stéphane a dit :

@jerrywham :
Oui c'est vrai, sauf qu'avec staticInclude, c'est à chaque fois de l'annule et remplace. Cette solution permet de garder un historique des éditos publiés

Répondre
#7  - JOEBART a dit :

Hello Stéphane, ça marche impec sauf que là, impossible de se servir du chapo.

Répondre
#8  - Frédéric a dit :

@JOEBART,

Limite le nombre de caractère dans l'appel #art_content(nb caractères), car si tu fait un affichage avec lastArtList, cela veut dire que tu peux publier dans une catégorie différente sans utiliser le chapô pour celle-ci.

Répondre
#9  - LolYangccool a dit :

Je viens de remettre en place cette astuce sur mon site, mais n'ayant pas encore d'édito pour le moment, je me demandais s'il était possible de n'afficher que l'emplacement pour l'édito quand il y a un article.

Autre chose, j'aimerai pouvoir par la suite afficher cet édito que lorsque j'en ai envie.

Merci. :)

Répondre
#10  - Stéphane a dit :

@LolYangccool :
Bonjour. Je viens de mettre à jour mon article en proposant une solution pour ta demande. Voir le nouveau paragraphe: "Afficher/Masquer l'article édito"

Répondre
#11  - LolYangccool a dit :

@Stéphane :
Un grand merci pour la réactivité et la solution qui me convient parfaitement !

Répondre
#12  - pascal a dit :

Bonjour, je suis nouveau sur pluxml, je suis en train de le tester pour vérifier qu'il convient aux besoins d'un client.

Pour la mise en page de la page d'accueil (une page statique) je souhaite utiliser une grille avec 3 colonnes (responsive) pour présenter 3 services proposés par le client (avec lien vers une page statique pour chacun)
Afin de faciliter la vie du client (c'est son principal besoin) je souhaite que chaque colonne de cette grille soit éditable séparément.

Il s'agit donc d'inclure un contenu dans le template utilisé pour cette page d'accueil tout en permettant au client d'éditer ce contenu simplement sans avoir à se soucier du HTML pour les colonnes (et éviter qu'il casse tout en mettant à jour le contenu ;) )

Sur cet article, pour les éditos, vous utilisez des articles pour réaliser ce type d'inclusion, cette inclusion ce faisant sur une page "blog" (categorie) cela me semble logique.
Le thème pixproject utilise la même solution mais pour un usage qui correspond à mon besoin (inclusion dans une page statique utilisée pour page d'accueil)

Dans l'article http://pluxopolis.net/article16/afficher-le-contenu-d-une-page-statique-dans-la-sidebar vous utilisez une page statique pour une inclusion (dans la sidebar...).
Du point de vu utilisateur, il me semble plus logique que la rédaction d'une partie de la page d'accueil se fasse dans les pages statiques plutôt que dans les articles...

Ma question (enfin) : y-a-t-il une raison particulière qui m'échappe de préférer les articles (comme dans le thème pixproject) à des pages statiques pour remplir ce rôle d'inclusions ?


Merci

Répondre
#13  - admin a dit :

@pascal :
Bonjour
Dans le cas d'un édito, la solution avec les articles est préférable car ils sont datés et on garde ainsi leur historique. On affiche toujours le dernier publié par rapport à la date du jour. Avec les pages statiques, on est obligé de réécraser à chaque fois le contenu affiché de la page utilisée. Avec l'édito on est bien dans une logique de contenu dynamique qui évolue (change) avec le temps, tandis qu'avec l'utilisation des pages statiques on perd cette notion.
Dans votre cas j'utiliserais plutôt 3 pages statiques pour chacun des blocs. Si le contenu doit évoluer, il sera plus facile pour votre client d'éditer le contenu d'une page pour changer les descriptifs de ses services proposés.

Répondre
#14  - pascal a dit :

Merci pour la réponse rapide : )

Répondre
#15  - franck a dit :

je suis dans le meme cas que kleber pour rendre clicable les commentaires avec la fonction:
#art_nbcoms
j'ai regarder dans le home: <?php $plxShow->artNbCom(); ?>
mais pour l'integrer dans le code , ca bug...
comment faire ? merci

Répondre
#16  - admin a dit :

@franck :
Bonjour
la fonction artNbCom() ne peut pas être utilisée dans ce cas avec la fonction lastArtList()
lastArtList() utilise une boucle de traitement dédié qui est indépendante de ce qui peut afficher artNbCom()
Avec cette solution on ne peut donc pas afficher le nombre de commentaires.

Répondre
#17  - cpalo a dit :

Bonjour,

L'édito est affiché en entier. Mais dans le cas d'un long article je voudrai limiter l'affichage (comme pour un chapo). Pour cela pas de problème en limitant le nombre de caractères.
Mais ensuite comment insérer un lien lire la suite...

Répondre
#18  - admin a dit :

@cpalo :
Bonjour. J'ai mis à jour l'article avec la solution à ta demande. Voir tout en bas de l'article.

Répondre
#19  - cpalo a dit :

Merci cela fonctionne presque "bien" .: le chapo s'affiche mais avec seulement la première ligne alors qu'il comporte trois paragraphes.
Mon code:
$catEdito = '001';
if($plxShow->plxMotor->aCats[$catEdito]['active']) {
$plxShow->lastArtList('<article role="article" class="edito">
<header>
<h1><a href="#art_url" title="#art_title">#art_title</a></h1>
<p>Publié le #art_date par #art_author</p>
</header>
<section>#art_chapo</section>
<footer><a href="#art_url" title="#art_title">Lire la suite de l&#130;édito &#133;</a></footer>
</article>', 1, $catEdito);
}

Répondre
#20  - cpalo a dit :

Bonjour,

Par contre si j'écris art_chapo(300) il m'affiche bien les 300 premiers caractères du chapo.
Ce que je souhaiterai c'est avoir le chapo en entier.
Merci

Répondre
#21  - admin a dit :

@cpalo :
Ce que tu peux faire alors c'est utiliser #art_chapo(9999). ça devrait te permettre d'avoir le chapo entier

Répondre
#22  - cpalo a dit :

Super.. Cela fonctionne .
Encore merci.
Cordialement

Répondre
#23  - nIQnutn a dit :

L'astuce est toujours d'actualité et marche très bien en attendant de l'intégrer à la prochaine version de PluXml.
Par contre, dans ton exemple tu ne mets que le contenu de l'article. Par habitude, j'utilise le chapo et je me suis retrouvé avec seulement le titre.
J'ai mis "art_chapo(9999) #art_content(9999)" comme ça plus de mauvaise surprise.

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est la troisième lettre du mot qxwkz ?
Top