Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Script sitemap

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
franck05
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Déc 2003
Messages: 108

URL permanente de ce messagePosté le : Dim Nov 27, 2005 21:39    Sujet du message: Script sitemap

Bonjour,

Je suis à la recherche d'un script pour faire le plan d'un site de façon dynamique, c'est un site url rewrité mais je ne trouve pas mon bonheur...

est ce que quelqu'un aurait un tuyau merci d'avance...
 
franck05 Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2150
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Dim Nov 27, 2005 23:45    Sujet du message: Script sitemap

Voici un script très simple que je me sert :
Je l'ai mis dans des fonctions.

Cette fonction est à appelée par chaque page que vous voulez mettre dans le sitemap
Code:
function sitemapBdd() {
   global $uriSitemap;
   
   if   (defined('SITEMAP') ) { // Cela me sert pour définir une autre url dans certains cas (pour mon glossaire par exemple, je définis cette constante pour indiquer une url légèrement modifiée)
         $url = $uriSitemap;
         }
   else   { // Si la constante n'est pas définie, on récupère l'url
         $url = $_SERVER['REQUEST_URI'];
         }
   
   if      (eregi('/index.php', $url) ) { // Si on est sur l'acceuil, l'url ne sera composé que du nom de domaine pour éviter le duplicate content (cela implique bien sur qu'aucun de vos autres fichier se nomme index.php)
         $url = '/';
         }
         
   $date = date('Y-m-d', time() ); // On récupère la date

   if   ($url) { // si on à une url on la cherche dans la BDD
      $res_urlSitemap = sqlSitemap('url sitemap', 'trouver l\'url '.$url.' dans le sitemap.', $url); // requête SQL
      $nbUrlSitemap = mysql_num_rows($res_urlSitemap);
      
      if      ($nbUrlSitemap == 1) { // Si l'url est trouvée, on modifie la date et on incrémente le compteur de visite
            $traitement = sqlSitemap('modification données url', 'modifier les données de '.$url.' dans le sitemap.', $url, $date); // requête SQL
            }
      else   { // on insère l'url, la date et on incrémente le compteur
            
            $traitement = sqlSitemap('enregistrement url', 'Enregistrer les infos de l\'url '.$url.' dans le sitemap.', $url, $date); // requête SQL
            }
      }
}


Code:

/* *********************** */
/* Requêtes sur la BDD du sitemap */
/* *********************** */
function sqlSitemap($sql, $desc, $var1 = '', $var2 = '') { // type de requêtes SQL, description de la requête SQL, variable
      
   $T_sitemap   = nom de ta table;
      
   switch   ($sql) { // Création des requêtes               
         case 'création sitemap' : // Créaion du sitemap limité à 50 000 url (pour faire un sitemap plus grand, il vous faudra modifier un peu le code)
         $sql = 'SELECT url, date FROM '.$T_sitemap.' ORDER BY id LIMIT 0,50000';
         break;               
         case 'enregistrement url' : // incrémentation du compteur de visite pour l'url (x)
         $sql = 'INSERT INTO '.$T_sitemap.' (id, url, date, nb) VALUES ("", "'.$var1.'", "'.$var2.'", 1)';
         break;               
         case 'modification données url' : // incrémentation du compteur de visite pour l'url (x)
         $sql = 'UPDATE '.$T_sitemap.' SET nb = nb + 1, date = "'.$var2.'" WHERE url = "'.$var1.'"';
         break;               
         case 'url sitemap' : // sélection de l'url (x)
         $sql = 'SELECT * FROM '.$T_sitemap.' WHERE url = "'.$var1.'"';
         break;         
         }
         
// Je me sert de plusieurs fonction personnelle pour la connection à une base de donnée avec gestion d'erreur personnalisée. Je vous laisse le soin de codé cette partie pour la connection   

$sql_connection = connection à votre base de données  // Connection à la BDD
   $res = envoi de la requête $sql // Envoi de la requête
   mysql_close(); // Fermeture de la connection
   
   return $res; // On retourne le résultat de la requête
}


Cette fonction (ou le code) est à mettre dans une page d'administration (création de votre sitemap selon votre désir) ou par exemple sur la page d'accueil avec quelques petites modification (Création de votre sitemap par vos visiteurs)
Code:

