Mots-clefs sous forme de Nuage

Proposez ici vos idées pour l'amélioration du script.

Mots-clefs sous forme de Nuage

Messagede HarmonieTerre » Ven 24 Avr 2009 07:10

En fait je trouve plus pratique de voir tous les mots clefs s'afficher (sous forme de liste, de tableau ou de nuage) plutôt qu'en rangement alphabétique.

Si je pense «Astuce» et qu je ne le voit pas, il faut que je pense aussi «Trucs» ou «Bon Plan». Ce n'est pas pratique de faire tout l'alphabet et tout le monde n'a pas de grande connaissance en vocabulaire.

Si on voit les mots déjà existant cel afait gagner un temps énorme....

Je ne sais pas si c'est compliqué à faire mais je suis sûr que beaucoup de webmasters arfoooesque apprécieront.
Annuaire Environnement des Entreprises écologiques, Services et Solutions durables
http://www.harmonieterre.net
HarmonieTerre
 
Messages: 162
Inscription: Mar 21 Avr 2009 00:08
Localisation: Canada/Québec


Re: Mots-clefs sous forme de Nuage

Messagede ben2paris » Ven 24 Avr 2009 08:25

J'ai fait un petit truc vite fait, regarde si ça te va

http://www.ton-annuaire.fr/allmots.html
ben2paris
 
Messages: 256
Inscription: Jeu 4 Sep 2008 19:18
Localisation: Yonne, Bourgogne, France

Re: Mots-clefs sous forme de Nuage

Messagede effi » Dim 26 Avr 2009 08:41

Bonjour,
cette présentation m'intéresse, où est il possible de se la procurer ?
merci
effi
 
Messages: 324
Inscription: Sam 25 Avr 2009 11:47
Localisation: Paris

Re: Mots-clefs sous forme de Nuage

Messagede ben2paris » Lun 27 Avr 2009 10:44

Alors, pour cette page (http://www.ton-annuaire.fr/allmots.html) voilà les modifs à apporter

Ouvrir le fichier /controllers/KeywordController.php et à la fin du fichier, chercher

Code: Tout sélectionner
}
?>


Avant, ajouter

Code: Tout sélectionner
    function allAction()
    {
        if(!Config::get('keywordsEnabled'))
            return $this->return404();
           
        $keywordGroups = array();

        //retrieve keywors which start with $letter
        $keywords = $this->keyword->getAllKeywords();
        $keywordIds = array();

        foreach($keywords as $keyword)
        {
            $keywordIds[] = $keyword['keywordId'];
        }
       
        //Count validated sites which contain keyword
        $c = new Criteria();
        $c->add("keywordId", $keywordIds, "IN");
        $c->addGroup("keywordId");
        $c->addInnerJoin("sites", "sites.siteId", "keywordsofsites.siteId");
        $c->add("status", "validated");
        $sitesCountsForKeyword = $this->keywordsOfSite->generateList($c, "count(*)", "keywordId");
       
        //foreach keyword on this page check have many sites include it and push it to prefix group
        foreach($keywords as $keyword)
        {
            //if some site have this keyword
            if(isset($sitesCountsForKeyword[$keyword['keywordId']]))
            {
                $keyword['count'] = $sitesCountsForKeyword[$keyword['keywordId']];
            }
            else
            {
                //if no set counter to default 0
                $keyword['count'] = 0;
            }
           
            //if group for this prefix doesn't exists so far
            if(!isset($keywordGroups[$keyword['prefix']]['keywords']))
            {
                //create group for this prefix
                $keywordGroups[$keyword['prefix']]['keywords'] = array();
            }
           
            //add keyword to prefix group
            $keywordGroups[$keyword['prefix']]['keywords'][] = $keyword;
        }

        $this->set("keywordGroups", $keywordGroups);
    }


Ouvrir le fichier /models/KeywordModel.php et trouver

Code: Tout sélectionner
    function getKeywordsWithPrefix($keywordPrefix)
    {
        $keywordPrefix = addslashes($keywordPrefix);
        $c = new Criteria();
        $c->add("LEFT(keyword, 1) = '$keywordPrefix'");
        $c->addOrder("keyword");
        return $this->findAll($c, "keywordId, keyword, SUBSTRING(keyword, 1, 2) as prefix");   
    }


Après, ajouter

Code: Tout sélectionner
    function getAllKeywords()
    {
        $c = new Criteria();
        $c->addOrder("keyword");
        return $this->findAll($c, "keywordId, keyword, SUBSTRING(keyword, 1, 1) as prefix");   
    }


Aller dans /templates/votre template/keyword

Créer un fichier all.tpl et y mettre le code

Code: Tout sélectionner
{include file="includes/header.tpl" title="Tous les mots clés" metaDescription="Tous les mots clés"}

<div class="show_arbo">
<a href="{$setting.siteRootUrl}" class="link_showarbo">{'Directory'|lang}</a>
&gt; <a href="." class="link_showarbo">Tous les mots cl&eacute;s</a>
</div>

{displayAd place="overSitesList"}

<div class="title_h_1">
<h1>Tous les mots cl&eacute;s</h1>
</div>
                   
<div id="menuin">
<ul>
{foreach from=$keywordGroups key=groupPrefix value=keywordGroup}
<li><a href="#{$groupPrefix}" title="{'Keywords, starting with'|lang} {$groupPrefix}">{$groupPrefix}</a></li>
{/foreach}
</ul>
</div>

{foreach from=$keywordGroups key=groupPrefix value=keywordGroup}
    <div class="title_h_2_out">
    <div class="title_h_2" id="{$groupPrefix}">
    <h2>{$groupPrefix}</h2>
    </div>
    </div>
                                 
    <div class="column_in">
    {for start=0 stop=2 step=1 value=columnNr}   
        <div class="menucategories"><ul>
        {for start=$columnNr stop=$keywordGroup.keywords|@count step=2 value=i}   
            {assign var=keyword value=$keywordGroup.keywords[$i] }
            <li><a href="{"/site/keyword/$keyword.keywordId/%s/1"|url:$keyword.keyword}" title="{$keyword.keyword}">{$keyword.keyword}</a>
                <span class="text_numbers">({$keyword.count})</span>
            </li>
        {/for}       
        </ul></div>
    {/for}           
    </div>
{/foreach}
             
{include file="includes/footer.tpl"}   


Ouvrir /config/rewrite.php et trouver

Code: Tout sélectionner
// KEYWORDS
'#^/mots-([A-Z0-9]).html$#' => '/keyword/show/\1',
'#^/mots-(.*)-m([0-9]+)-p([0-9]+).html$#' => '/site/keyword/\2/\1/\3',


Après, ajouter

Code: Tout sélectionner
'#^/allmots.html$#' => '/keyword/all/',


Trouver

Code: Tout sélectionner
  '#^/keyword/show/(.*)$#' => '/mots-\1.html',


Après, ajouter

Code: Tout sélectionner
  '#^/keyword/all$#' => '/allmots.html',


Voilà, je ne pense pas avoir oublié quoi que ce soit. Je n'ai pas utilisé le fichier de langue pour le titre, mais c'est aussi envisageable.
ben2paris
 
Messages: 256
Inscription: Jeu 4 Sep 2008 19:18
Localisation: Yonne, Bourgogne, France

Re: Mots-clefs sous forme de Nuage

Messagede Keroin » Jeu 30 Avr 2009 04:20

Merci Ben pour le tuto c'est très sympa ;)
Par contre j'ai un petit souci avec la liste des lettres/chiffres en haut. Là ça nous permet d'aller à la lettre sur cette page.
Je voulais rajouter (en plus) la liste vers les pages correspondants à chaque lettre, celles accessibles depuis la liste des lettres/chiffres originales (celle qui est sur le coté) mais j'ai systématiquement une erreur.

J'ai testé en ajoutant ceci au fichier all.tpl
Code: Tout sélectionner
<ul>
    {foreach from=$keywordPart value=keyword}
        <li><a href="{"/keyword/show/$keyword.letter"|url}" title="{$keyword.letter}">{$keyword.letter}</a><span class="text_numbers"> ({$keyword.counter})</span></li>
    {/foreach}
    </ul>

Mais rien à faire :| au mieux je n'ai aucun affichage...
Une idée ?
Les Pages du Keroinsite - Annuaire généraliste gratuit : http://pages.keroinsite.com
Keroin
 
Messages: 192
Inscription: Mar 15 Juil 2008 15:48

Re: Mots-clefs sous forme de Nuage

Messagede ben2paris » Jeu 30 Avr 2009 08:58

Ben là, j'ai essayé, mais je sèche...
ben2paris
 
Messages: 256
Inscription: Jeu 4 Sep 2008 19:18
Localisation: Yonne, Bourgogne, France

Re: Mots-clefs sous forme de Nuage

Messagede Keroin » Jeu 30 Avr 2009 09:06

A un moment je pensais que c'était parce qu'on ne pouvait pas appeler cette liste deux fois sur la même page (avec celle dans la colonne) mais apparemment non :?
Les Pages du Keroinsite - Annuaire généraliste gratuit : http://pages.keroinsite.com
Keroin
 
Messages: 192
Inscription: Mar 15 Juil 2008 15:48

Re: Mots-clefs sous forme de Nuage

Messagede ben2paris » Jeu 30 Avr 2009 09:19

C'est certainement parce que les variables ne sont pas passées depuis la requête mais malheureusement, je n'ai pas le temps de m'y plonger actuellement :(
ben2paris
 
Messages: 256
Inscription: Jeu 4 Sep 2008 19:18
Localisation: Yonne, Bourgogne, France

Re: Mots-clefs sous forme de Nuage

Messagede HarmonieTerre » Ven 1 Mai 2009 05:39

Bomjour et Bravo pour cette démonstration des tes talents Ben.

Si je peux me permettre, il faudrait pouvoir régler le nombre de mots clefs ou tags affichés.
D'autre part, la dimension me semble un peu petite pour un aficher une 20taine ou 30taine des principaux mots. Commen régler cela ?

En tout cas c'est plus dynamique et plus pratique que l'alphabet. De plus pas mal d'internautes connaissent le principe.

Merci.
Annuaire Environnement des Entreprises écologiques, Services et Solutions durables
http://www.harmonieterre.net
HarmonieTerre
 
Messages: 162
Inscription: Mar 21 Avr 2009 00:08
Localisation: Canada/Québec

Re: Mots-clefs sous forme de Nuage

Messagede ben2paris » Ven 1 Mai 2009 10:06

HarmonieTerre a écrit:Bomjour et Bravo pour cette démonstration des tes talents Ben.

Si je peux me permettre, il faudrait pouvoir régler le nombre de mots clefs ou tags affichés.
D'autre part, la dimension me semble un peu petite pour un aficher une 20taine ou 30taine des principaux mots. Commen régler cela ?

En tout cas c'est plus dynamique et plus pratique que l'alphabet. De plus pas mal d'internautes connaissent le principe.

Merci.


Salut,

De quoi parles-tu ? Tous les mots clé sont affichés dans la page et rassemblés par lettre...
ben2paris
 
Messages: 256
Inscription: Jeu 4 Sep 2008 19:18
Localisation: Yonne, Bourgogne, France

Suivante

Retourner vers Boîte à idées

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

 
Copyright © arfooo.com  2007 - 2011  -  Tous droits réservés  -  Partenaires de confiance
Sites du groupe: petites annonces gratuites   voyance en direct - tirage tarot   Consultant en référencement
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group | phpBB SEO Traduction par: phpBB-fr.com
cron