Mise à jour pour Sébastien ;-)

| 1 Commentaire | 1 Trackback
Sébastien trouvant que le flux RSS manque d'actualité je crée une note rien que pour lui

Ce WE j'ai commencé à jouer avec le Google SiteMap. Cette technique permet d'aider les moteurs de recherche à indexer le contenu du site en listant les URL disponibles et en leur donnant une priorité (priorité pour le webmaster... pas forcément pour le moteur de recherche !).

Pour expérimenter cela j'ai créé un template pour Movable Type à partir de celui fourni par Anders Jacobsen (pour les entrées directes qui prennent en compte les commentaires) et celui de Cameron. Et ça fonctionne plutôt bien !

Malheureusement le blog n'est pas la seule source d'information de ce site et j'ai donc été obligé de modifier mon générateur de base DVD pour qu'il crée également un index sitemap. Coup de chance j'ai pu réutiliser la modification que j'avais faite pour gérer la liste des nouveautés (fonction demandée par Sébastien justement).

Restait également à créer un petit script pour générer un index SiteMap pour Gallery 2. Là je suis reparti de zéro et j'ai tapé directement dans la base de données... Le script que j'ai créé n'est vraiment pas optimisé mais ça suffira en attendant la prochaine version de Gallery 2 qui elle incluera directement un module export SiteMap (que j'ai bien tenté d'ajouté à mon installation à partir du CVS mais il faudrait que je monte en version le reste de l'install ce que je ne compte pas faire vu que ça fonctionne !).

Le script pour MovableType et le script Gallery2 sont disponibles dans la suite !

Habillage pour Movable Type

<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">

<url>
<loc><$MTBlogURL encode_xml="1"$></loc>
<priority>1.0</priority>
<MTEntries lastn="1">
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%S+00:00"$></lastmod>
</MTEntries>
<changefreq>daily</changefreq>
</url>

<MTEntries lastn="10">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><MTIfNonZero tag="MTEntryCommentCount"><MTComments lastn="1"><$MTCommentDate utc="1" format="%Y-%m-%dT%H:%M:%S+00:00"$></MTComments><MTElse><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%S+00:00"$></MTElse></MTIfNonZero>
</lastmod>
<priority>0.9</priority>
<changefreq>daily</changefreq>
</url>
</MTEntries>

<MTEntries lastn="10" offset="10">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><MTIfNonZero tag="MTEntryCommentCount"><MTComments lastn="1"><$MTCommentDate utc="1" format="%Y-%m-%dT%H:%M:%S+00:00"$></MTComments><MTElse><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%S+00:00"$></MTElse></MTIfNonZero>
</lastmod>
<priority>0.8</priority>
<changefreq>daily</changefreq>
</url>
</MTEntries>

<MTEntries lastn="1000" offset="20">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><MTIfNonZero tag="MTEntryCommentCount"><MTComments lastn="1"><$MTCommentDate utc="1" format="%Y-%m-%dT%H:%M:%S+00:00"$></MTComments><MTElse><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%S+00:00"$></MTElse></MTIfNonZero>
</lastmod>
<priority>0.5</priority>
<changefreq>monthly</changefreq>
</url>
</MTEntries>

<MTArchiveList archive_type="Category">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</MTArchiveList>

<MTArchiveList archive_type="Monthly">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
</MTArchiveList>

</urlset>

Petit script pour Gallery2

<?
header("Content-Type: text/xml; charset=utf-8");
echo ('<?xml version="1.0" encoding="UTF-8"?>');
?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<?
// Sitemap for Gallery2 (waiting for CVS next release!)
// Scratch from database... brute force !

//
// HERE YOUR NEED TO SETUP AN ACCESS TO YOUR DATABASE
// YOUR WEBSITE AND OTHER STUFF...
//
// Note: this site relies on URL rewriting!
// You'll need to modify this script if table prefix is not 'g2_'
//
// Todo:
// - check if comments exist and use last comment date
// - use G2 module to handle URLs and configuration
//
define ('BdDServer', 'localhost');
define ('BdDLogin', 'gallery2');
define ('BdDPass', 'password');
define ('BdDDatabase', 'gallery2');
define ('rootURL', 'http://www.zeguigui.com/photos/v/');
define ('albFreq', 'daily');
define ('albPrio', '0.8');
define ('phoFreq', 'weekly');
define ('phoPrio', '0.5');

mysql_connect(BdDServer, BdDLogin, BdDPass) or die("Unable to connect: " . mysql_error());
mysql_select_db(BdDDatabase);

