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

Photo aléatoire

DSC_8134.JPG

DSC_8134.JPG

Archives

Archives plus anciennes :

octobre 2018

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

  • Bigface : La combo de Jérèmy au dernier draft ne fonctionnait donc lire la suite
  • ZeGuigui : Le blog vient de monter de version, apparemment tout marche lire la suite
  • Sylvie : :oui: j'adore ce pingouin... ah c'est pas lui l'objet lire la suite
  • ZeGuigui : No, never... I have to admit I did not give lire la suite
  • https://me.yahoo.com/a/KNhM72QahobiDRnTRm.iGNacnl8tqKoc#4a5b0 : Did you ever figure out how to print an array lire la suite
  • Fée Clochette : Y a de la vie dans le Guigui ????? (rofl) lire la suite
  • ZeGuigui : Oui, 29 € pour passer de Leopard à Snow Leopard... lire la suite
  • Mirabelle : Et puis... Nan rien :framboise: lire la suite
  • Mirabelle : 29 € la mise à jour pour passer sous Snow lire la suite
  • Mirabelle : J'ai le bon processeur mais je ne suis pas sous lire la suite

Syndication

Information

Powered by Movable Type 5.2.10