locked
Comment trouver le code XSLT d'une liste ou d'une librairie - SharePoint 2010 ? RRS feed

  • Question

  • Bonjour,

    j'essaie de modifier l'affichage de la page de résultat d'une recherche.

    Je voudrais afficher le contenu d'un champ "lookup" et pouvoir cliquer dessus.

    Quand je cherche un mot dans le contenu des documents d'une librairie de documents, je voudrais  afficher le nom de la personne associée à ce document et pouvoir cliquer dessus pour afficher les caractéristiques de cette personne dans une fenêtre "popup".

    J'ai déjà la première partie en modifiant le code XSLT de "XSL Editor" de  "Search Core Results"

    de la page "Search Result" :

     

    2_CV du numéro_2.docx

    XXXX_Sofiane

    Authors: Hhhhh, Fabrice Date: 3/10/2012

    http://lusrv:18888/RH_DOCUMENTS/2_CV du numéro_2.docx

     

    Spécification de l’application « Recrutement »

    YYYY_Sébastien

    La page d’accueil du site … Ces 2 menus permettront à tout moment basculer vers la vue CV/CANDIDAT … Ajout via import du fichier CV dans SP … L’ajout d’un nouveau candidat via upload de son CV

    Authors: Hhhhhh, Fabrice, Lllllll, PhilippeDate: 1/07/2012Size: 2MB

     

    (désolée, je ne peux pas insérer d'image)

     

    Le problème est que quand je clique sur le nom de la personne (sous le titre du document), je n'arrive pas à ouvrir la fenêtre "popup" avec les caractéristiques de la personne (colonnes de ma liste "Personne").

    J'ai le code que je dois avoir dans ma donnée "href", mais je ne sais pas à quel  paramètre cela correspond.

    Code :

     <a onclick="OpenPopUpPage('http://lusrv:18888/_layouts/listform.aspx?PageType=4&ListId={A847D37B-9251-4C62-8DD2-6B2B56484F3E}&ID=2&RootFolder=*', RefreshPage); return false;"

      href="http://lusrv:18888/_layouts/listform.aspx?PageType=4&ListId={A847D37B-9251-4C62-8DD2-6B2B56484F3E}&ID=2&RootFolder=*">XXXXX_Sofiane

      </a>

    Je voudrais savoir quel paramètre, je dois mettre dans  "OpenPopUpPage"  et "href" pour obtenir les  liens "http …." ci-dessus ?

    J'ai été voir dans SharePoint Designer 2010, mais je n'ai pas trouvé

    D'avance Merci


    MLZIM


    • Modifié mlzim lundi 5 novembre 2012 09:17
    vendredi 12 octobre 2012 12:25

Réponses

  • Bonjour,

    Avec un peu de retard (j'ai fait autre chose), je viens vous donner la solution que j'ai trouvé.

    Comment afficher l'ID du candidat sous forme de lien "Cliquable" dans le "résultat de la recherche".

    Finalement, après avoir cherché beaucoup de solutions, j'ai enfin trouvé la bonne :-) (pour moi)

    - j'ai créé une "New Managed Property" : "CANIdCandidat"

    - à laquelle j'ai affecté toutes les "Crawled Property" qui correspondaient : id_candidat(Text), ows_DOC_Id_Candidat_x003a_ID(Text), ows_id_candidat(Text)

    - puis je l'ai ajouté dans "Fetched Properties" de "Display Properties" du Webpart "Search Core Results"

    .....

    <Column Name="RhIdCandidat"/>
    <Column Name="CANIdCandidat"/>
    </Columns>

    - et dans "XSL Editor" de "Display Properties"

    - j'arrive donc a récupérer l'ID du Candidat de la liste "RH_Candidat" et je peux donc rediriger vers les infos du candidat, lorsque l'on clique sur son "Nom_Prenom"

    Code :

    <xsl:param name="RHIdCandidat" />
    <xsl:param name="CANIdCandidat" />
    
    ...
    
     <li class="srch-IdCand">
                    <a onclick="OpenPopUpPage('http://XXXX/Lists/RH_CANDIDATS/DispForm.aspx?RootFolder=*&amp;ID=canidcandidat', RefreshPage); return false;"
                       href="OpenPopUpPage('http://XXXX/Lists/RH_CANDIDATS/DispForm.aspx?RootFolder=*&amp;ID=canidcandidat" id="{canidcandidat}" title="{rhidcandidat}">
                      <xsl:choose>
                        <xsl:when test="hithighlightedproperties/HHRHIdCandidat[. != '']">
                          <xsl:call-template name="HitHighlighting">
                            <xsl:with-param name="hh" select="hithighlightedproperties/HHRHIdCandidat" />
                          </xsl:call-template>
                        </xsl:when>
                        <xsl:otherwise>
                          <xsl:value-of select="rhidcandidat"/>
                        </xsl:otherwise>
                      </xsl:choose>
                    </a>
                  </li>
    
    
    ....
    
    
     <div class="srch-IdCand">
                <xsl:choose>
                <xsl:when test="substring($url,1,5) = 'file:' and $IsDesignMode = 'False'">
                  <xsl:text     disable-output-escaping="yes">&lt;a href="</xsl:text>
                  <xsl:value-of disable-output-escaping="yes" select="srwrt:HtmlAttributeEncode((concat(concat('http://XXXX/Lists/RH_CANDIDATS/DispForm.aspx','?RootFolder=*&amp;ID='), $id)))" />
                  <xsl:text     disable-output-escaping="yes">" id="</xsl:text>
                  <xsl:value-of disable-output-escaping="yes" select="srwrt:HtmlAttributeEncode(canidcandidat)" />
                  <xsl:text     disable-output-escaping="yes">" rhidcandidat="</xsl:text>
                  <xsl:value-of disable-output-escaping="yes" select="srwrt:HtmlAttributeEncode(rhidcandidat)" />
                  <xsl:text     disable-output-escaping="yes">"&gt;</xsl:text>
                  <xsl:choose>
                    <xsl:when test="hithighlightedproperties/HHRHIdCandidat[. != '']">
                      <xsl:call-template name="HitHighlighting">
                        <xsl:with-param name="hh" select="hithighlightedproperties/HHRHIdCandidat" />
                      </xsl:call-template>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="srwrt:HtmlEncode(rhidcandidat)"/>
                    </xsl:otherwise>
                  </xsl:choose>
                  <xsl:text disable-output-escaping="yes">&lt;/a&gt;</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                  <a id="{canidcandidat}">
                    <xsl:attribute name="href">
                      <xsl:value-of select="(concat(concat('http://XXXX/Lists/RH_CANDIDATS/DispForm.aspx','?RootFolder=*&amp;ID='), canidcandidat))"/>
                    </xsl:attribute>
                    <xsl:attribute name="rhidcandidat">
                      <xsl:value-of select="rhidcandidat"/>
                    </xsl:attribute>
                    <xsl:choose>
                      <xsl:when test="hithighlightedproperties/HHRHIdCandidat[. != '']">
                        <xsl:call-template name="HitHighlighting">
                          <xsl:with-param name="hh" select="hithighlightedproperties/HHRHIdCandidat" />
                        </xsl:call-template>
                      </xsl:when>
                      <xsl:otherwise>
                        <xsl:value-of select="rhidcandidat"/>
                      </xsl:otherwise>
                    </xsl:choose>
                  </a>
                </xsl:otherwise>
              </xsl:choose>
            </div>
    
    
    .....
    
    
    
    

    Je ne sais pas dans quelle mesure ce code est correct (il y a sans doute des choses inutiles), mais ça fonctionne.

    Maintenant quand je clique sur le nom du candidat (sous le titre du document) j'accède aux propriétés du candidats.

    Encore merci à tous

    Mlzim

    • Marqué comme réponse mlzim mercredi 31 octobre 2012 10:36
    mercredi 31 octobre 2012 10:36

Toutes les réponses

  • Merci beaucoup Florin

    Je vais étudier tout cela

    Bien à vous :-)


    MLZIM

    mercredi 17 octobre 2012 15:10
  • Bonjour,

    Avec un peu de retard (j'ai fait autre chose), je viens vous donner la solution que j'ai trouvé.

    Comment afficher l'ID du candidat sous forme de lien "Cliquable" dans le "résultat de la recherche".

    Finalement, après avoir cherché beaucoup de solutions, j'ai enfin trouvé la bonne :-) (pour moi)

    - j'ai créé une "New Managed Property" : "CANIdCandidat"

    - à laquelle j'ai affecté toutes les "Crawled Property" qui correspondaient : id_candidat(Text), ows_DOC_Id_Candidat_x003a_ID(Text), ows_id_candidat(Text)

    - puis je l'ai ajouté dans "Fetched Properties" de "Display Properties" du Webpart "Search Core Results"

    .....

    <Column Name="RhIdCandidat"/>
    <Column Name="CANIdCandidat"/>
    </Columns>

    - et dans "XSL Editor" de "Display Properties"

    - j'arrive donc a récupérer l'ID du Candidat de la liste "RH_Candidat" et je peux donc rediriger vers les infos du candidat, lorsque l'on clique sur son "Nom_Prenom"

    Code :

    <xsl:param name="RHIdCandidat" />
    <xsl:param name="CANIdCandidat" />
    
    ...
    
     <li class="srch-IdCand">
                    <a onclick="OpenPopUpPage('http://XXXX/Lists/RH_CANDIDATS/DispForm.aspx?RootFolder=*&amp;ID=canidcandidat', RefreshPage); return false;"
                       href="OpenPopUpPage('http://XXXX/Lists/RH_CANDIDATS/DispForm.aspx?RootFolder=*&amp;ID=canidcandidat" id="{canidcandidat}" title="{rhidcandidat}">
                      <xsl:choose>
                        <xsl:when test="hithighlightedproperties/HHRHIdCandidat[. != '']">
                          <xsl:call-template name="HitHighlighting">
                            <xsl:with-param name="hh" select="hithighlightedproperties/HHRHIdCandidat" />
                          </xsl:call-template>
                        </xsl:when>
                        <xsl:otherwise>
                          <xsl:value-of select="rhidcandidat"/>
                        </xsl:otherwise>
                      </xsl:choose>
                    </a>
                  </li>
    
    
    ....
    
    
     <div class="srch-IdCand">
                <xsl:choose>
                <xsl:when test="substring($url,1,5) = 'file:' and $IsDesignMode = 'False'">
                  <xsl:text     disable-output-escaping="yes">&lt;a href="</xsl:text>
                  <xsl:value-of disable-output-escaping="yes" select="srwrt:HtmlAttributeEncode((concat(concat('http://XXXX/Lists/RH_CANDIDATS/DispForm.aspx','?RootFolder=*&amp;ID='), $id)))" />
                  <xsl:text     disable-output-escaping="yes">" id="</xsl:text>
                  <xsl:value-of disable-output-escaping="yes" select="srwrt:HtmlAttributeEncode(canidcandidat)" />
                  <xsl:text     disable-output-escaping="yes">" rhidcandidat="</xsl:text>
                  <xsl:value-of disable-output-escaping="yes" select="srwrt:HtmlAttributeEncode(rhidcandidat)" />
                  <xsl:text     disable-output-escaping="yes">"&gt;</xsl:text>
                  <xsl:choose>
                    <xsl:when test="hithighlightedproperties/HHRHIdCandidat[. != '']">
                      <xsl:call-template name="HitHighlighting">
                        <xsl:with-param name="hh" select="hithighlightedproperties/HHRHIdCandidat" />
                      </xsl:call-template>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="srwrt:HtmlEncode(rhidcandidat)"/>
                    </xsl:otherwise>
                  </xsl:choose>
                  <xsl:text disable-output-escaping="yes">&lt;/a&gt;</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                  <a id="{canidcandidat}">
                    <xsl:attribute name="href">
                      <xsl:value-of select="(concat(concat('http://XXXX/Lists/RH_CANDIDATS/DispForm.aspx','?RootFolder=*&amp;ID='), canidcandidat))"/>
                    </xsl:attribute>
                    <xsl:attribute name="rhidcandidat">
                      <xsl:value-of select="rhidcandidat"/>
                    </xsl:attribute>
                    <xsl:choose>
                      <xsl:when test="hithighlightedproperties/HHRHIdCandidat[. != '']">
                        <xsl:call-template name="HitHighlighting">
                          <xsl:with-param name="hh" select="hithighlightedproperties/HHRHIdCandidat" />
                        </xsl:call-template>
                      </xsl:when>
                      <xsl:otherwise>
                        <xsl:value-of select="rhidcandidat"/>
                      </xsl:otherwise>
                    </xsl:choose>
                  </a>
                </xsl:otherwise>
              </xsl:choose>
            </div>
    
    
    .....
    
    
    
    

    Je ne sais pas dans quelle mesure ce code est correct (il y a sans doute des choses inutiles), mais ça fonctionne.

    Maintenant quand je clique sur le nom du candidat (sous le titre du document) j'accède aux propriétés du candidats.

    Encore merci à tous

    Mlzim

    • Marqué comme réponse mlzim mercredi 31 octobre 2012 10:36
    mercredi 31 octobre 2012 10:36