[Devel] r280 - branches/dui

svn at agendadulibre.org svn at agendadulibre.org
Dim 1 Juil 20:53:46 CEST 2007


Author: ldayot
Date: Sun Jul  1 20:53:44 2007
New Revision: 280

Log:
Controle de l'intitule des tags (carateres non accentues, tirets, chiffres seulement).
Changement des accents en leur code HTML.
Changement de "tag" en "mot-cle".



Modified:
   branches/dui/moderatetags.php

Modified: branches/dui/moderatetags.php
==============================================================================
--- branches/dui/moderatetags.php	(original)
+++ branches/dui/moderatetags.php	Sun Jul  1 20:53:44 2007
@@ -1,6 +1,6 @@
 <?php
 /* Copyright 2004-2007
- * - Mélanie Bats <melanie POINT bats CHEZ utbm POINT fr>
+ * - Melanie Bats <melanie POINT bats CHEZ utbm POINT fr>
  * - Thomas Petazzoni <thomas POINT petazzoni CHEZ enix POINT org>
  * - Loic Dayot <ldayot CHEZ ouvaton POINT org>
  *
@@ -29,7 +29,7 @@
 $db = new db();
 include("session.inc.php");
 
-put_header(_("Gestion des tags"));
+put_header(_("Gestion des mots-cl&eacute;"));
 
 
 function tagCategoryListHTML()
@@ -41,7 +41,7 @@
   $catQuery = "SELECT COUNT(*) as n FROM tags WHERE category_id=0 GROUP BY category_id";
   $catResult = $db->query($catQuery);
   while ($catRecord = $db->fetchObject($catResult))
-    $return .= "  <li><a href='moderatetags.php?op=catListTag&id=0' title=\"". sprintf(_("Liste des tags de la catégorie %s"), _("sans catégorie")). "\">". sprintf(_("%03s tags"), $catRecord->n). "</a> <strong>". _("sans catégorie"). "</strong></li>\n";
+    $return .= "  <li><a href='moderatetags.php?op=catListTag&id=0' title=\"". sprintf(_("Liste des mots-cl&eacute; de la cat&eacute;gorie %s"), _("sans cat&eacute;gorie")). "\">". sprintf(_("%03s mots-cl&eacute;"), $catRecord->n). "</a> <strong>". _("sans cat&eacute;gorie"). "</strong></li>\n";
   $db->freeResult($catResult);
 
   $catQuery = "SELECT COUNT(tags.id) as n, tags_categories.* FROM tags_categories LEFT JOIN tags ON tags_categories.id=category_id GROUP BY tags_categories.id ORDER BY tags_categories.name";
@@ -49,15 +49,16 @@
 
   while ($catRecord = $db->fetchObject($catResult))
   {
-    $return .= "  <li><a href='moderatetags.php?op=catListTag&id={$catRecord->id}' title=\"". sprintf(_("Liste des tags de la catégorie %s"), $catRecord->name). "\">". sprintf(_("%03s tags"), $catRecord->n). "</a> <strong>{$catRecord->name}</strong> <sapn class='description'>{$catRecord->description}</span>";
-    if ($catRecord->id>0) $return .= " - <a href='moderatetags.php?op=catEdit&id={$catRecord->id}' title=\"". sprintf(_("Modifier la catégorie %s"), $catRecord->name). "\">". _("Modifier"). "</a>";
-    if ($catRecord->n==0) $return .= " - <a href='moderatetags.php?op=catDel&id={$catRecord->id}' title=\"". sprintf(_("Supprimer la catégorie %s"), $catRecord->name). "\">". _("Supprimer"). "</a>";
+    $return .= "  <li><a href='moderatetags.php?op=catListTag&id={$catRecord->id}' title=\"". sprintf(_("Liste des tags de la cat&eacute;gorie %s"), $catRecord->name). "\">". sprintf(_("%03s mots-cl&eacute;"), $catRecord->n). "</a> <strong>{$catRecord->name}</strong> <sapn class='description'>{$catRecord->description}</span>";
+    if ($catRecord->id>0) $return .= " - <a href='moderatetags.php?op=catEdit&id={$catRecord->id}' title=\"". sprintf(_("Modifier la cat&eacute;gorie %s"), $catRecord->name). "\">". _("Modifier"). "</a>";
+    if ($catRecord->n==0) $return .= " - <a href='moderatetags.php?op=catDel&id={$catRecord->id}' title=\"". sprintf(_("Supprimer la cat&eacute;gorie %s"), $catRecord->name). "\">". _("Supprimer"). "</a>";
     $return .= "</li>\n";
   }
 
   $db->freeResult($catResult);
 
-  $return .= "<li><a href='moderatetags.php?op=catNew'>". _("Nouvelle catégorie de tags"). "</a></li>\n";
+  $return .= "<li><a href='moderatetags.php?op=catNew'>".
+   _("Nouvelle cat&eacute;gorie de mots-cl&eacute;"). "</a></li>\n";
 
   $return .= "</ul>\n";
 
@@ -94,8 +95,8 @@
   } // end else
 
   $return .= "<table>";
-  $return .= "<tr><th colspan='2'>". _("Édition d'une catégorie de tags"). "</th></tr>\n";
-  $return .= "<tr><th>". _("Intitulé*"). "</th> <td><input type=\"text\" name=\"tagCat[name]\" value=\"{$tagCat['name']}\" size='40' /></td></tr>\n";
+  $return .= "<tr><th colspan='2'>". _("Édition d'une cat&eacute;gorie de mots-cl&eacute;"). "</th></tr>\n";
+  $return .= "<tr><th>". _("Intitul&eacute;*"). "</th> <td><input type=\"text\" name=\"tagCat[name]\" value=\"{$tagCat['name']}\" size='40' /></td></tr>\n";
   $return .= "<tr><th>". _("Description"). "</th> <td><textarea name=\"tagCat[description]\" rows=\"4\" cols=\"70\">{$tagCat['description']}</textarea></td></tr>\n";
 
   $return .= "<tr><th colspan='2'><input type=\"submit\" name=\"submit\" value=\"". _("Valider"). "\" /></th></tr>\n";
@@ -113,9 +114,13 @@
      return error(_("Ne venant pas du formulaire"));
   $tagCat = $_POST["tagCat"];
   if (!is_array($tagCat) || !isset($tagCat["name"], $tagCat["description"]))
-    return error(_("Ne venant pas du bon formulaire"));;
+    return error(_("Ne venant pas du bon formulaire"));
   if (strlen($tagCat["name"])<4)
-    return error(_("Intitulé indispensable d'au moins 4 caractères"));
+    return error(_("Intitul&eacute; indispensable d'au moins 4 caract&egrave;res"));
+
+  if (! ereg("^[a-z0-9\-]*$", $tagCat))
+    return error("L'intitul&eacute; ne doit contenir que des lettres minuscules, ".
+    "des chiffres ou des tirets.");
 
   $tagCat["name"] = stripslashes(strip_tags($tagCat["name"]));
   $tagCat["description"] = stripslashes(strip_tags($tagCat["description"], "<p><b><i><br/><a><ul><li><ol>"));
@@ -124,7 +129,7 @@
   $res = $db->query("SELECT * FROM tags_categories WHERE name LIKE ". $db->quote_smart($tagCat['name']). ($id>0 ? " AND id<>$id" : ""));
   if ($db->fetchObject($res))
   { // tag already exists
-    return error(sprintf(_("La catégorie de tags %s existe déjà"), $tagCat["name"]));
+    return error(sprintf(_("La cat&eacute;gorie de mots-cl&eacute; %s existe d&eacute;j&agrave;"), $tagCat["name"]));
   }
 
   $query = "tags_categories SET name=". $db->quote_smart($tagCat['name']). ", description=". $db->quote_smart($tagCat['description']);
@@ -137,18 +142,18 @@
 
 function catDelConfirmFormHTML($id)
 {
-  if ($id==0) return error(_("Catégorie de tags non sélectionné"));
+  if ($id==0) return error(_("Cat&eacute;gorie de mots-cl&eacute; non s&eacute;lectionn&eacute;"));
 
   global $db;
   $res = $db->query("SELECT * FROM tags_categories WHERE id='{$id}'");
-  if (! $cat = $db->fetchArray($res)) return error(_("Catégorie de tags introuvable"));
+  if (! $cat = $db->fetchArray($res)) return error(_("Cat&eacute;gorie de mots-cl&eacute; introuvable"));
   $db->freeResult($res);
 
   $return = "<form action=\"moderatetags.php\" method=\"post\" enctype=\"multipart/form-data\" name=\"tagCategoryForm\">\n";
   $return .= "<input type=\"hidden\" name=\"op\" value=\"catDelete\" />\n";
 
   $return .= "<input type=\"hidden\" name=\"id\" value=\"{$cat['id']}\" />\n";
-  $return .= "<p>". sprintf(_("Vous êtes sur le point de supprimer la catégorie de tags %s"), "<strong>{$cat['name']}</strong>"). "</p>\n";
+  $return .= "<p>". sprintf(_("Vous êtes sur le point de supprimer la cat&eacute;gorie de mots-cl&eacute; %s"), "<strong>{$cat['name']}</strong>"). "</p>\n";
   $return .= "<p><label for=\"confirm\">". _("Confirmer la suppression"). "<input type=\"checkbox\" id=\"confirm\" name=\"confirm\" value=\"yes\" /></label></p>";
 
   $return .= "<p><input type=\"submit\" name=\"submit\" value=\"". _("Valider"). "\" /></p>\n";
@@ -164,7 +169,7 @@
   if (!isset($_POST["id"]))
     return error(_("Ne venant pas du bon formulaire"));;
   if (!isset($_POST["confirm"]) || $_POST["confirm"]!="yes")
-    return error(_("Supression non confirmée"));
+    return error(_("Supression non confirm&eacute;e"));
 
   // Find cat
   $res = $db->query("SELECT * FROM tags_categories WHERE id=". $db->quote_smart($_POST['id']));
@@ -179,14 +184,14 @@
   if ($db->fetchObject($res))
   { // tag already exists
     $db->freeresult($res);
-    return error(sprintf(_("La catégories %s comporte des tags"), $cat["name"]));
+    return error(sprintf(_("La cat&eacute;gories %s comporte des mots-cl&eacute;"), $cat["name"]));
   }
 
   $query = "DELETE FROM tags_categories WHERE id=". $db->quote_smart($cat['id']);
   if ($ok = $db->query($query))
-    echo "<p>". _("Catégorie de tags supprimée")."</p>\n";
+    echo "<p>". _("Cat&eacute;gorie de mots-cl&eacute; supprim&eacute;e")."</p>\n";
   else
-    error(_("Impossible de supprimer la catégorie de tags"));
+    error(_("Impossible de supprimer la cat&eacute;gorie de mots-cl&eacute;"));
 
   return $ok;
 } // end function catDelete()
@@ -204,7 +209,7 @@
   }
   else
   {
-    $return ="<h3>". _("Sans catégorie"). "</h3>\n";
+    $return ="<h3>". _("Sans cat&eacute;gorie"). "</h3>\n";
   }
 
   $return .= "<ul>\n";
@@ -212,20 +217,29 @@
   $res = $db->query("SELECT tags.*, COUNT(event_id) AS n FROM tags LEFT JOIN tags_events ON tags.id=tag_id WHERE category_id='{$id}' GROUP BY tags.id ORDER BY tags.name");
   while ($tag = $db->fetchObject($res))
   {
-    $return .= "  <li>". sprintf("%03s", $tag->n). " <a href=\"listevents.php?tag={$tag->name}\" title=\"". sprintf(_("Liste des événements portant le tag %s"), $tag->name). "\">{$tag->name}</a> <span class='description'>{$tag->description}</span>";
-    $return .= " - <a href='moderatetags.php?op=tagEdit&id={$tag->id}' title=\"". sprintf(_("Modifier le tag %s"), $tag->name). "\">". _("Modifier"). "</a>";
+    $return .= "  <li>". sprintf("%03s", $tag->n).
+     " <a href=\"listevents.php?tag={$tag->name}\" title=\"".
+     sprintf(_("Liste des &eacute;v&eacute;nements portant le mot-cl&eacute; %s"), $tag->name).
+     "\">{$tag->name}</a> <span class='description'>{$tag->description}</span>";
+    $return .= " - <a href='moderatetags.php?op=tagEdit&id={$tag->id}' title=\"".
+     sprintf(_("Modifier le mot-cl&eacute; %s"), $tag->name). "\">". _("Modifier"). "</a>";
     if ($tag->n==0)
-      $return .= " - <a href='moderatetags.php?op=tagDel&id={$tag->id}' title=\"". sprintf(_("Supprimer le tag %s"), $tag->name). "\">". _("Supprimer"). "</a>";
+      $return .= " - <a href='moderatetags.php?op=tagDel&id={$tag->id}' title=\"".
+       sprintf(_("Supprimer le mot-cl&eacute; %s"), $tag->name). "\">". _("Supprimer"). "</a>";
     else
-      $return .= " - <a href='moderatetags.php?op=tagTr&id={$tag->id}' title=\"". sprintf(_("Transférer le tag %s vers un autre tag"), $tag->name). "\">". _("Transférer"). "</a>";
+      $return .= " - <a href='moderatetags.php?op=tagTr&id={$tag->id}' title=\"".
+       sprintf(_("Transf&eacute;rer le mot-cl&eacute; %s vers un autre mot-cl&eacute;"), $tag->name).
+       "\">". _("Transf&eacute;rer"). "</a>";
     $return .= "</li>\n";
   } // end while
 
-  if ($id>0) $return .= "<li><a href='moderatetags.php?op=tagNew&id={$tagCat->id}' title=\"". sprintf(_("Nouveau tag dans la catégorie %s"), $tagCat->name). "\">". _("Nouveau tag"). "</a></li>";
+  if ($id>0) $return .= "<li><a href='moderatetags.php?op=tagNew&id=".
+   "{$tagCat->id}' title=\"". sprintf(_("Nouveau mot-cl&eacute; dans la cat&eacute;gorie %s"),
+   $tagCat->name). "\">". _("Nouveau mot-cl&eacute;"). "</a></li>";
   $return .= "</ul>\n";
 
-  if ($id>0) $return .= "<a href='moderatetags.php?op=catEdit&id={$tagCat->id}' title=\"". sprintf(_("Modifier la catégorie %s"), $tagCat->name). "\">". _("Modifier"). "</a>";
-  if ($db->numRows($res)==0) $return .= " - <a href='moderatetags.php?op=catDel&id={$tagCat->id}' title=\"". sprintf(_("Supprimer la catégorie %s"), $tagCat->name). "\">". _("Supprimer"). "</a>";
+  if ($id>0) $return .= "<a href='moderatetags.php?op=catEdit&id={$tagCat->id}' title=\"". sprintf(_("Modifier la cat&eacute;gorie %s"), $tagCat->name). "\">". _("Modifier"). "</a>";
+  if ($db->numRows($res)==0) $return .= " - <a href='moderatetags.php?op=catDel&id={$tagCat->id}' title=\"". sprintf(_("Supprimer la cat&eacute;gorie %s"), $tagCat->name). "\">". _("Supprimer"). "</a>";
 
   $db->freeResult($res);
 
@@ -242,7 +256,7 @@
   $ret = $db->query ("SELECT * FROM tags_categories");
   if ($ret == FALSE)
   {
-    error ("Erreur lors de la recherche des catégories de tags");
+    error ("Erreur lors de la recherche des cat&eacute;gories de mots-cl&eacute;");
     put_footer();
     exit;
   }
@@ -285,9 +299,9 @@
   } // end else
 
   $return .= "<table>";
-  $return .= "<tr><th colspan='2'>". _("Édition d'un tag"). "</th></tr>\n";
-  $return .= "<tr><th>". _("Intitulé*"). "</th> <td><input type=\"text\" name=\"tag[name]\" value=\"{$tag['name']}\" size='40' /></td></tr>\n";
-  $return .= "<tr><th>". _("Catégorie*"). "</th> <td>". selectTagCategoryHTML($tag['category_id'], "tag[category_id]"). "</td></tr>\n";
+  $return .= "<tr><th colspan='2'>". _("Édition d'un mot-cl&eacute;"). "</th></tr>\n";
+  $return .= "<tr><th>". _("Intitul&eacute;*"). "</th> <td><input type=\"text\" name=\"tag[name]\" value=\"{$tag['name']}\" size='40' /></td></tr>\n";
+  $return .= "<tr><th>". _("Cat&eacute;gorie*"). "</th> <td>". selectTagCategoryHTML($tag['category_id'], "tag[category_id]"). "</td></tr>\n";
   $return .= "<tr><th>". _("Description"). "</th> <td><textarea name=\"tag[description]\" rows=\"4\" cols=\"70\">{$tag['description']}</textarea></td></tr>\n";
 
   $return .= "<tr><th colspan='2'><input type=\"submit\" name=\"submit\" value=\"". _("Valider"). "\" /></th></tr>\n";
@@ -306,7 +320,10 @@
   if (!is_array($tag) || !isset($tag["name"], $tag["category_id"], $tag["description"]))
     return error(_("Ne venant pas du bon formulaire"));;
   if (strlen($tag["name"])<4)
-    return error(_("Intitulé indispensable d'au moins 4 caractères"));
+    return error(_("Intitul&eacute; indispensable d'au moins 4 caract&egrave;res"));
+  if (! ereg("^[a-z0-9\-]*$", $tag["name"]))
+    return error("L'intitul&eacute; ne doit contenir que des lettres minuscules, ".
+    "des chiffres ou des tirets.");
 
   $tagCat["name"] = stripslashes(strip_tags($tag["name"]));
   $tagCat["description"] = stripslashes(strip_tags($tag["description"], "<p><b><i><br/><a><ul><li><ol>"));
@@ -315,7 +332,7 @@
   $res = $db->query("SELECT * FROM tags WHERE name LIKE ". $db->quote_smart($tag['name']). ($id>0 ? " AND id<>$id" : ""));
   if ($db->fetchObject($res))
   { // tag already exists
-    return error(sprintf(_("Le tag %s existe déjà"), $tag["name"]));
+    return error(sprintf(_("Le mot-cl&eacute; %s existe d&eacute;j&agrave;"), $tag["name"]));
   }
 
   $query = "tags SET name=". $db->quote_smart($tag['name']). ", category_id=". $db->quote_smart($tag['category_id']). ", description=". $db->quote_smart($tag['description']);
@@ -328,11 +345,11 @@
 
 function tagDelConfirmFormHTML($id)
 {
-  if ($id==0) return error(_("Tag non sélectionné"));
+  if ($id==0) return error(_("Mot-cl&eacute; non s&eacute;lectionn&eacute;"));
 
   global $db;
   $res = $db->query("SELECT * FROM tags WHERE id='{$id}'");
-  if (! $tag = $db->fetchArray($res)) return error(_("Tag introuvable"));
+  if (! $tag = $db->fetchArray($res)) return error(_("Mot-cl&eacute; introuvable"));
   $db->freeResult($res);
 
   $return = "<form action=\"moderatetags.php\" method=\"post\" enctype=\"multipart/form-data\" name=\"tagDelConfirmForm\">\n";
@@ -340,7 +357,8 @@
 
   $return .= "<input type=\"hidden\" name=\"id\" value=\"{$tag['id']}\" />\n";
   $return .= "<input type=\"hidden\" name=\"category_id\" value=\"{$tag['category_id']}\" />\n";
-  $return .= "<p>". sprintf(_("Vous êtes sur le point de supprimer le tag %s"), "<strong>{$tag['name']}</strong>"). "</p>\n";
+  $return .= "<p>". sprintf(_("Vous êtes sur le point de supprimer le mot-cl&eacute; %s"),
+   "<strong>{$tag['name']}</strong>"). "</p>\n";
   $return .= "<p><label for=\"confirm\">". _("Confirmer la suppression"). "<input type=\"checkbox\" id=\"confirm\" name=\"confirm\" value=\"yes\" /></label></p>";
 
   $return .= "<p><input type=\"submit\" name=\"submit\" value=\"". _("Valider"). "\" /></p>\n";
@@ -356,7 +374,7 @@
   if (!isset($_POST["id"], $_POST["category_id"]))
     return error(_("Ne venant pas du bon formulaire"));;
   if (!isset($_POST["confirm"]) || $_POST["confirm"]!="yes")
-    return error(_("Supression non confirmée"));
+    return error(_("Supression non confirm&eacute;e"));
 
   // Find tag
   $res = $db->query("SELECT * FROM tags WHERE id=". $db->quote_smart($_POST['id']));
@@ -371,14 +389,14 @@
   if ($db->fetchObject($res))
   { // tag already exists
     $db->freeresult($res);
-    return error(sprintf(_("Le tag %s est utilisé"), $tag["name"]));
+    return error(sprintf(_("Le mot-cl&eacute; %s est utilis&eacute;"), $tag["name"]));
   }
 
   $query = "DELETE FROM tags WHERE id=". $db->quote_smart($tag['id']);
   if ($ok = $db->query($query))
-    echo "<p>". _("Tag supprimé")."</p>\n";
+    echo "<p>". _("Mot-cl&eacute; supprim&eacute;")."</p>\n";
   else
-    error(_("Impossible de supprimer le tag"));
+    error(_("Impossible de supprimer le mot-cl&eacute;"));
 
   return $ok;
 }
@@ -394,7 +412,7 @@
   $ret = $db->query ("SELECT tags.id AS id, tags.name AS tag, tags.description AS tag_description, tags_categories.id AS category_id, tags_categories.name AS category, tags_categories.description as description FROM tags LEFT JOIN tags_categories ON tags_categories.id=category_id GROUP BY category_id, tags.id ORDER BY tags_categories.name, tags.name");
   if ($ret == FALSE)
   {
-    error (_("Erreur lors de la recherche des tags"));
+    error (_("Erreur lors de la recherche des mots-cl&eacute;"));
     put_footer();
     exit;
   }
@@ -419,13 +437,13 @@
 
 function tagTransferFormHTML($id)
 {
-  if ($id==0) return error(_("Tag non sélectionné"));
+  if ($id==0) return error(_("Mot-cl&eacute; non s&eacute;lectionn&eacute;"));
 
   global $db;
 
   // find tag
   $res = $db->query("SELECT * FROM tags WHERE id='{$id}'");
-  if (! $tag = $db->fetchArray($res)) return error(_("Tag introuvable"));
+  if (! $tag = $db->fetchArray($res)) return error(_("Mot-cl&eacute; introuvable"));
   $db->freeResult($res);
 
   // How many events with this tag
@@ -438,9 +456,9 @@
   $return .= "<input type=\"hidden\" name=\"id\" value=\"{$tag['id']}\" />\n";
   $return .= "<input type=\"hidden\" name=\"category_id\" value=\"{$tag['category_id']}\" />\n";
 
-  $return .= "<p>". sprintf(_("Vous souhaitez retirer le tag %s des %s événements"), $tag['name'], $tagevent);
+  $return .= "<p>". sprintf(_("Vous souhaitez retirer le mot-cl&eacute; %s des %s &eacute;v&eacute;nements"), $tag['name'], $tagevent);
 
-  $return .= "<br />". _("et les marquer avec le nouveau tag*"). " ". selectTagHTML($id, "tag_id"). "</p>\n";
+  $return .= "<br />". _("et les marquer avec le nouveau mot-cl&eacute;*"). " ". selectTagHTML($id, "tag_id"). "</p>\n";
 
   $return .= "<p><label for=\"confirm\">". _("Confirmer le transfert"). "<input type=\"checkbox\" id=\"confirm\" name=\"confirm\" value=\"yes\" /></label></p>";
 
@@ -455,18 +473,18 @@
 // and mark with $id_to tag
 function tagTransfer($id_from, $id_to)
 {
-  if ($id_from==0 || $id_to==0) return error(_("Tag non sélectionné"));
+  if ($id_from==0 || $id_to==0) return error(_("Mot-cl&eacute; non s&eacute;lectionn&eacute;"));
 
   global $db;
 
   // find from tag
   $res = $db->query("SELECT * FROM tags WHERE id='{$id_from}'");
-  if (! $tag_from = $db->fetchObject($res)) return error(_("Tag introuvable"));
+  if (! $tag_from = $db->fetchObject($res)) return error(_("Mot-cl&eacute; introuvable"));
   $db->freeResult($res);
 
   // find to tag
   $res = $db->query("SELECT * FROM tags WHERE id='{$id_to}'");
-  if (! $tag_to = $db->fetchObject($res)) return error(_("Tag introuvable"));
+  if (! $tag_to = $db->fetchObject($res)) return error(_("Mot-cl&eacute; introuvable"));
   $db->freeResult($res);
 
   // select events
@@ -619,7 +637,9 @@
 
 } // end switch display
 
-if ($op!="" && $op!="catList") echo "<p><a href=\"moderatetags.php\">". _("Liste des catégories de tags"). "</a></p>\n";
+if ($op!="" && $op!="catList")
+  echo "<p><a href=\"moderatetags.php\">".
+   _("Liste des cat&eacute;gories de mots-cl&eacute;"). "</a></p>\n";
 
 put_footer();
 


Plus d'informations sur la liste de diffusion Devel