Vademecum pour créer un thème pour Pluxml

04 mars 2017 - Aucun commentaire

A chaque nouvelle création de thème sous pluxml, je me pose les mêmes questions, et je repasse par les mêmes réponses glanées ça et là sur les forums. Alors, une bonne fois pour toute, je pose ce dont j'ai besoin ici.

Hooks et boucles

Lastartlist

Sur une page de template, comme home.php:


<?php $plxShow->lastArtList('

<li>

<a href="#art_url" title="#art_title">#art_title</a>

</li>

',5,1) ?>

5 étant le nombre d'aricles affichés, 1 la catégorie.

Les variables disponibles :

  • #art_id : affiche l'ID de l'article
  • #art_url : affiche l'URL de l'article
  • #art_status : affiche le status de l'article (active / noactive)
  • #art_author : affiche l'auteur de l'article
  • #art_title : affiche le titre de l'article
  • #art_chapo : affiche le chapô de l'article
  • #art_content : affiche un extrait du contenu de l'article
  • #art_content(num) : affiche un extrait du contenu de l'article en précisant le nom de caractère affichés
  • #art_date : affiche la date de publication de l'article au format court (jj/mm/aaaa)
  • #art_hour : affiche l'heure de publication de l'article au format court (hh:mm)
  • #cat_list : affiche les catégories auxquelles appartient l'article sous forme d'un lien
  • #art_nbcoms : affiche le nombre de commentaires pour chaque article

Et si malgré tout j'ai besoin de la documentation, je vais par là : http://devzone.pluxml.org/index.php?page=plxShow-lastArtList

Rogner les images avec cimage

Merci à Pierre pour cette trouvaille. Cimage c'est trop d'la balle.

Un exemple pour la vignette en  600x300de la boucle des articles :


<img src="<?php $plxShow->template(); ?>/img.php?

src=<?php $plxShow->artThumbnail('#img_url'); ?>

&w=600&h=300&crop-to-fit"

alt="<?php $plxShow->artThumbnail('#img_alt'); ?>"

title="<?php $plxShow->artThumbnail('#img_title'); ?>" />

Et un autre exemple pour la vignette d'un article en 150x150 dans la boucle lastartlist:


<img src="'.$plxMotor->urlRewrite($plxMotor->aConf['racine_themes']

.$plxMotor->style).'/img.php?

src=#img_url&w=150&h=150&crop-to-fit" alt="#img_alt" title=""

srcset="'.$plxMotor->urlRewrite($plxMotor->aConf['racine_themes']

.$plxMotor->style).'/img.php?src=#img_url&w=150&h=150&crop-to-fit">

 

Boucle des articles sur deux colonnes

Dans le css


 .artList:not(:nth-child(-n)){

    float: left;

    width: 47%;

    margin-right: 18px;

}

.artList:not(:nth-child(-n+10)){

    clear:both;

    width: 47%;

Et dans le fichier template, au tout début de la boucle, je déclare la classe :


<?php while($plxShow->plxMotor->plxRecord_arts->loop()):

# On boucle sur les articles ?>

<article class="artList" role="article"

id="post-<?php echo $plxShow->artId(); ?>">

Article à la une

Astuce de David Revoy : si on commence la boucle après avoir commencé à paginer un article, cet article pourra être présenté différement.


<div class="dernierpost">

<h2 class="title"><?php $plxShow->artTitle('link'); ?></h2>

<p class="post-info">Catégorie : <?php $plxShow->artCat(); ?>

| le <?php $plxShow->artDate(); ?></p>

<?php $plxShow->artChapo(); ?>

<p class="comment_nb"><?php $plxShow->artNbCom('link'); ?></p>

</div>





<?php while($plxShow->plxMotor->plxRecord_arts->loop()):

# On boucle sur les articles ?>

<div class="post">

<h2 class="title"><?php $plxShow->artTitle('link'); ?></h2>

<p class="post-info">Catégorie : <?php $plxShow->artCat(); ?>

| le <?php $plxShow->artDate(); ?></p>

<?php $plxShow->artChapo(); ?>

<p class="comment_nb"><?php $plxShow->artNbCom('link'); ?></p>

</div>

<?php endwhile; # Fin de la boucle sur les articles ?>

Et sinon, Ienissei propose de s'y prendre comme ça :


<?php while($plxShow->plxMotor->plxRecord_arts->loop()):

# On boucle sur les articles ?>

<?php if(($plxShow->plxMotor->page == 1)

 && ($plxShow->plxMotor->plxRecord_arts->i == 0)):

# S'il s'agit de l'article le plus récent

et de la première page ?>

<div>

[TU PRÉSENTES TON ARTICLE ICI COMME TU VEUX,

AVEC LES VARIABLES NORMALES D'AFFICHAGE ET LES CLASSES CSS]

</div>

<?php endif; # Fin de la condition ?>

<?php endwhile; # Fin de la boucle ?>

Sera le code de l'article en primeur.


<?php while($plxShow->plxMotor->plxRecord_arts->loop()):

# On boucle sur les articles ?>

<?php if(

(($plxShow->plxMotor->page == 1)

 && ($plxShow->plxMotor->plxRecord_arts->i != 0)) ||

($plxShow->plxMotor->page != 1)):

# Si l'article est en première page,

exclure le premier et sinon, l'inclure ?>

<div>

[TU PRÉSENTES TON ARTICLE ICI COMME TU VEUX,

AVEC LES VARIABLES NORMALES D'AFFICHAGE ET LES CLASSES CSS]

</div>

<?php endif; # Fin de la condition ?>

<?php endwhile; # Fin de la boucle ?>

Et ce code sera celui des autres articles.

Le sujet du forum qui en parle est ici : http://forum.pluxml.org/viewtopic.php?id=1184

Insérer un flux RSS


<ul>

	<?php 

		$rss = simplexml_load_file("ADDRESSE_DU_FLUX_RSS_PLUXML");

		// echo "<pre>";var_dump($rss); echo "</pre>";

		foreach ($rss->channel->item as $item):

	?>

		<li>

			<div id='announces'>

				<h1><?php echo $item->title; ?></h1>

				<div>

					<?php echo $item->description; ?>

					<a href="<?php echo $item->link; ?>">Lire la suite</a>

				</div>

			</div>

		</li>

	<?php endforeach; ?>

</ul>

 

Grâce à Aruhuno depuis http://forum.pluxml.org/viewtopic.php?id=5775

Références


Écrire un commentaire

Capcha
Entrez le code de l'image

Fil RSS des commentaires de cet article