function sitemapXml() {
   $baseUrl = http://www.NDD;
   $fichier = 'sitemap.xml'; // nom du ficher XML
   $path = ''; // pour placer le fichier xml en racine
   $fp = fopen($path.$fichier, "w");
   $sitemap = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
   $sitemap .= "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
   
   fwrite($fp, $sitemap);
   
   $res_liste = sqlSitemap('création sitemap', 'créer le sitemap.'); // requête SQL
   
   while   (list($a, $b) = mysql_fetch_array($res_liste) ) {
         $a = ereg_replace('&','&amp;', $a);
         $nbUrl ++;
         $sitemap = "\t<url>\n";
         $sitemap .= "\t\t<loc>$baseUrl$a</loc>\n"; // L'url à indexée
         $sitemap .= "\t\t<lastmod>$b</lastmod>\n"; // la date sera toujours la date de dernière visite de la page
         $sitemap .= "\t\t<changefreq>weekly</changefreq>\n"; // vous pouvez changer cette valeur selon votre choix
         //$sitemap .= "\t\t<priority>0.5</priority>\n"; // idem pour cette dernière
         $sitemap .= "\t</url>\n";
         
         fwrite($fp, $sitemap);
         }
   $sitemap = "</urlset>\n";
   
   fwrite($fp, $sitemap);
   fclose($fp);

/*Le code suivant est à laisser uniquement dans une partie privative. Elle vous donne quelques infos. */
   echo '<p>Le sitemap contient '.$nbUrl.' url.<br />
   <a href="http://www.NDD/'.$fichier.'">voir le fichier généré : '.$fichier.'</a></p>';
}


Si je n'ai pas été assez clair, n'hésite pas à me demander des précision.

L'avante de ce code est que tu peux géré très facilement ton sitemap.
Le code ne demande qu'à être amélioré.

Par exemple, comme le nombre de visite est comptabilisé dans la BDD, on peut très bien s'en servir pour qualifier une priorité différente selon les pages.

Il permet aussi de ne pas indexé certaines pages ou au contraire de modifier un peu l'url comme dans mon exemple :
-http://www.science-et-vie.net/glossaire,terme,HTML.html
sera transformé par cela (je récupère le nom de la page concerné via la BDD):
-http://www.science-et-vie.net/glossaire,terme,HyperText,Markup,Language.html
 
medium69 Visiter le site web du posteur
franck05
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Déc 2003
Messages: 108

URL permanente de ce messagePosté le : Lun Nov 28, 2005 0:01    Sujet du message: Script sitemap

ouah super merci !!! Razz
ça à l'air vraiment bien sur ton site pil poil ce que je charchais...

Je le teste dans la semaine car je n'aurais pas ma connexion au web en début de semaine, je te tiens au courrant si ça marche ....

est ce que pour la table tu aurait un fichier sql comme ça j'ai les types
et les longueurs des champs ?
 
franck05 Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2150
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Lun Nov 28, 2005 0:19    Sujet du message: Script sitemap

