Dotclear

Vous n'êtes pas identifié(e).

Annonce

#26 2010-09-08 18:11:18

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Recherche plugin DC2 Billets similaires

@ BG : il m'avait échappé, bien vu ;-)

@ amalgame : si seulement on pouvait arrêter de donner un nom français et un nom anglais pour le même plugin. C'est beaucoup plus perturbant ;-)

@ annso : il y a des projets comme We Love Dotclear qui ne pourrait s'en servir. C'est pourquoi ce que j'évoquai dans mon message d'origine (#1) me semble moins casse-tête en choissisant soi-même les billets similaires (en y accédant comme pour faire un "lien interne").

Une des solutions en "manuel" est d'utiliser le plugin postWidgetText mais bon...

Hors ligne

#27 2010-09-08 18:49:31

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche plugin DC2 Billets similaires

Jean-Michel a écrit :

@ amalgame : si seulement on pouvait arrêter de donner un nom français et un nom anglais pour le même plugin. C'est beaucoup plus perturbant ;-)

Gné ? Billets connexes 2 est français, non ?

Hors ligne

#28 2010-09-08 18:53:07

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : Recherche plugin DC2 Billets similaires

ou Billets Connexes The Revenge of AnnSo
ou Billets Connexes Reloaded
ou Billets Connexes Alternate
ou …


Dotclear addicted since 2004

Hors ligne

#29 2010-09-08 19:01:58

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Recherche plugin DC2 Billets similaires

amalgame a écrit :

Gné ? Billets connexes 2 est français, non ?

Le premier du nom en tout cas, son nom original est "Related Posts". Il est trouvable sous son nom français et anglais.

Hors ligne

#30 2010-09-08 19:05:03

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Recherche plugin DC2 Billets similaires

Wé, remarque c'est vrai qu'on a un problème général avec les noms de plugins en anglais et en français qui se mélangent joyeusement... mais ce n'est pas ici le sujet.

Donc Related Posts Reloaded, pour reprendre la suggestion de Franck :p

Hors ligne

#31 2010-09-09 11:11:57

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Recherche plugin DC2 Billets similaires

Hum, en fait, ce que j'ai fait ne me plait pas : en utilisant les behaviors, j'arrive directement après l'article, or je voudrais plutôt créer une nouvelle section avec un h3 et co (en fait, être au niveau hiérarchique des commentaires et du formulaire).

Donc retour au plugin déjà existant sauf que je n'aime pas trop son mode de fonctionnement. Les balises ont été redéfinies :

<h3>{{tpl:TagPostsTitle}}</h3>
<ul>
	<tpl:TagPostsList>
		<li><a class="tip" href="{{tpl:TagPostsEntryUrl}}" title="{{tpl:TagPostsEntryAbstract}}">{{tpl:TagPostsEntryTitle}}</a></li>
	</tpl:TagPostsList>
</ul>

et surtout la balise {{tpl:TagPostsEntryFirstImage width="80" height="80"}} qui renvoie un code du genre <img src="theme/montheme/thumb.php?http://www.monblog/public/premiereimagedelarticle.jpg" /> où thumb.php doit être copié dans le thème et génère une miniature. Ça marche, mais c'est dégueulasse (si je peux me permettre).


J'aimerais pouvoir réutiliser les balises déjà existantes :

<h3>Vous aimerez aussi </h3>
<ul>
	<tpl:SimilarEntries>
		<li><h2 class="post-title"><a href="{{tpl:EntryURL}}">{{tpl:EntryTitle encode_html="1"}}</a></h2><div class="picture">{{tpl:EntryFirstImage}}</div></li>
	</tpl:SimilarEntries>
</ul>

Mais je n'ai aucune idée de la "réalisibilité" de la chose : existe-t-il un plugin qui définit une nouvelle boucle et qui permet ensuite d'utiliser les balises déjà existantes - dont je pourrais m'inspirer ? Ou bien créer une nouvelle boucle implique de créer de nouveaux marqueurs pour aller dedans ?

Hors ligne

#32 2010-09-09 11:24:07

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Recherche plugin DC2 Billets similaires

J'ai peut être trouvé une réponse d'adjaya qui me permettrait d'écrire :

<div id="relatedPosts">
	{{tpl:RelatedPosts}}
	<h3>Vous aimerez aussi</h3>
	<tpl:Entries lastn="3">
		<div class="picture"><a href="{{tpl:EntryURL}}">{{tpl:EntryFirstImage}}</a></div>
	</tpl:Entries>
</div>

Ça n'est pas encore exactement ce que je voudrais mais ça y ressemble pas mal, je vais essayer !

Hors ligne

#33 2010-09-15 22:51:39

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14
Site Web

Re : Recherche plugin DC2 Billets similaires

Bonjour annso,

Est-ce que je peux me permettre de te demander où tu en es du plugin billets similaires #2 ?

Il m'intéresse beaucoup ;-)


Merci.

Hors ligne

#34 2010-09-16 16:32:13

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Recherche plugin DC2 Billets similaires

Hello,

J'ai réussi à répondre à mes besoins, mais cela ne mérite pas un plugin. Je n'ai pas réussi à obtenir des billets possédant les mêmes tags, mais je me suis rendue compte qu'il me fallait en fait plutôt les billets de la même catégorie, et pour ça je n'ai pas eu de problème.
En revanche, du fait de l'utilisation d'une boucle Entries native, on ne peut pas avoir des billets aléatoires (il manque un sortby="random").

Si malgré tout ça t'intéresse, c'est assez simple à mettre en œuvre : il faut mettre une balise avant une boucle Entries. Dans mon _post.html, j'ai donc :

<div id="relatedPosts">
					<h3>Vous aimerez aussi</h3>
					{{tpl:MyRelatedPosts}}
					<tpl:Entries lastn="8">
						<div class="picture"><a href="{{tpl:EntryURL}}">{{tpl:EntryFirstImage size="t"}}</a></div>
					</tpl:Entries>
				</div>

et dans le _public.php du thème :

<?php
$core->tpl->addValue('MyRelatedPosts',array('tplMyRelatedPosts','myRelatedPosts'));

class tplMyRelatedPosts
{
	
	public static function myRelatedPosts($attr)
	{
		global $core, $_ctx;

		$sql = ' AND post_id != '.$_ctx->posts->post_id;
		if ($_ctx->posts->cat_id != null) $sql .= ' AND P.cat_id = '.$_ctx->posts->cat_id.' ';

		$res  = "<?php\n";
		$res .= "\$params['post_type'] = 'post';\n";
		$res .= "\$params['blog_id'] = \$core->blog->id;\n";
		$res .= "\$params['post_statut'] = 1;\n";
		$res .= "\$params['sql'] = '". $sql ."'; \n";
		$res .= "?>\n";

		return $res;

	}
}

?>

Hors ligne

#35 2010-09-16 17:27:22

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14
Site Web

Re : Recherche plugin DC2 Billets similaires

Merci, je vais essayer ça lorsque je serais plus avancé dans le projet que je développe en ce moment.

Que pense-tu de la pertinence des résultats proposés avec ce code ? Je ne suis pas sûr d'avoir compris, mais le code reprend les 8 derniers billets de la même catégorie ? Ou alors la recherche de billets similaires s'appuie sur d'autres paramètres ?


Merci ;-)

