| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
franck05 WRInaute occasionnel

Inscrit le: 01 Déc 2003 Messages: 108
|
Posté 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... |
|
| |
|
 |
medium69 WRInaute accro

Inscrit le: 07 Mai 2005 Messages: 2150 Localisation: Je sais pas trop ;)
|
Posté 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('&','&', $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 |
|
| |
|
 |
franck05 WRInaute occasionnel

Inscrit le: 01 Déc 2003 Messages: 108
|
Posté le : Lun Nov 28, 2005 0:01 Sujet du message: Script sitemap |
|
|
ouah super merci !!!
ç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 ? |
|
| |
|
 |
medium69 WRInaute accro

Inscrit le: 07 Mai 2005 Messages: 2150 Localisation: Je sais pas trop ;)
|
Posté 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
id - int(11) - auto incrément - attibrut UNSIGNED
url - varchar(255)
date - date
nb - int(11) - attibrut UNSIGNED[/quote] |
|
| |
|
 |
franck05 WRInaute occasionnel

Inscrit le: 01 Déc 2003 Messages: 108
|
Posté le : Lun Nov 28, 2005 10:34 Sujet du message: Script sitemap |
|
|
Super merci je testerai dès que possible  |
|
| |
|
 |
franck05 WRInaute occasionnel

Inscrit le: 01 Déc 2003 Messages: 108
|
Posté 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... |
|
| |
|
 |
medium69 WRInaute accro

Inscrit le: 07 Mai 2005 Messages: 2150 Localisation: Je sais pas trop ;)
|
Posté 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  |
|
| |
|
 |
midou Nouveau WRInaute
Inscrit le: 02 Juil 2005 Messages: 16
|
Posté 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
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 |
|
| |
|
 |
serval2a WRInaute accro

Inscrit le: 21 Mar 2005 Messages: 2927 Localisation: A la poursuite de Googlebot.
|
|
| |
|
 |
franck05 WRInaute occasionnel

Inscrit le: 01 Déc 2003 Messages: 108
|
Posté 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à !  |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12073 Localisation: Toulouse
|
Posté 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à !  |
passes ton chemin et ne répond pas alors  |
|
| |
|
 |
midou Nouveau WRInaute
Inscrit le: 02 Juil 2005 Messages: 16
|
Posté le : Mer Déc 21, 2005 16:25 Sujet du message: Script sitemap |
|
|
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+ |
|
| |
|
 |
medium69 WRInaute accro

Inscrit le: 07 Mai 2005 Messages: 2150 Localisation: Je sais pas trop ;)
|
Posté le : Mer Déc 21, 2005 20:03 Sujet du message: Script sitemap |
|
|
| Tu as besoin d'aide ou pas alors ? |
|
| |
|
 |
midou Nouveau WRInaute
Inscrit le: 02 Juil 2005 Messages: 16
|
Posté 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 |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
|
|