Afficher les lien vers les mots clé d'un article

Ce forum vous servira à trouver de l'aide uniquement en ce qui concerne le développement d'un de vos MODs, ou l'adaptation d'un MOD phpBB2 pour phpBB3.

Modérateur: Equipe

Afficher les lien vers les mots clé d'un article

Messagepar El-annabi » 30 Mai 2009 à 01:35

Bonjour,

J'ai un site en spip avec un forum PHPBB3.
Chaque article dans spip a ces propres mots clés enregistrés dans la table spip_mots (jusqu'à la rien de difficile)

A partir du texte d'un message, je voudrais selectionner les mot clé se trouvant dans spip_mots, pour les afficher dans le topic en question avec un lien qui mène vers se mots clé.

Voila ce que j'ai pu faire jusqu'a présent pour le mettre dans viewtopic.php

Code: Tout sélectionner
//Création d'un tableau des mots
        $tabsite=array();
        $resultat= mysql_query "SELECT w.word_text
            FROM " . SEARCH_WORDMATCH_TABLE . " m, " . SEARCH_WORDLIST_TABLE . " w
            WHERE m.post_id = " . (int) $row['post_id'] . "
            AND w.word_id = m.word_id
            ORDER BY w.word_count DESC LIMIT 0 , 15 ";

        {       
            while($ligne= mysql_fetch_array ($resultat))
            array_push($tabsite,$ligne['w.word_text']);
 
        }
       
    foreach ($tabsite as $mots)
    {
        $resultat = mysql_query "SELECT titre, url_propre
        FROM spip_mots WHERE titre=$mots ORDER BY id_mot";
        $lignes = mysql_num_rows ($resultat);

        //echo "Nombre de lignes $lignes";
        if ($lignes==0)       
        {
          echo"Pas de proposition";
        }// fin de if ligne = 0

          else
         {
            while ($row = mysql_fetch_array  ($resultat))
            {
              // on encode le titre pour le placé dans une URL
              $titrespip = $row->titre;
              $titrespip = urlEncode ($titrespip);
              $motsURLspip = urlEncode ($row->url_propre);
              $motsURLspip .=".html";
              echo"<a href=\"http://www.abc-recette.fr/".$motsURLspip." title=".$titrespip.">".$titrespip."</a>, ";
            }
        }// fin de else ligne = 0
   }//fin de foreach ($tabsite as $site)


mais après je coince, car je ne sais pas comment récupéré le résultat pour le mettre dans viewtopic_body.html

Merci de votre aide.

PS : @Morgyanne, verrouillé un topic parce que j'ai fais un "up" au bout de 21h et non 24h est un peu abusé,j'aurais compris si c'était après 2 ou 3h.
tu ce que tu as réussi c'est de crée un doublon, dont l'un verrouillé, et cela pour 3 maudites heures
Dernière édition par El-annabi le 31 Mai 2009 à 14:07, édité 2 fois.
..::::: Mes sites -->Annaba :::: Rap Algérien :::: Maghreb Forum:::: Algérie:::: Cheb Hasni ::::..
Avatar de l’utilisateur
El-annabi
Posteur expérimenté
Posteur expérimenté
 
Messages: 336
Inscription: 27 Mar 2004 à 23:20
Localisation: l'Oise (60)

Re: Afficher les lien vers les mots clé d'un article

Messagepar Théonaute » 30 Mai 2009 à 02:36

Bonsoir,

El-annabi a écrit:PS : @Morgyanne, verrouillé un topic parce que j'ai fais un "up" au bout de 21h et non 24h est un peu abusé,j'aurais compris si c'était après 2 ou 3h.
tu ce que tu as réussi c'est de crée un doublon, dont l'un verrouillé, et cela pour 3 maudites heures


Complètement faux. Le règlement est là, et vous n'êtes pas au dessus. Pourquoi on ne vous pénaliserait pas alors qu'on le fait pour les autres ? Vous vous pensez au dessus des règles ?
Vous dîtes que Morgyanne a déclenché le fait que vous créez un second sujet, mais vous faîtes erreur. Ce n'est pas de sa faute, puisqu'elle a fait son boulot, mais bien de la votre qui ne respectez pas le règlement et obligez un modérateur à rétablir la situation.
D'autres parts, en continuant dans ce raisonnement, vous venez de faire perdre du temps à quelqu'un d'autre qui aurait pu vous aider : moi. En effet, au lieu de passer du temps à pouvoir vous donner une réponse, vous m'obligez à répondre à une stupidité dû au fait que vous ne supportez pas que l'on vous rappelle à l'ordre. Au final, vous êtes le gros perdant dans l'histoire. Et c'est marrant, mais comme je le dis souvent, je suis sûr que vous faites respecter le règlement à la lettre sur votre forum, et qu'il vous fait plaisir de remettre les membres dans le droit chemin, mais tout de suite, quand c'est vous qui vous faîtes rappeler à l'ordre, c'est beaucoup moins drôle, injuste, et c'est celui qui vous rappelle à l'ordre qui est un salop, n'est ce pas ?

Moralité, si vous aviez respecté le règlement tout de suite, vous ne vous seriez pas ridiculisé et on aurait pu prendre le temps que l'on a perdu avec vos absurdités pour vous aider.

Bien à vous,
Théonaute | Retraité de l'équipe des MODs
Citation :
<?php while(!($succeed = try())) ?>
Désolé, je ne fais plus de support pour phpBB et tous mes MODs ont été arrêtés.
Avatar de l’utilisateur
Théonaute
Dieu des floodeurs
Dieu des floodeurs
 
Messages: 5702
Inscription: 22 Jan 2006 à 15:45
Localisation: Montréal

Re: Afficher les lien vers les mots clé d'un article

Messagepar Morgyanne » 30 Mai 2009 à 07:41

Salut,

Pour répondre : j'aurai verrouillé même pour une minute.
C'est 24 heures minimum, le délai pour remonter un sujet, c'est dans les règles du forum que tu acceptes de suivre en t'inscrivant et surtout en postant sur le forum.
C'est aussi ainsi que la fonctionnalité est réglée sur phpbb-fr.com, je ne vois pas pourquoi, tu serais avantagé par le up manuel par rapport au up automatique.
Tu n'es pas content, je le comprends, mais je pense traiter tout le monde avec objectivité et équité, ma modération n'est pas une attaque personnelle et ne doit pas être considérée comme telle ;).

Je te signale aussi qu'un code posté dans un message c'est 20 lignes maximum, s'il est plus long, on doit fournir un lien vers le fichier ;).

@+
Morgyanne :)
Demande de support par MP = Poubelle
Avatar de l’utilisateur
Morgyanne
Administrateur
Administrateur
 
Messages: 31255
Inscription: 21 Mar 2005 à 12:28
Localisation: Juste derrière toi...

Re: Afficher les lien vers les mots clé d'un article

Messagepar El-annabi » 30 Mai 2009 à 08:41

@Théonaute
Tiens, je ne savais pas que tu t'appeler Morgyanne :shock: et ta réponse et un peu trop virulente pour une remarque qui te ne regarde pas. Ce n'est pas parce que nous venons chercher de l'aide qu'on doit être traiter de la sorte.
Donc avant de venir donner des leçons au autres, fais un effort sur toi même. en plus tu es HS.

@Morgyanne merci pour ta réponse (Courtoise) on sais tous que la règle des 24h est mise pour éviter les floods, moi je ne regarde pas l'heure à la quelle j'ai posté, je sais que je l'ai fais l'après-midi, donc je up l'après-midi. Mais de la à verrouillé un topic pour 2h ou 3h près, je pense que c'est un peu abusif (Je dis ce que je pense, nous somme dans un pays libre a ce que je sache, hein Mr Théonaute).
Je ne me vois pas attendre derrière mon écran fixant l'heure et attendre 24h et 1 minute pour pouvoir faire un UP.

Pour le code je peux le mettre en deux lignes ce n'est pas un problème, et je rentrerais ainsi dans les règles, mais ne faut-il pas être claire dans nos demandes?

En tous cas je vous remercie de vos réponse, vous pouvez vérouiller le sujet car sinon il HS continuera

Cordialement
..::::: Mes sites -->Annaba :::: Rap Algérien :::: Maghreb Forum:::: Algérie:::: Cheb Hasni ::::..
Avatar de l’utilisateur
El-annabi
Posteur expérimenté
Posteur expérimenté
 
Messages: 336
Inscription: 27 Mar 2004 à 23:20
Localisation: l'Oise (60)

Re: [A verrouillé SVP] Afficher les lien vers les...

Messagepar Morgyanne » 30 Mai 2009 à 09:07

Inutile de verrouiller (sauf si tu le désires toujours) cela t'obligerait à nouveau à recréer un sujet pour recevoir l'aide demandée, le mieux est de continuer ce qui est hors-sujet par MP...

Pour le code, oui, il faut être clair, c'est pour cela que tu vas à la ligne. Donc si cela dépasse les 20 lignes, on préfère le lien vers le fichier... Tu reste toujours aussi clair et tu ne dépasses plus les 20 lignes ;)

@+
Morgyanne :)
Demande de support par MP = Poubelle
Avatar de l’utilisateur
Morgyanne
Administrateur
Administrateur
 
Messages: 31255
Inscription: 21 Mar 2005 à 12:28
Localisation: Juste derrière toi...

Re: Afficher les lien vers les mots clé d'un article

Messagepar El-annabi » 31 Mai 2009 à 14:07

UP
..::::: Mes sites -->Annaba :::: Rap Algérien :::: Maghreb Forum:::: Algérie:::: Cheb Hasni ::::..
Avatar de l’utilisateur
El-annabi
Posteur expérimenté
Posteur expérimenté
 
Messages: 336
Inscription: 27 Mar 2004 à 23:20
Localisation: l'Oise (60)

Re: Afficher les lien vers les mots clé d'un article

Messagepar Dr DLP » 31 Mai 2009 à 16:05

Ton code fait beaucoup trop de requêtes SQL, il va être très lourd.