Hors ligne

#36 2010-09-16 19:02:49

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Recherche plugin DC2 Billets similaires

En fait, le code ne fait que rajouter des paramètres à la requête de la boucle Entries : je veux tous les billets de la même catégorie que le post courant qui ne sont pas ce post courant.

Ensuite, tu peux affiner la sélection en ajoutant des paramètres à la boucle Entries (voir la doc).

(j'espère que je suis plus claire !)

Hors ligne

#37 2010-09-16 19:27:13

pierrevg
Membre
Inscription : 2005-04-13
Site Web

Re : Recherche plugin DC2 Billets similaires

On doit pouvoir faire la même chose avec les tpl existants :

<tpl:Entries category="#self" no_context="1" lastn="8" exclude_current="1">
      <tpl:EntriesHeader>
      <div id="related-posts">
        <h2>{{tpl:lang In the same category}} : <a href="{{tpl:EntryCategoryURL}}">{{tpl:EntryCategory encode_html="1"}}</a></h2>
          <ul>
      </tpl:EntriesHeader>
            <li><a href="{{tpl:EntryURL}}" title="{{tpl:EntryTitle encode_html="1"}}">
                 {{tpl:EntryTitle encode_html="1"}}</a>
            </li>
      <tpl:EntriesFooter>
         </ul>
      </div>
      </tpl:EntriesFooter>
    </tpl:Entries>

Nan ?

Hors ligne

#38 2010-09-16 19:39:51

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Recherche plugin DC2 Billets similaires

Je ne connaissais pas le paramètre exclude_current, mais du coup oui, ça a l'air de faire la même chose. Comme quoi, mon bout de code n'est vraiment pas utile !

Hors ligne

#39 2010-09-16 19:46:19

Mathieu M.
Membre
Lieu : Rhône-Alpes
Inscription : 2009-09-14
Site Web

Re : Recherche plugin DC2 Billets similaires

Mais dites moi, ce code affiche "que" les 8 derniers billets de la catégorie en cours, ou alors il y a un autre filtrage (pertinence des tags ? occurrence de mots ?) ?


Merci ;-)

