Wiki Plume Community : LastresValue

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Page d'accueil: mettre en évidence la dernière ressource publiée


Voici une petite astuce de code qui va vous permettre de mettre en évidence votre dernière publication (article ou news) sur votre page d'accueil (boucle $last).
(cette astuce reprend celle évoquée par Buma ici ..)

Rappels sur l'initialisation des gabarits :

Chaque gabarit de mise en pages doit être initialisé (en tout début de code) par la fonction pxTemplateInit. Pour rappel, les gabarits se trouvent dans .../manager/templates/default/
Le gabarit de page d'accueil étant category_homepage.php. L'initialisation du gabarit permet d'agir sur la gestion des ressources à afficher: classement, nombre et langue.
Voici l'exemple du gabarit de page d'accueil du thème par défaut de Plume:


<?php
// cache the page
if ($cache->processCache()):
pxTemplateInit('remove_numbers');

//initialisation de la boucle $last
pxGetLastResources();
?>
....

Plusieurs paramètres sont possibles (documentation officielle de Plume):
Par défaut aucun paramètre n'est donné.
Plusieurs peuvent être transmis en même temps et constituer ainsi une longue chaîne . Ils devront alors être séparés distinctement par le caractère |. Par exemple si vous souhaitez utiliser deux paramètres simultanément, param1 et param2, alors vous devrez appeler la fonction ainsi:


pxTemplateInit('param1|param2')

L'ordre n'a pas d'importance.
Certains paramètres peuvent avoir une valeur. Par exemple pour définir le nombre de ressources affichées par page à 10, vous utiliserez le paramètre res_per_page:10

Paramètres simples:

Paramètres avec valeurs:

Note: Il est essentiel d'appeler cette fonction après chaque utilisation de la fonction process... .

Repérer la boucle $last:

Editer votre gabarit category_homepage.php est repérer la boucle php suivante. Cette boucle est utilisable dans tous les patrons (gabarit), vous devez juste l'initialiser auparavant avec la fonction pxGetLastResources : par exemple :


<?php pxGetLastResources(); ?>
<?php while (!$last->EOF() ): ?>
<p><a href="<?php pxLastResPath(); ?>"><?php pxLastResTitle(); ?></a></p>
<?php
$last->moveNext();
endwhile; ?>

Plusieurs paramètres sont possibles:


pxGetLastResources( $limit, $type, $category )

Cette fonction extrait la liste des dernières ressources et la place dans la variable $last pour une utilisation ultérieure par la boucle $last. Cette dernière ne peut donc être utilisée qu'après un appel à la fonction pxGetLastResources.

En général, l'appel de la fonction pxGetLastResources se fait en tout début de code avec l'initialisation du gabarit (cf plus haut).

Extraire et mettre en valeur la dernière ressource:

A l'intérieur de la boucle $last, l'utilisation de nombreuses fonctions est possible (titre de la dernière ressource, description, informations, dates, auteur ....), vous trouverez des explications complètes sur le site officiel de Plume. Observez bien celles qui sont déjà présentes dans votre gabarit de page d'accueil. Nous allons utiliser ici les fonctions présentes dans le gabarit category_homepage.php d'origine (première installation de Plume = thème par défaut / en anglais !).
Nous allons extraire les informations concernant la dernière ressource publiée, il suffit de ne pas les intégrer dans une boucle $last et de les placer dans un bloc différent (div par exemple).
Il sera facile de mettre en valeur ce bloc avec un peu de CSS ...;-):


<div id="lastresource">

<?php pxGetLastResources(); ?>
<h2><a href="<?php pxResPath(); ?>"><?php pxResTitle('%s'); ?></a></h2>
<p><a href="<?php pxResPath(); ?>">#</a> The <?php pxResDateModification('%Y-%m-%d at %H:%M'); ?>by <a href="<?php pxResAuthorEmail('mailto:%s'); ?>"><?php pxResAuthor(); ?></a>.<?php pxResCategories('<br />In %s'); ?>.</p>
<?php pxResDescription(); ?>

</div>

Afficher le reste des ressources (boucle $last, moins la dernière ressource):

Nous allons réinitialiser pxGetLastResouces et faire une simple boucle $last dans un autre bloc (par exemple). Grâce à la mise en place d'un compteur (merci Loïc !!), la boucle ne va pas prendre en compte votre dernière ressource : heureusement car on vient de la mettre en évidence dans un bloc "spécial pour elle"...
Voici donc le deuxième bloc :


<div id="content">

<?php pxGetLastResources(); ?>
<?php $i = 1; ?>
<?php while (!$last->EOF() ): ?>
<?php if ($i >= 2): ?>	        

<h2><a href="<?php pxResPath(); ?>"><?php pxResTitle('%s'); ?></a></h2>
<p><a href="<?php pxResPath(); ?>">#</a> The <?php pxResDateModification('%Y-%m-%d at %H:%M'); ?>by <a href="<?php pxResAuthorEmail('mailto:%s'); ?>"><?php pxResAuthor(); ?></a>.<?php pxResCategories('<br />In %s'); ?>.</p>
<?php pxResDescription(); ?>

<?php endif; $i  ; ?>
<?php $last->moveNext(); endwhile; ?>

</div>

Voici le principe de base, il est possible de faire plusieurs boucles en fonction de vos paramètres dans pxTemplateInit et pxGetLastResources. Mettre en évidence votre dernier article et/ou news sera du plus bel effet avec une css adéquate ....

Variante dans la boucle $last:

Si vous voulez que la boucle $last ne prenne pas en compte les N dernières ressources, il suffit de remplacer cette ligne (compteur php):


...
<?php if ($i >= 2): ?>
...

par celle-ci :


...
<?php if ($i >= M): ?>
...

M=N 1 (N étant le chiffre correspondant au nombre des "dernières ressources" que vous ne voulez pas prendre en compte!)
Par exemple, si vous ne voulez pas afficher les 4 dernières ressources, il faudra écrire:


...
<?php if ($i >= 5): ?>
...


Lisez l'article originale
Publié par robby (nekodesign) le 04.11.2005
Merci à titoo pour l'astuce php ;-))
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.1
Page was generated in 2.2495 seconds