none
Problème d'accents RRS feed

  • Question

  • Bonjour,

    J'ai un problème d'accent (il m'affiche un carré ou un ? suivant le navigateur) seulement sur les titres de billet de blog quand je les affiches par catégorie. Pour le moment c'est le endroit où j'ai repéré ce bug. Est-ce que quelqu'un aurait une solution ?

    Merci d'avance.

    • Déplacé Hengzhe Li mardi 21 février 2012 05:44 merge forum (Origine :Développement Sharepoint 2010)
    mercredi 16 novembre 2011 16:23

Réponses

  • J'ai trouvé la solution, le problème ne vient pas <GetVar Scope="Request" Name="Name" /> qui lie depuis la QueryString, mais du lien qui rensigne la QueryString (en d'autres termes, la valeur du paramètre Name est erronée, pour "Catégorie 2" on doit avoir "Cat%c3%a9gorie%202" et non pas "Cat%e9gorie%202") :

    Pour modifier ce lien, il faut aller dans le répertoire des XSL et modifier le fichier "Blog.xsl" qui définit la facçon dont le rendu du champ "CategoryWithLink"

    1. Chercher la ligne suivante xsl:template name="FieldRef_Blog_CategoryWithLink_Computed_Body"
    2. Ce qui nous concerne, c'est le cas où TemplateType='303' et BaseViewID='0' ce qui est vrai pour le test($thisNode/../../@BaseViewID='0' and $thisNode/../../@TemplateType='303' and $MasterVersion = 4)
    3. Dedans, remplacer
    <a class="static menu-item" href="{$HttpVDir}/{$thisNode/../@resource.wss.lists_Folder}/{$thisNode/../@resource.wss.blogcategories_Folder}/Category.aspx?CategoryId={$thisNode/@ID}&amp;Name={$CategoryTitle}" id="blgcat{$thisNode/@ID}">
    	      <span class="additional-backgroud"><span class="menu-item-text"><xsl:value-of select="$thisNode/@Title"/></span></span>
    </a>

    par

    <a>
              <xsl:attribute name="href">
                <xsl:value-of select="$HttpVDir"/>
                <xsl:text>/</xsl:text>
                <xsl:value-of select="$thisNode/../@resource.wss.lists_Folder"/>
                <xsl:text>/</xsl:text>
                <xsl:value-of select="$thisNode/../@resource.wss.blogcategories_Folder"/>
                <xsl:text>/Category.aspx?CategoryId=</xsl:text>
                <xsl:value-of select="ddwrt:UrlEncode($thisNode/@ID)"/>
                <xsl:text>&amp;Name=</xsl:text>
                <xsl:value-of select="ddwrt:UrlEncode($thisNode/@Title)"/>
              </xsl:attribute>
              <xsl:attribute name="id">
                <xsl:text>blgcat</xsl:text>
                <xsl:value-of select="$thisNode/@ID"/>
              </xsl:attribute>
              <xsl:value-of select="$thisNode/@Title"/>
    </a>

    Et le tour est joué :)
    vendredi 8 mars 2013 16:58