Hors ligne

#40 2010-09-16 19:52:47

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Recherche plugin DC2 Billets similaires

Aucun autre filtrage.

Hors ligne

#41 2010-09-16 21:11:25

pierrevg
Membre
Inscription : 2005-04-13
Site Web

Re : Recherche plugin DC2 Billets similaires

annso a écrit :

Je ne connaissais pas le paramètre exclude_current, mais du coup oui, ça a l'air de faire la même chose. Comme quoi, mon bout de code n'est vraiment pas utile !

Le exclude_current passe par ce bout de code dans le _public.php :

$core->addBehavior('templateBeforeBlock',array('behaviorsExcludeCurrentPost','templateBeforeBlock'));

class behaviorsExcludeCurrentPost
{
	public static function templateBeforeBlock($core,$b,$attr)
	{
	       if ($b == 'Entries' && isset($attr['exclude_current']) && $attr['exclude_current'] == 1)
	       {
		       return
		       "<?php\n".
		       '$params["sql"] .= "AND P.post_url != \'".$_ctx->posts->post_url."\' ";'."\n".
		       "?>\n";
	       }
	}
}

Aucune idée de ce qui est le plus approprié ;-)

Hors ligne

#42 2010-09-16 21:13:06

pierrevg
Membre
Inscription : 2005-04-13
Site Web

Re : Recherche plugin DC2 Billets similaires

Et je précise n'avoir rien inventé (qu'on n'aille pas s'imaginer que je sais coder quoi que ce soit), c'est un bout de code du thème Hybrid d'Azork.

Hors ligne

#43 2010-09-16 21:24:39

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Recherche plugin DC2 Billets similaires

Ta solution est plus propre :)
Et moi, j'ai réinventé la roue, mais bon, c'est pas bien grave, ça m'a fait chercher un peu et comprendre certains comportements de dotclear.

Hors ligne

#44 2011-06-16 21:30:20

Kysban
Membre
Lieu : Paris
Inscription : 2006-04-11

Re : Recherche plugin DC2 Billets similaires

Comme le plugin billets connexes ne semble plus exister dans une version à jour, j'utilise le code suivant suggéré dans les précédents posts :