Voici comment je m'y prendrais:
1) Mettre tous les mots SPIP dans un tableau avec leur lien, de la forme
Code: Tout sélectionner
$tableau_mots = array("/".'MOT1'."/i" ,"/".'MOT2'."/i");

Et dans un tableau de même index le code de remplacement:
Code: Tout sélectionner
$tableau_liens = array('<a href="lien1">Mot1</a>','<a href="lien2">Mot2</a>';

2) Récupérer sous la forme d'une chaine la sortie de ton message, IE, juste avant qu'il ne soit affiché. Appelons cette chaine $message_forum.
3) Ensuite faire un preg_replace bien violent sur le tableau:
Code: Tout sélectionner
$message_forum = preg_replace($tableau_mots, $tableau_liens, $message_forum);


J'ai surement fait quelques fautes... Mais c'est l'idée :)
Note: il faut échapper les mots avec des caractères spéciaux du type apostrophe, guillemet, tiret, etc....
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: Afficher les lien vers les mots clé d'un article

Messagepar El-annabi » 31 Mai 2009 à 17:35

Salut Dr DLP, fidèle au post a ce que je vois. :mrgreen:
Ta solution semble etre très efficace, mais étant novice en php, je serais incapable de la mettre en oeuvre.s
Est-ce que tu peu m'éclairé un peu plus?

Merci entou s cas pour ta réponse
..::::: Mes sites -->Annaba :::: Rap Algérien :::: Maghreb Forum:::: Algérie:::: Cheb Hasni ::::..
Avatar de l’utilisateur
El-annabi
Posteur expérimenté
Posteur expérimenté
 
Messages: 336
Inscription: 27 Mar 2004 à 23:20
Localisation: l'Oise (60)

Re: Afficher les lien vers les mots clé d'un article

Messagepar Dr DLP » 01 Juin 2009 à 12:48

Pourrais tu me donner la structure de la table contenant les mots SPIP?
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: Afficher les lien vers les mots clé d'un article

Messagepar El-annabi » 01 Juin 2009 à 18:37

Salut Dr DLP

Voici la structure de la table spip_mots

Structure de la table `spip_mots`
--

Code: Tout sélectionner
CREATE TABLE `spip_mots` (
  `id_mot` bigint(21) NOT NULL auto_increment,
  `titre` text NOT NULL,
  `url_propre` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id_mot`),
  KEY `url_propre` (`url_propre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Dans ma reqsuette je cherche a récupéré le titre (qui est le mot en fait) et url_propre qui est URL rewrité de ce mot

Et voici la table de liaison mots et article.

Code: Tout sélectionner
CREATE TABLE `spip_mots_articles` (
  `id_mot` bigint(21) NOT NULL default '0',
  `id_article` bigint(21) NOT NULL default '0',
  PRIMARY KEY  (`id_article`,`id_mot`),
  KEY `id_mot` (`id_mot`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;



Merci pour ton aide
..::::: Mes sites -->Annaba :::: Rap Algérien :::: Maghreb Forum:::: Algérie:::: Cheb Hasni ::::..
Avatar de l’utilisateur
El-annabi
Posteur expérimenté
Posteur expérimenté
 
Messages: 336
Inscription: 27 Mar 2004 à 23:20
Localisation: l'Oise (60)

Re: Afficher les lien vers les mots clé d'un article

Messagepar Dr DLP » 01 Juin 2009 à 19:11

OK, ça c'est la requête pour sélectionner les articles associés aux mots:

Code: Tout sélectionner
$sql = "SELECT m.titre, a.id_article FROM spip_mots AS m
LEFT JOIN spip_mots_articles AS a ON m.id_mot = m.id_mot";


Tu génères ensuite ton tableau:
Code: Tout sélectionner
$resultat= mysql_query($sql);
$tableau_mots = array();
$tableau_liens = array();
while($ligne= mysql_fetch_array ($resultat))
{
$tableau_mots[] = '/' . $ligne['titre'] . '/i';
$tableau_liens[] = $ligne['id_titre'];
}


Bien sûr, à la place de $tableau_liens[] = $ligne['id_titre']; tu dois construire le lien vers ton article.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: Afficher les lien vers les mots clé d'un article

Messagepar El-annabi » 01 Juin 2009 à 20:49

je ne vois pas ou son les mots la table de phpbb pour selectionner les mots de la table spip :roll:
..::::: Mes sites -->Annaba :::: Rap Algérien :::: Maghreb Forum:::: Algérie:::: Cheb Hasni ::::..
Avatar de l’utilisateur
El-annabi
Posteur expérimenté
Posteur expérimenté
 
Messages: 336
Inscription: 27 Mar 2004 à 23:20
Localisation: l'Oise (60)

Re: Afficher les lien vers les mots clé d'un article

Messagepar Dr DLP » 01 Juin 2009 à 21:17

Dr DLP a écrit:2) Récupérer sous la forme d'une chaine la sortie de ton message, IE, juste avant qu'il ne soit affiché. Appelons cette chaine $message_forum.

A faire pour chaque post.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )


Retourner vers Aide au développement

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Partenaires : phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB3 Styles • phpBB podpora • phpBB Portugal    Liens : Net Avenir • PromoBenef • Ticket Gagnant