Toutes les réponses

  • Bonjour,

    Est ce que tu testes avec IE6 ?

    Pour remédier à ce problème, il faut développer un HttpModule qui va modifier les caractères incompréhensibles dans le html de la page.

     

    Cordialement


    Consultant .Net/SharePoint
    jeudi 17 novembre 2011 09:05
  • Bonjour,

    merci de votre réponse. Les tests sont effectués avec plusieurs navigateurs avec le même résultat. J'ai oublié de précisé que j’utilisais SharePoint Foundation.

    Par contre, il n'y aurait pas une solution car développer un module juste pour un titre cela me semble un peu fastidieux.

    jeudi 17 novembre 2011 11:08
  • Ah d'accord, là c'est un problème d'encodage rien à voir avec ce que je te disais avant !

    Essaye de changer l'encodage de ton navigateur et voir ce que ça donne.


    Consultant .Net/SharePoint Winwise
    jeudi 17 novembre 2011 13:49
  • J'avais déjà essayé tout les encodages disponibles sous firefox et ie rien à faire.
    jeudi 17 novembre 2011 14:19
  • Personne ?
    lundi 21 novembre 2011 15:09
  • C'est un problème connu chez microsoft. Il est supposé être corrigé dans le CU April 2012. Pour l'instant, il n'est pas recommandé de l'installé (problémes avec ce hotfix)

    Je te recommande en attendant de faire des manip jquery sur cette page (ou ma masterpage).

    sinon, trouve des synonymes à tes catégories :-)

    Merci

    mardi 29 mai 2012 11:32
  • Ce que j'ai pu constater au sujet de ce bug, c'est que ça vient de la vue (BaseViewID="8") du schema.xml de la liste Posts du modèle de site BLOG se trouvant dans "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\SiteTemplates\Blog\Lists\Posts"

    Dans la section ViewHeader de la vue (BaseViewID="8"), on trouve ce qui suit :

    <ViewHeader><HTML><![CDATA[<h3 class="ms-CategoryTitleMonth">$Resources:core,blog_posts_category; ]]></HTML>
              <GetVar Scope="Request" Name="Name" /><HTML><![CDATA[</h3>]]></HTML>
    </ViewHeader>

    C'est lors de la récupération de <GetVar Scope="Request" Name="Name" /> (la valeur du paramètre Name de la QueryString) que la valeur devient mal encodée (d'après ce que j'ai compris).

    Je suis à la recherche de solution, si quelqu'un en a trouvé une, merci de me l'indiquer.

     

    vendredi 8 mars 2013 15:16
  • J'ai trouvé la solution, le problème ne vient pas <GetVar Scope="Request" Name="Name" /> qui lie depuis la QueryString, mais du lien qui rensigne la QueryString (en d'autres termes, la valeur du paramètre Name est erronée, pour "Catégorie 2" on doit avoir "Cat%c3%a9gorie%202" et non pas "Cat%e9gorie%202") :

    Pour modifier ce lien, il faut aller dans le répertoire des XSL et modifier le fichier "Blog.xsl" qui définit la facçon dont le rendu du champ "CategoryWithLink"

    1. Chercher la ligne suivante xsl:template name="FieldRef_Blog_CategoryWithLink_Computed_Body"
    2. Ce qui nous concerne, c'est le cas où TemplateType='303' et BaseViewID='0' ce qui est vrai pour le test($thisNode/../../@BaseViewID='0' and $thisNode/../../@TemplateType='303' and $MasterVersion = 4)
    3. Dedans, remplacer
    <a class="static menu-item" href="{$HttpVDir}/{$thisNode/../@resource.wss.lists_Folder}/{$thisNode/../@resource.wss.blogcategories_Folder}/Category.aspx?CategoryId={$thisNode/@ID}&amp;Name={$CategoryTitle}" id="blgcat{$thisNode/@ID}">
    	      <span class="additional-backgroud"><span class="menu-item-text"><xsl:value-of select="$thisNode/@Title"/></span></span>
    </a>

    par

    <a>
              <xsl:attribute name="href">
                <xsl:value-of select="$HttpVDir"/>
                <xsl:text>/</xsl:text>
                <xsl:value-of select="$thisNode/../@resource.wss.lists_Folder"/>
                <xsl:text>/</xsl:text>
                <xsl:value-of select="$thisNode/../@resource.wss.blogcategories_Folder"/>
                <xsl:text>/Category.aspx?CategoryId=</xsl:text>
                <xsl:value-of select="ddwrt:UrlEncode($thisNode/@ID)"/>
                <xsl:text>&amp;Name=</xsl:text>
                <xsl:value-of select="ddwrt:UrlEncode($thisNode/@Title)"/>
              </xsl:attribute>
              <xsl:attribute name="id">
                <xsl:text>blgcat</xsl:text>
                <xsl:value-of select="$thisNode/@ID"/>
              </xsl:attribute>
              <xsl:value-of select="$thisNode/@Title"/>
    </a>

    Et le tour est joué :)
    vendredi 8 mars 2013 16:58