<tpl:Entries category="#self" no_context="1" lastn="5" exclude_current="1">

<tpl:EntriesHeader><ul></tpl:EntriesHeader>
<li><a href="{{tpl:EntryURL}}" title="{{tpl:EntryTitle encode_html="1"}}">{{tpl:EntryFirstImage}}</a></li>
<tpl:EntriesFooter></ul></tpl:EntriesFooter>

</tpl:Entries>

Pour autant, j'aurais deux questions :
- comment obtenir un résultat comparable mais reposant non plus sur la catégorie mais sur les tags ?
- pour faire fonctionner "exclude_current" doit-on obligatoirement passé par le code du post #41 ?

Hors ligne

#45 2011-06-16 22:13:48

Kysban
Membre
Lieu : Paris
Inscription : 2006-04-11

Re : Recherche plugin DC2 Billets similaires

D'ailleurs, au passage, j'ai testé le bout de code proposé dans le post #41, et malheureusement ça ne marche pas...

Hors ligne

#46 2011-06-17 09:10:59

pierrevg
Membre
Inscription : 2005-04-13
Site Web

Re : Recherche plugin DC2 Billets similaires

C'est pourtant ce que j'utilise sur un de mes blogs de dev (lab.brol.info) et je n'ai aucun soucis...

Hors ligne

#47 2011-06-17 09:16:26

annso
Responsable de la machine à Twix
Lieu : Lyon
Inscription : 2006-03-05
Site Web

Re : Recherche plugin DC2 Billets similaires

Kysban a écrit :

- comment obtenir un résultat comparable mais reposant non plus sur la catégorie mais sur les tags ?

Autant pour les catégories, la modification de la requête est facile (catégorie = categorie_courante), autant pour les tags, c'est plus compliqué. On veut au moins 1 tag en commun ? Tous ? Un nombre arbitraire comme 3 ?

Hors ligne

#48 2011-07-21 19:45:16

goudie
Membre
Lieu : Montréal, QC
Inscription : 2006-02-19
Site Web

Re : Recherche plugin DC2 Billets similaires

Il me semble que le plugin Billets connexes va chercher les articles utilisant le maximum de tags similaires pour les afficher en premier.

Hors ligne

#49 2012-07-06 16:47:16

Kysban
Membre
Lieu : Paris
Inscription : 2006-04-11

Re : Recherche plugin DC2 Billets similaires

annso a écrit :

Autant pour les catégories, la modification de la requête est facile (catégorie = categorie_courante), autant pour les tags, c'est plus compliqué. On veut au moins 1 tag en commun ? Tous ? Un nombre arbitraire comme 3 ?

Tiens, je me permets de faire remonter le fil de cette discussion pour faire une remarque et reposer une question.

En parcourant cette page, je pensais avoir trouvé tout ce dont j'ai besoin :
http://fr.dotclear.org/documentation/2. … gs/entries

Puis je me suis rendu compte que <tpl:Entries tag="faune et flore"> ne fonctionnait pas si on y incluait un "?not" pour exclure les articles d'un tag spécifique.

Est-ce un oubli ou une volonté ? Ça peut se révéler bien pratique dans certains cas. ^^

Et donc sinon, je reviens à la charge : j'aimerais réaliser une sélection de billets en fonction des tags, et plus précisément, en décidant par exemple "au moins 2 tags en commun".
J'ai essayé pas mal de choses mais rien ne fonctionne.

Pourriez-vous me mettre sur la piste de la procédure à suivre pour réaliser cela ? :-)

Merci !

Hors ligne

#50 2012-07-06 18:55:51

Jean-Michel
Modérateur à ailes d'ange
Lieu : Paris
Inscription : 2006-08-22
Site Web

Re : Recherche plugin DC2 Billets similaires

Si je devais me répondre à ma problématique, je me tournerai vers le plugin Series de Franck Paul.

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map