function getURL($id, $album) {
// Looks like i am a recursive function... oops!

$sql = 'select c.g_id, c.g_parentId, f.g_pathComponent '
. 'from g2_ChildEntity c, g2_FileSystemEntity f '
. 'where c.g_id = f.g_id and '
. "c.g_id = $id";

$s = mysql_query ($sql) or die ('Error in getURL: ' . mysql_error());
$r = mysql_fetch_array ($s);
mysql_free_result ($s);

if ($r['g_parentId'] == 0) {
return rootURL;
} else {
if ($album) {
return getURL($r['g_parentId'], true) . $r['g_pathComponent'] . '/';
} else {
return getURL($r['g_parentId'], true) . $r['g_pathComponent'] . '.html';
}
}
}

// Add albums to Google Index
$sql = 'SELECT i.g_id, i.g_title, i.g_originationTimestamp '
. 'FROM g2_Item i, g2_AlbumItem a '
. 'WHERE a.g_id = i.g_id';

$statement = mysql_query ($sql) or die ("Error: " . mysql_error());
while ($row = mysql_fetch_array($statement)) {
$url = getURL ($row['g_id'], true);
?>
<url>
<loc><?= $url ?></loc>
<lastmod><?= gmdate('Y-m-d', $row['g_originationTimestamp']) . 'T' .
gmdate('H:i', $row['g_originationTimestamp']) . 'Z'
?></lastmod>
<changefreq><?= albFreq ?></changefreq>
<priority><?= albPrio ?></priority>
</url>
<?
}
mysql_free_result ($statement);

// Photos
$sql = 'SELECT i.g_id, i.g_title, i.g_originationTimestamp '
. 'FROM g2_Item i, g2_PhotoItem p '
. 'WHERE p.g_id = i.g_id';

$statement = mysql_query ($sql) or die ("Erreur : " . mysql_error());
while ($row = mysql_fetch_array($statement)) {
$url = getURL ($row['g_id'], false);
?>
<url>
<loc><?= $url ?></loc>
<lastmod><?= gmdate('Y-m-d', $row['g_originationTimestamp']) . 'T' .
gmdate('H:i', $row['g_originationTimestamp']) . 'Z'
?></lastmod>
<changefreq><?= phoFreq ?></changefreq>
<priority><?= phoPrio ?></priority>
</url>
<?
}
mysql_free_result ($statement);

mysql_close();
?>
</urlset>

Note : je n'ai pas testé le script Gallery2 tel que... Je viens de le modifier pour le rendre un peu plus paramétrable et pour qu'il soit exploitable en dehors de mon installation personnelle. N'hésitez pas à me laisser un commentaire s'il y a un problème avec.

Mise à jour : vu le grand nombre de spams reçus en commentaire sur cette note, j'ai décidé de fermer les commentaires !

1 Trackback

Un Plugin Google Sitemap pour notre blog. depuis Le blog de Mathieu et Coralie sur 23 février 2006 12h14

C'est sur le blog de ZeGuiGui que j'ai entendu parlé pour la première fois de Google Sitemap. J'en entends déjà certain dire "Mais, tu dormais où quoi ?!?"... mais ne rentrons pas sur ce sujet... le sommeil - et surout son absence - est un sujet... Lire la suite

1 Commentaire

Merci qui ?

Merci ZeGuiGui

Retrouvez-moi sur

Facebook LinkedIn Viadeo Copains d'avant

Photo aléatoire

Avec le foyer ça le fait mieux

Avec le foyer ça le fait mieux

Archives

Archives plus anciennes :

Syndication

Information

Powered by Movable Type 5.01

août 2010

Dim Lun Mar Mer Jeu Ven Sam
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Commentaires récents

  • ZeGuigui : @constantin: connaissant la position, la vitesse et la direction la lire la suite
  • Mirabelle : Ah la la moi j'ai une appli pour convertir les lire la suite
  • constantin : Avec ta formule, connaissant la position actuelle d'un objet et lire la suite
  • Sylvie : Scrabble, Sudoku, Solitaire, Mah-jong (ange) lire la suite
  • Fée Clochette : De manière générale, il est vrai que ce téléphone est lire la suite
  • ZeGuigui : [1] Un smiley machine à coudre ou tricot ? Ca lire la suite
  • Mirabelle : Tu crois qu'on peut sortir son tricot chez Ladurée ? lire la suite
  • Fée Clochette : Un tricot-thé ? Oh oui oui oui, je suis toujours lire la suite
  • Mirabelle : Une top chouette sortie à réitérer souvent :oui: C'est bon lire la suite
  • Marie : Haaaan FÉLICITATIONS KRO !!! Ça alors ! C'est de la lire la suite