Archive for janvier 2006
Boite SqlRepeat
La boite SqlQuery automatise l’affichage du résultat d’une requête SQL dans une table à l’aide de l’objet XTable. La nouvelle boite SqlRepeat permet également d’afficher le résultat d’une requête SQL, mais offre plus de souplesse en ce qui concerne la présentation. Il est ainsi possible de définir :
- le code html a afficher avant le résultat de la requête,
- le code html servant de modèle pour formatter chaque ligne du résultat de la requête,
- le code html à générer à la suite du résultat de la requête.
Exemple de paramétrage pour un fichier CSV :
- Connection string : {odbc};Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=~/data/
- Sql query :
SELECT affix, givenName, legalName, telephone, email, addressLine1, postalCode, municipality FROM [adresses.csv] ORDER BY postalCode DESC, legalName ASC, givenName ASC
- Header section : <ol>
- Template for each item : <h4>{0} {1} {2}</h4><ul><li>téléphone : {3}</li><li><a href=’mailto:{4}’>{4}</a></li><li>{5} – {6} {7}</li></ul>
- Footer section : </ol>
Dans le cas d’un fichier Excel, la paramétrage de la connexion et de la requête devraient être effectué de la façon suivante :
- Connection string : {odbc};Driver={Microsoft Excel Driver (*.xls)};Dbq=~/data/adresses.xls
- Sql query :
SELECT affix, givenName, legalName, telephone, email, addressLine1, postalCode, municipality FROM [Sheet1$] ORDER BY postalCode DESC, legalName ASC, givenName ASC
Mise en cache côté serveur
Révision de la durée de mise en cache pour l’ensemble des boites des toolbox Admin et Classic. Jusqu’à présent, celle-ci était généralement définie à -1 (pas de mise en cache) ou à 60 secondes. Ces valeurs ont été augmentées et établies selon les règles suivantes :
- Xmlfeed et Blogmarks sont paramétrées par défaut à 10800 secondes (3 heures) pour éviter de trop solliciter les serveurs hébergeant les fils atom ou rss,
- les boites de la toolbox Admin sont initialisées à -1,
- les boites contenant un formulaire sont initialisées à -1 (sinon on se fait avoir et on a l’impression que ça ne marche pas :),
- les boites dont le contenu dépend de la page en cours (Breadcrumbs, FileDir, ScreenInfo, SiteMenu) sont initialisées à -1,
- toutes les autres boites passent à 600 secondes (10 minutes).
Réalisation du script 20060128_update.sql pour mettre à jour les tables qc_BoxTypes (paramétrage par défaut) et qc_Boxes (re-paramétrage des boites déjà existantes).
Google Sitemap et mise à jour fichiers
Modification des modules Aspxfile, Flashfile, Htmlfile, Image, Svgfile, Textfile, Xmlfeed et Xmlfile pour tester la date de dernière mise à jour du fichier (ou celle de sa création).
Lorsque celle-ci est supérieure d’une heure à la date de dernière mise à jour de l’écran, la date de mise à jour de l’écran est actualisée puis le fichier sitemap destiné à Google est regénéré. Cela permet d’éviter que la mise à jour des pages dont le contenu est basé sur des fichiers « externes » ne soit jamais signalée à Google.
Boite Blogmarks
Création d’une nouvelle boite pour simplifier l’affichage du fil atom produit par Blogmarks. Le module de configuration de cette boite permet de définir les éléments suivants :
- nom de l’utilisateur,
- liste des tags séparés par des espaces,
- nombre d’entrées à afficher.
Le fil atom renvoyé par Blogmarks est ensuite transformé en code html par application du fichier feed-blogmarks.xslt
HTTP 301 – Moved Permanently
Prise en compte des paramètres « permanentRedirectFrom » et « permanentRedirectTo » dans le web.config pour gérer une redirection permanente. Cela permet par exemple de changer le nom de domaine d’un site (et d’en informer correctement les moteurs de recherche) :
- permanentRedirectFrom = http://www.monsite.info/
- permanentRedirectTo = http://www.mon-site.com/
Cela peut aussi servir à unifier les urls pour éviter d’être référencé 2 fois (et donc de « gaspiller » son pagerank) :
- permanentRedirectFrom = http://monsite.info/
- permanentRedirectTo = http://www.monsite.info/
Références :
-
The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs.
- Extrait du code pour gérer le Moved Permanently en ASP.NET
HTTP 301 – Moved Permanently
<script runat="server">
private void Page_Load(object sender, System.EventArgs e) {
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", "http://www.new-url.com");
}
</script>
(Publié à l’origine sur http://www.bigbold.com/snippets/posts/show/1295)
Comment cibler les publicités AdSense
Il est possible d’indiquer à Google quelle sont les parties de la page dont on souhaite mettre le contenu en avant. Cela permet de cibler les annonces affichées sur le site en fonction de ce contenu.
Pour cela, il suffit d’encadrer le contenu « intéressant » par :
<!-- google_ad_section_start --> .... <!-- google_ad_section_end -->
Il est aussi possible de « masquer » du contenu pour éviter d’avoir des annonces relatives à celui-ci :
<!-- google_ad_section_start(weight=ignore) --> .... <!-- google_ad_section_end -->
Blogmarks to Html conversion
Ce fichier permet de transformer le fil atom de Blogmarks (par exemple http://api.blogmarks.net/user/ms_michel) en code html afin de pouvoir l’intégrer à une page web.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:atom="http://purl.org/atom/ns#draft-ietf-atompub-format-05" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dc="http://purl.org/dc/elements/1.1/">
<xsl:output method="html" />
<xsl:template match="/">
<xsl:apply-templates select="/atom:feed/atom:head" mode="before" />
<xsl:apply-templates select="/atom:feed/atom:entry" />
<xsl:apply-templates select="/atom:feed/atom:head" mode="after" />
</xsl:template>
<xsl:template match="atom:feed/atom:head" mode="before" >
<!-- <h3><xsl:value-of select="atom:title" /></h3> -->
</xsl:template>
<xsl:template match="atom:feed/atom:head" mode="after">
<p><a href="{atom:link[@rel='alternate']/@href}"><img src="http://blogmarks.net/img/88x31_neg.png" alt="blogmarks.net" /></a></p>
</xsl:template>
<xsl:template match="atom:feed/atom:entry">
<div>
<xsl:choose>
<xsl:when test="position() mod 2 = 1">
<xsl:attribute name="class">bm_blogmarks bm_odd</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">bm_blogmarks bm_even</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<a href="{atom:link[@rel='related']/@href}"><img src="{atom:link[@rel='image']/@href}" alt="" /></a>
<h4><a href="{atom:link[@rel='related']/@href}"><xsl:value-of select="atom:title" /></a></h4>
<p><xsl:value-of select="atom:summary" disable-output-escaping="yes" /></p>
<p class="blogmarks-tags">
<xsl:value-of select="substring(atom:published, 0, 11)" />
<xsl:if test="atom:category">
<xsl:for-each select="atom:category">
<xsl:text> - </xsl:text><a href="{@term}{@sheme}"><xsl:value-of select="@label" /></a>
</xsl:for-each>
</xsl:if>
</p>
</div>
</xsl:template>
</xsl:stylesheet>
Le code html généré est inspiré par celui de Hot Links. Il peut ensuite être présenté grâce à la feuille de style CSS suivante :
.bm_blogmarks {
margin: 10px auto;
padding: 1%;
background-color: #f5f5f5;
border: 1px solid #d9d9d9;
width: 97%;
overflow:auto;
}
.bm_even {
background-color: #fcfcfc;
}
.bm_blogmarks h4 {
margin-top: 0;
}
.bm_blogmarks p.bm_tags {
margin-bottom: 0;
display: block;
clear: left;
}
.bm_blogmarks img {
margin: 0 0px 5px 10px;
float: right;
border: 0;
clear: none;
width: 144px;
height: 107px;
}
.bm_even img {
margin: 0 10px 5px 0px;
float: left;
}
(Publié à l’origine sur http://www.bigbold.com/snippets/posts/show/1206)
RDF to Html conversion
Ce fichier permet de transformer un fil RDF en code html afin de pouvoir l’intégrer à une page web.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:foo="http://purl.org/rss/1.0/">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:apply-templates select="/rdf:RDF/foo:channel"/>
</xsl:template>
<xsl:template match="/rdf:RDF/foo:channel">
<h3><xsl:value-of select="foo:title"/></h3>
<p><xsl:value-of select="foo:description"/></p>
<ul>
<xsl:apply-templates select="/rdf:RDF/foo:item"/>
</ul>
</xsl:template>
<xsl:template match="/rdf:RDF/foo:item">
<li>
<a href="{foo:link}" title="{substring(dc:date, 0, 11)}"><xsl:value-of select="foo:title"/></a>
<p><xsl:value-of select="foo:description" disable-output-escaping="yes" /></p>
</li>
</xsl:template>
</xsl:stylesheet>
(Publié à l’origine sur http://www.bigbold.com/snippets/posts/show/1164)
RSS to Html conversion
Ce fichier permet de transformer un fil RSS (version 0.9x ou 2.0) en code html afin de pouvoir l’intégrer à une page web.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:apply-templates select="/rss/channel"/>
</xsl:template>
<xsl:template match="/rss/channel">
<h3><xsl:value-of select="title"/></h3>
<p><xsl:value-of select="description"/></p>
<ul>
<xsl:apply-templates select="item"/>
</ul>
</xsl:template>
<xsl:template match="/rss/channel/item">
<li>
<a href="{link}" title="{substring(pubDate, 0, 11)}"><xsl:value-of select="title"/></a>
<p><xsl:value-of select="description" disable-output-escaping="yes" /></p>
</li>
</xsl:template>
</xsl:stylesheet>
(Publié à l’origine sur http://www.bigbold.com/snippets/posts/show/1163)
Vous devez être connecté pour poster un commentaire.