Le code que j'ai dans toute les pages pour l'indexation ou non (il est installé en bas de page car d'autre constante peuvent être définie dans les pages :
Citation:
if (!eregi('[=#]', $_SERVER['REQUEST_URI']) && !defined('NO_SITEMAP') ) { // Si la page est autorisée pour l'indexage. Dans le premier !eregi, je n'indexe pas les url avec des ancres ou le signe = (pour mon cas, quand le visiteur change de skin, l'url n'est pas rewrité en partie)
sitemapBdd(); // Modification de la BDD pour le sitemap
}


Sur les page que tu ne veux pas indexé : define('NOSITEMAP', true);

Encore un exmple toujours pour mon cas :
Code:
if   ($glossaire['texte']) { // si le terme à été défini
                     define('SITEMAP', true); // on autorise l'indexation
                     $terme = traitementCaractereUrl($glossaire['nom']);
                     $uriSitemap = '/glossaire'.REW.'terme'.REW.$terme.'.html'; // on modifie l'url avec le nom par défaut pour éviter le duplicate content
                     }
                  if   ($glossaire['texte'] == '[à définir]' || !$glossaire['texte']) { // Si le terme est à définir ou si il n'est pas encore défini
                     define('NO_SITEMAP', true); // pas d'indexation dans le sitemap
                     define('META_ROBOT', true); // pas d'indexation par les robots      
                     define('NO_GOOGLE', true); // Pas d'affichage d'Adsense (trop peu de contenu)
                     }


Voici les infos de la table

Arrow id - int(11) - auto incrément - attibrut UNSIGNED
Arrow url - varchar(255)
Arrow date - date
Arrow nb - int(11) - attibrut UNSIGNED[/quote]
 
medium69 Visiter le site web du posteur
franck05
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Déc 2003
Messages: 108

URL permanente de ce messagePosté le : Lun Nov 28, 2005 10:34    Sujet du message: Script sitemap

Super merci je testerai dès que possible Smile
 
franck05 Visiter le site web du posteur
franck05
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Déc 2003
Messages: 108

URL permanente de ce messagePosté le : Mer Nov 30, 2005 10:31    Sujet du message: Script sitemap

Salut,

Bon j'ai un petiti problème car la fonction sqlSitemap doit retourner un tableu, or return ne renvoie pas un tableau...
 
franck05 Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2150
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Mer Nov 30, 2005 20:20    Sujet du message: Script sitemap

franck05 a écrit:
Salut,

Bon j'ai un petiti problème car la fonction sqlSitemap doit retourner un tableu, or return ne renvoie pas un tableau...


C'est à dire ? il te retourne quoi ?

Dans mon cas, je me sert de plusieurs fonctions pour la connection à une BDD.
Elles me gère la connection x, l'envoi de la requête x, et me retourne le numéro d'erreur francisé avec la description x en cas d'erreur.

Si cela peut te rendre service, j'avais fait un post sur ce principe.
Je te donne l'adresse, afin que tu vois si cela peut t'aider.

http://www.webrankinfo.com/forums/viewtopic_39218.htm

Il est vrai que je fais une utilisation abusive des fonctions dans mes scripts afin de mieux géré les mises à jour et amélioration de code.
Le revers, c'est que pour décrire certaines partie de mon script, ce n'est pas évident. D'autant, que je prend soin au passage de changer les nom de variables et autre pour les exemple.

N'hésite pas à me redemander si tu as un soucis.

Et pense aussi à lire tes MP Wink
 
medium69 Visiter le site web du posteur
midou
Nouveau WRInaute

Inscrit le: 02 Juil 2005
Messages: 16

URL permanente de ce messagePosté le : Mer Déc 21, 2005 2:51    Sujet du message: Script sitemap

Bonjour medium69,

je cherche à créer un sitemap pour mon site mais je ne trouve pas un outil simple !
je n'ai pas très bien compris comme t'utilise les codes et les fonctions que t'as cité précédemment Shocked
peux tu m'expliquer comment je puisse intégrer un sitemap simplement ou si tu connais un autre outil ça serait cool
j'ai utilisé yoodamap mais j'ai un pb car il me ressort que la page d'accueil sur le fichier sitemap.xml

merci d'avance
 
midou Visiter le site web du posteur
serval2a
WRInaute accro
WRInaute accro

Inscrit le: 21 Mar 2005
Messages: 2927
Localisation: A la poursuite de Googlebot.

URL permanente de ce messagePosté le : Mer Déc 21, 2005 8:28    Sujet du message: Script sitemap

Bonjour,

Essaie, http://www.blocklayer.com/googlesitemap/ avec un réglage des paramètres d'exclusion ça devrait le faire.
 
serval2a Visiter le site web du posteur
franck05
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 01 Déc 2003
Messages: 108

URL permanente de ce messagePosté le : Mer Déc 21, 2005 15:38    Sujet du message: Script sitemap

moi je suis toujours scié de voir sur ce forum des gens qui viennent en demandant des conseils simple alors que sur leur site ils proposent des prestations de développement et/ou référencement professionnel,
faudrait arreter de fumer là ! Twisted Evil
 
franck05 Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12073
Localisation: Toulouse

URL permanente de ce messagePosté le : Mer Déc 21, 2005 15:40    Sujet du message: Script sitemap

franck05 a écrit:
moi je suis toujours scié de voir sur ce forum des gens qui viennent en demandant des conseils simple alors que sur leur site ils proposent des prestations de développement et/ou référencement professionnel,
faudrait arreter de fumer là ! Twisted Evil


passes ton chemin et ne répond pas alors Smile
 
e-kiwi Visiter le site web du posteur
midou
Nouveau WRInaute

Inscrit le: 02 Juil 2005
Messages: 16

URL permanente de ce messagePosté le : Mer Déc 21, 2005 16:25    Sujet du message: Script sitemap

serval2a a écrit:

Bonjour,

Essaie, http://www.blocklayer.com/googlesitemap/ avec un réglage des paramètres d'exclusion ça devrait le faire.


Merci Serval2a, j'ai créé le sitemap avec cet outil (le seul qui a pu crowler les pages du site)

Franck05 même un professionnel peut trouver qques difficultés parfois à resoudre de simples pb ... Personne n'est parfait heuresement
En fait c'est simple de créer un sitemap mais quand on essai 2 ou 3 méthodes et que ça marche pas on doit se demabder pkoi!! pour ma question il s'agit d'un autre pb que j'ai résolu independament de la création du sitemap.

A+
 
midou Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2150
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Mer Déc 21, 2005 20:03    Sujet du message: Script sitemap

Tu as besoin d'aide ou pas alors ?
 
medium69 Visiter le site web du posteur
midou
Nouveau WRInaute

Inscrit le: 02 Juil 2005
Messages: 16

URL permanente de ce messagePosté le : Mer Déc 21, 2005 20:16    Sujet du message: Script sitemap

non c'est bon j'ai réussi à créer mon sitemap
merci quand même

A bientôt
 
midou Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort