begin process at 2010 03 21 02:13:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > NUAGE DE MOTS OU TAG CLOUD-FLOPTWO

NUAGE DE MOTS OU TAG CLOUD-FLOPTWO


 Information sur la source

Note :
8,75 / 10 - par 4 personnes
8,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Classé sous :nuage, mot, tagcloud, cloud, classement Niveau :Débutant Date de création :01/10/2006 Date de mise à jour :25/03/2008 17:47:05 Vu / téléchargé :15 707 / 1 459

Auteur : floptwo

Ecrire un message privé
Site perso
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Selon Wikipédia ( http://fr.wikipedia.org/wiki/Nuage_de_mots ) :
Le nuage de mots-clés (tag cloud en anglais) est une réprésentation visuelle des mots-clés (tag) les plus utilisés sur un site web ou utilisés pour classer des objets numériques.
Généralement, les mots les plus utilisés s'affichent dans des polices plus grandes.
Le classement des mots est alphabétique facilitant le répérage des mots les plus populaires.
Cliquer sur un mot sur l'image vous amènera vers les pages associées à ce mot.

J'ai donc réaliser cette classe afin de générer un nuage de mot aisément.

Script réalisépar floptwo (floptwo@gmail.com)
http://www.floptwo.com

Source

  • <?php
  • class classe_nuagemot
  • {
  • var $taillepolice_min; // La plus petite taille de police
  • var $taillepolice_max; // La plus grande taille de police
  • // function classe_nuagemot initialise la classe
  • // Par défaut la plus petite taille de police sera 8 et la plus grand 20
  • function classe_nuagemot ($taillepolice_min = 8, $taillepolice_max = 20)
  • {
  • $this -> taillepolice_min = $taillepolice_min;
  • $this -> taillepolice_max = $taillepolice_max;
  • }
  • function element_ajout($element_nom, $element_score)
  • {
  • // Ajout de données au tableau
  • $this -> element_liste [$element_nom] = $element_score;
  • }
  • function execute ()
  • {
  • // Calcul du coefficent de proportionalité
  • $element_max = max ($this -> element_liste);
  • $element_min = min ($this -> element_liste);
  • $calcul_element = $element_max - $element_min;
  • $taillepolice_min = $this -> taillepolice_min;
  • $taillepolice_max = $this -> taillepolice_max;
  • $calcul_taillepolice = $taillepolice_max - $taillepolice_min;
  • $calcul_div = $calcul_element / $calcul_taillepolice;
  • // On parcours la liste des donées entrées
  • foreach ($this -> element_liste as $element_nom => $element_score)
  • {
  • // Calcul me permettant d'obtenir la taille de police de chaque élément
  • $element_taillepolice = $taillepolice_min + round ($element_score / $calcul_div);
  • // On place les résultats dans un tableau
  • // $element_liste_result [ nom de l'élément ][ 0 ] : Score
  • // $element_liste_result [ nom de l'élément ][ 1 ] : Taille de la police
  • $element_liste_result [$element_nom] = array ($element_score, $element_taillepolice);
  • }
  • return $element_liste_result;
  • }
  • }
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * *
  • * script réalisé par floptwo (floptwo@gmail.com)
  • * http://www.floptwo.com
  • * * * * * * * * * * * * * * * * * * * * * * * * * * */
  • ?>
<?php
class classe_nuagemot
{
	var $taillepolice_min; // La plus petite taille de police
	var $taillepolice_max; // La plus grande taille de police

	// function classe_nuagemot initialise la classe
	// Par  défaut la plus petite taille de police sera 8 et la plus grand 20
	function classe_nuagemot ($taillepolice_min = 8, $taillepolice_max = 20)
	{
		$this -> taillepolice_min = $taillepolice_min;
		$this -> taillepolice_max = $taillepolice_max;
	}
	
	function element_ajout($element_nom, $element_score)
	{
		// Ajout de données au tableau
		$this -> element_liste [$element_nom] = $element_score;
	}
	
	function execute ()
	{
		// Calcul du coefficent de proportionalité
		$element_max = max ($this -> element_liste);
		$element_min = min ($this -> element_liste);
		$calcul_element = $element_max - $element_min;
		
		$taillepolice_min = $this -> taillepolice_min;
		$taillepolice_max = $this -> taillepolice_max;
		$calcul_taillepolice = $taillepolice_max - $taillepolice_min;	
		
		$calcul_div = $calcul_element / $calcul_taillepolice;
		
		// On parcours la liste des donées entrées
		foreach ($this -> element_liste as $element_nom => $element_score)
		{
			// Calcul me permettant d'obtenir la taille de police de chaque élément
			$element_taillepolice = $taillepolice_min + round ($element_score / $calcul_div);
			
			// On place les résultats dans un tableau 
			// $element_liste_result [ nom de l'élément ][ 0 ] : Score 
			// $element_liste_result [ nom de l'élément ][ 1 ] : Taille de la police
			$element_liste_result [$element_nom] = array ($element_score, $element_taillepolice);
		}
		
		return $element_liste_result;
	}
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * 
 * script réalisé par floptwo (floptwo@gmail.com)
 * http://www.floptwo.com
 * * * * * * * * * * * * * * * * * * * * * * * * * * */
?>

 Conclusion

J'ai mis dans le zip une pagee qui  montre l'utilisation de la classe.

Tout est dans le Zip !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

01 octobre 2006 21:16:26 :
Tout est dans la Zip!
09 octobre 2006 22:58:46 :
Ajout d'une capture d'écran.

 Sources du même auteur

CLASS MYSQL (FLOPTWO)
Source avec Zip UPLOAD - FLOPTWO
Source avec Zip NAVIGATION 404 - FLOPTWO
Source avec Zip Source avec une capture CALENDRIER - FLOPTWO

 Sources de la même categorie

Source avec Zip CLASSE TABLE HTML DYNAMIQUE par LDDL
Source avec Zip GÉNÉRATEUR DE COUCHE DAO POUR SITE WEB À PARTIR D'UNE BASE D... par alexfool
Source avec Zip [PHP5.2] CLASSE PDO par hornetbzz
Source avec Zip POO - LOGGING PACKAGE par Waredan
POO - OBJECT CLASS par Waredan

 Sources en rapport avec celle ci

Source avec Zip FONCTION QUI GÉNÉRE UN MOT DE PASSE ALÉATOIRE par italiasky
MOT DE PASSE POUR SITE WEB EN PHP par Chifou
Source avec Zip Source avec une capture IMAGE ANTI-SPAM AGRÉABLE À LIRE ET À REGARDER par SurfMaths
MOTEUR DE RECHERCHE DANS UNE BDD par HenvimaL
MÉLANGE DE LETTRES par Jayadeva

Commentaires et avis

Commentaire de JoJo738 le 01/10/2006 20:49:08

Euh, on pourrait avoir le code ???

Commentaire de floptwo le 01/10/2006 21:12:14

Tout est dans le zip non ?!

Commentaire de JoJo738 le 01/10/2006 23:16:47

Euh, aparament non ^^

Sinon c'est un code propre. Mais il manque un exemple d'utilisation.

Je testerais quand j'aurais le temps

Commentaire de floptwo le 02/10/2006 02:19:57

J'ai tester, tout est bien dans le zip!

Je n'ai surement pas preciser que
nuagemot-floptwo.class.php contient la classe
et
nuagemot-floptwo.php est l'exemple d'utilisation

Et je le redis, tout est dans le zip!! (euhhh, il faut telecharger le zip pour le consulter)

Commentaire de JoJo738 le 02/10/2006 07:27:05

Ah oups, pas vu.

C'est à dire que les membres culb de CS n'ont pas besoin de télécharger pour savoir ce qu'il y a dedans ... Donc comme il n'y avait pas de fichier, j'ai cru que le Zip était vide

Faudrait faire qqchose dans le Zip pour lire sa racine :p

Commentaire de fyav le 09/10/2006 09:23:03

une petite copie d'écran aurait été utile
sinon allez sur http://www.flickr.com/photos/tags/

Commentaire de hebster le 15/01/2007 12:22:38

hello,
ton fichier zip ne fonctionne pas :(

on va essayer le reverse engeenering avec le bout de code mis dans la source :p

Commentaire de nacedo57400 le 05/03/2007 20:20:51

Depuis le temps que je cherchai  un script pour faire un nuage de tag, celui-ci est vraiment pas mal, court et simple.
Par contre cette façon de faire pour ajouter de nouveau tag ne correspondait pas trop à mes besoins, je l'ai donc modifier comme ceci:

function element_ajout($element_chaine, $fichier = 'liste.xml')
{
$chaine = explode(" ", $element_chaine); //on découpe la phrase en mot
$nb_value = count($chaine); //on compte le nombre de mot
$nb_value--;
//merci à     http://www.php.net/manual/fr/ref.simplexml.php
if (file_exists($fichier)) { //teste si le fichier existe
   $xml = simplexml_load_file($fichier); //ouvre le fichier
} else {
exit ("erreur de chargement des données XML");
}


for ($i = 0; $i <= ($nb_value); $i++) { //on parcour les mots chercher
$add = 0;
foreach ($xml->xpath('//word') as $word) { //on parcour le fichier XML
if ( (string) $word == $chaine[$i]){ //on vérifie si le mot existe
//si le mot existe déjà
$word['nb'] = floatval($word['nb']) + 1; //on augmente le nombre de recherche de ce mot
$add = 1; //on change la variable pour que le mot ne soit pas ajouté
}
}

if ($add == 0) { //si la variable n'a pas été changer on ajoute le mot a la liste
$new = $xml->addChild('word', $chaine[$i]); //ajoute se mot à la liste
$new->addAttribute('nb', '1');
}

}


//on créé la tableau a partir du XML
foreach ($xml->xpath('//word') as $word) { //on parcour le fichier XML
$element_nom = strval($word);
$element_score = strval($word['nb']);
$this -> element_liste [$element_nom] = $element_score;
}
$xml->asXML($fichier); //on sauvegarde le fichier XML
}

Cela permet d'ajouter chaque mot une chaine de caractère (par exemple une recherche dans votre moteur) puis de stocker les mots et leur score dans un fichier XML de ce type:

<?xml version='1.0' encoding="ISO-8859-1" standalone='yes'?>
<search>
<word nb="1">exemple</word>
</search>

!!!ATTENTION!!! PHP5 est obligatoire pour charger un XML avec cette methode

Commentaire de nacedo57400 le 06/03/2007 16:53:49

un exemple tout en couleur de tout ceci se trouve à cette adresse; http://nacedo.eu/search/index.php5

il comporte également un exemple d'autocompletion en AJAX et l'ajout d'un élément pour mettre en couleur les TAG en fonction de leur scor.

un fichier ZIP comportant tous les codes est fournis en bas de la page.

Par contre je n'y connais pas grand chose en se qui concerne les class, quelqun pourait'il mettre tout cela en forme?

Commentaire de buddapass le 24/05/2007 08:36:02

Bonjour , merçi pour ce code ^^ .

Par contre je l'ai installé et les liens ne sont pas cliquables :-(

Si tu pouvais m'aiguiller ca saurais sympa ;-)

+++

Commentaire de sebastien247 le 22/08/2007 15:49:00

Bonjour,

Tout d'abord, Super Script ;)

Il marche a la perfection, le soussi, c'est que je voudrais rajouter $element_liste_result[$element_nom][2] pour rajouter le lien de la page enregistrer avec le mot clé dans ma BDD

J'ai proceder comme suite :

Page de la class :

class classe_nuagemot
{
var $taillepolice_min; // La plus petite taille de police
var $taillepolice_max; // La plus grande taille de police

// function classe_nuagemot initialise la classe
// Par  défaut la plus petite taille de police sera 8 et la plus grand 20
function classe_nuagemot ($taillepolice_min = 8, $taillepolice_max = 20)
{
$this -> taillepolice_min = $taillepolice_min;
$this -> taillepolice_max = $taillepolice_max;
}

function element_ajout($element_nom, $element_score, $element_page)
{
// Ajout de données au tableau
$this -> element_liste [$element_nom] = $element_score;
$this -> element_liste [$element_nom] = $element_page;
}

function execute ()
{
// Calcul du coefficent de proportionalité
$element_max = max ($this -> element_liste);
$element_min = min ($this -> element_liste);
$calcul_element = $element_max - $element_min;

$taillepolice_min = $this -> taillepolice_min;
$taillepolice_max = $this -> taillepolice_max;
$calcul_taillepolice = $taillepolice_max - $taillepolice_min;

$calcul_div = $calcul_element / $calcul_taillepolice;

// On parcours la liste des donées entrées
foreach ($this -> element_liste as $element_nom => $element_score)
{
// Calcul me permettant d'obtenir la taille de police de chaque élément
$element_taillepolice = $taillepolice_min + round ($element_score / $calcul_div); <---------------- Ligne 56

// On place les résultats dans un tableau
// $element_liste_result [ nom de l'élément ][ 0 ] : Score
// $element_liste_result [ nom de l'élément ][ 1 ] : Taille de la police
// $element_liste_result [ nom de l'élément ][ 2 ] : Adresse de la page
$element_liste_result [$element_nom] = array ($element_score, $element_taillepolice, $element_page);
}

return $element_liste_result;

}
}


Page d'affichage des tag :

// On dclare la classe classe_nuagemot
$classe_nuagemot = new classe_nuagemot();

// Ici tu saisi toutes les donnes que tu veux :
// s'il s'agit d'une liste de visites par membres
// $classe_nuagemot -> element_ajout (nom du membres, nombre de visites)
while($row = mysql_fetch_array($result))
{
$classe_nuagemot -> element_ajout ($row['keyword'], $row['compteur'], $row['page']);
}
// (Il faut faire attention a ce que deux elements ne portes pas le meme nom
// Sinon c'est la valeur du dernier entr qui sera prise en compte.)

// On execute les calculs
$element_liste_result = $classe_nuagemot -> execute ();

// On parcours la liste de rsultat des dones entres
foreach ($element_liste_result as $element_nom => $element_result)
{
// $element_nom : Nom de la donne
// $element_liste_result[$element_nom][0] : Score
// $element_liste_result[$element_nom][1] : Taille de la police
echo '<span style="font-size:' , $element_liste_result[$element_nom][1] , 'pt;">';
echo $element_nom , ', visites : ' ,  $element_liste_result[$element_nom][0] , ' (' , $element_liste_result[$element_nom][1] , 'pt)';
echo '</span>';
echo '<br/>';

echo '<br/>';
echo $element_liste_result[$element_nom][2];
echo '<br/>';

echo '<a href="http://www.***.com"'.$element_liste_result[$element_nom][2].' style="font-size:' , $element_liste_result[$element_nom][1] , 'pt;"';
    echo ' title="'.$element_nom.'"';
    echo '>'.$element_nom.'</a> ';
echo '<br/>';
}

Mais cela me renvoie cette erreur :

Warning: Division by zero in /home/***/www.***.com/htdocs/nuagemot-floptwo.class.php on line 56

Warning: Division by zero in /home/***/www.***.com/htdocs/nuagemot-floptwo.class.php on line 56

Il m'affiche bien les tag mais n'arrive pas a faire le calcule du compteur

Merci par avance

Commentaire de bg62 le 22/10/2007 16:58:51

bonjour
ce script m'intéresse beaucoup ... mais je suis nul en PHP !!!
alors si quelqu'un voulait bien prendre le temps de me dire comment on peut l'installer pour le faire fonctionne ce serait super !
grand merci à l'avance
@+
b g

Commentaire de iomega le 08/02/2008 16:02:09

Super ton script.
Mais j'ai le meme problème que sebastien247
j'ai une division par zéro..
Peux-tu nous donner un coup de main ca serait super simpas

Commentaire de JoJo738 le 27/06/2008 14:55:55 7/10

Hello ^^

Peitte erreur dans ton script : la bonne formule pour calculer la taille de la police est :

$element_taillepolice = $this -> taillepolice_min + $calcul_taillepolice * ( ( $element_score - min ($this -> element_liste)) / $calcul_element);

Ton script, ne prenait pas vraiment en compte le min et max (je mettais max 18, et j'obtenais du 26pt ...).
Là, c'est bon ^^

Sinon, pour la division par zéro :

$calcul_div = $calcul_element / $calcul_taillepolice;
$calcul_div = $calcul_div == 0 ? 1 : $calcul_div; // <------- Rajoutez ceci ^^

Commentaire de Centaureal le 13/07/2009 11:16:19

comment il s'utilise ? il faudrais qq même une notice non ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Petit probleme [ par Shadow ] salut, je voudrais faire une base de donnee pour inscrire un mot de passe et un pseudo doncje veux aussi verifier si le pseudo et le mot de passe son Mail pour mot de passe d'un membre [ par mojira ] Je peine pour faire un script qui pourrais envoyer un mail avec le mot de passe du membre qui a pu l'oublié...description :formulaire (e-mail) --&gt; Liaison entre les tables [ par coupeau ] BonjourJ'ai deux tablesune table documentation et une table mot-clé. Comment puis insérer plusieurs mots-clés (N: cela dépend du document parfois 1 mo programation d'un site [ par misterbux ] &gt; mister bux&gt; &gt; _je voudrais faire un site internet avec une base de donné:&gt; -nom utilisateur&gt; -mot de passe&gt; -description&gt; -pouv Password MySQL [ par eax ] salut!je me suis amusé avec phpmyadmin pour mettre un mot de passe à mon root mysql (mot de passe nul par défaut avec easyphp).mon problème est là qua Problème de cryptage [ par BirD ] Hello, j'ai un petit problème au niveau du criptage de mes mots de passe:J'utilise la fonction crypt(); et jusque la tou va bien, il crypte mon mot de pb avec les mot de passe [ par nikos283 ] Salut a vous!Please help me!!! Voila je suis sur un projet de site ou il y a un acces membre avec mot de passe. Ce mot de passe je l'ai crypté avec l mysql users [ par elanspeech ] Salut,J'ai un probleme qui commence a me donner la migraine.Quand je cree un user "essai" sans mot de passe, j'obtiens ce message quand je fais un co mot de passe pour téléchargement [ par bbProg ] Est-il possible d'imposer un mot de passe pour un téléchargement ?pour l'accès à une page, c'est pas compliqué, vu qu'on peut écrire du code php dans cryptage [ par huricane ] Bonjour, J'ai un problème pour crypter de simple mot de passe dans une base de donnée. Je suis sous postgresql et je dispose d'une table utilisateur o


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales