Satisfecit avec quelques lignes de code

Une petite question posée ce matin sur le forum, quelques lignes de code plus tard et ensuite approuvées par le requérant, il n’en faut pas plus pour s’octroyer un petit satisfecit !


En détail, la question portait sur le besoin de limiter la recherche (disponible dans la plupart des blogs Dotclear, via le widget Recherche) aux seuls billets, en excluant donc les pages — alors que Dotclear cherche par défaut dans les billets et les pages.

Pour ça, il suffit de créer un fichier _public.php dans le thème utilisé, s’il ne l’est pas déjà et d’y ajouter les lignes suivantes[1] :

<?php
if (!defined('DC_RC_PATH')) { return; }

$core->addBehavior('coreBlogBeforeGetPosts',array('myBehaviors','coreBlogBeforeGetPosts'));
class myBehaviors
{
	public static function coreBlogBeforeGetPosts($params)
	{
		global $core;
		if ($core->url->type == 'search') {
			// Search in posts only (excluding pages)
			$params['post_type'] = array('post');
		}
	}
}

Vous êtes bien évidemment libres de modifier le nom de la classe utilisée, myBehaviors, voire même le nom de la fonction coreBlogBeforeGetPosts. Prenez soin de modifier également la ligne numéro 4 — en détail les deux éléments du paramètre array('myBehaviors','coreBlogBeforeGetPosts') — dans ce cas là.

Note

[1] Ne mettez pas les deux premières lignes si vous avez déjà un fichier _public.php pour votre thème.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/12698

Haut de page