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

exclure les liens de l'article affiché


Rédigé par gccyrillus le Aucun commentairee

Lorsque vous consultez un article, si celui ci est l'un des derniers parus, vous retrouvez son lien dans la liste des "derniers articles". et éventuellement d'autres liens vers l'article dans "les derniers commentaires".

Pour éviter ce qui peut-être vu comme un défaut. Il est possible d'exclure les liens de l'article en cours ainsi que les liens vers ses commentaires.

Les données qui permettent d'extraire le lien vers un article sont stockées dans $plxShow->plxMotor->plxGlob_arts->aFiles et les commentaires sont stockés dans $plxShow->plxMotor->plxGlob_coms->aFiles sous forme de tableaux ( array() ). Il faut alors exclure les clés correspondantes de ces deux tableaux.

Cela peut-être fait à l'aide d'un petit script à inclure dans vos thèmes.

Exclure l'article du tableau.

Avant d'exclure cette article du tableau, il faut traiter son affichage :) , et exclure l'article juste après.

Dans le thème par défaut , il est possible d’insérer cette commande dans les fichier templates des articles (article.php et article-full-width.php ) juste avant l'inclusion de la sidebar <?php include __DIR__.'/sidebar.php'; ?> ou à la deuxieme ligne du fichier sidebar.php .

Le code à inserer pour retire la clé de l'article est

<?php unset($plxShow->plxMotor->plxGlob_arts->aFiles[str_pad($plxShow->artId(), 4, "0", STR_PAD_LEFT)]); ?>

Exclure les commentaires

Si vous avez des commentaires récents sur cet article, il seront affichés dans la sidebar avec un message d'erreur car l'article auquel ils sont rattachés n'existe plus.

Il faut aussi exclure tous ces commentaires reliés à cette article et compléter la ligne de code excluant l'article.

Il est possible de boucler sur tous les commentaires et de les retirer un a un

foreach ($plxShow->plxMotor->plxGlob_coms->aFiles as $key => $value) {
	if (substr($value, 0, 4) == str_pad($plxShow->artId(), 4, "0", STR_PAD_LEFT) )  {
		unset($plxShow->plxMotor->plxGlob_coms->aFiles[$key]);
	}
}

ou d'utiliser la fonction array_diff_key() pour les exclure.

$plxShow->plxMotor->plxGlob_coms->aFiles = array_diff_key($plxShow->plxMotor->plxGlob_coms->aFiles, array_filter($plxShow->plxMotor->plxGlob_coms->aFiles, function ($value, $key) use ($plxShow) {
	return substr($value, 0, 4) === str_pad($plxShow->artId(), 4, "0", STR_PAD_LEFT);
}, ARRAY_FILTER_USE_BOTH))

Finaliser l'exclusion des liens de l'article affiché

Si vous décidez de modifier les fichier template article de votre thème, l'insertion du script suivant, avant l'inclusion de sidebar.php, suffit.

unset($plxShow->plxMotor->plxGlob_arts->aFiles[str_pad($plxShow->artId(), 4, "0", STR_PAD_LEFT)]); 
$plxShow->plxMotor->plxGlob_coms->aFiles = array_diff_key($plxShow->plxMotor->plxGlob_coms->aFiles, array_filter($plxShow->plxMotor->plxGlob_coms->aFiles, function ($value, $key) use ($plxShow) {
	return substr($value, 0, 4) === str_pad($plxShow->artId(), 4, "0", STR_PAD_LEFT);
}, ARRAY_FILTER_USE_BOTH));

Si pour ne modifier qu'un fichier vous optez pour inclure ce script dans sidebar.php, il faudra tester le mode d'affichage de PluXml pour pour n'exclure l'article et ses commentaire uniquement lorsque vous êtes sur la page de cet article.

pour le test du mode d'affichage , voir :Connaître le mode d'affichage de PluXml

testons donc si $plxShow->mode() =='article'

Le script à inserer à la deuxieme ligne de sidebar.php est :

if($plxShow->mode() =='article') {
	unset($plxShow->plxMotor->plxGlob_arts->aFiles[str_pad($plxShow->artId(), 4, "0", STR_PAD_LEFT)]); 
	$plxShow->plxMotor->plxGlob_coms->aFiles = array_diff_key($plxShow->plxMotor->plxGlob_coms->aFiles, array_filter($plxShow->plxMotor->plxGlob_coms->aFiles, function ($value, $key) use ($plxShow) {
		return substr($value, 0, 4) === str_pad($plxShow->artId(), 4, "0", STR_PAD_LEFT);
	}, ARRAY_FILTER_USE_BOTH));
}

C'est ce dernier script qui est utilisé dans les fichiers du thème du site.

DClassé dans : Bout de code ,Mots clés : Article, Commentaires, PHP, Scripts, Templates

A propos de l'auteur, gccyrillus:

Gccyrillus : Amoureux de PluXml et codeur bricoleur à mes heures perdues.

Les commentaires sont fermés.

Top