none
Utiliser des "expressions builder" custom dans SharePoint 2010 RRS feed

  • Question

  • Bonjour,

    J'aimerais utiliser un fournisseur de ressources personnalisé (ResourceProvider) dans un fichier de définition de site SharePoint 2010 (onet.xml). 

    Pour cela, j'ai développé un fournisseur de ressources custom (dont le but est d'utiliser des ressources stockées en base de données) et une expression personnalisé (expressionBuilder). J'ai mis à jour le fichier de configuration de l'administration centrale et celui de la webapp sur laquelle je vais créer ma collection de sites à partir de ma définition de site. Voici les deux sections que j'ai modifiées:

    <globalization fileEncoding="utf-8" uiCulture="auto" culture="auto" resourceProviderFactoryType="CustomResourceProvider.CustomResourceProviderFactory, CustomResourceProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxx" />
    <expressionBuilders>
       <remove expressionPrefix="Resources" />
       <add expressionPrefix="SatelliteResources" type="Microsoft.SharePoint.Search.SPSatelliteResourceExpressionBuilder, Microsoft.SharePoint.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add expressionPrefix="SPUrl" type="Microsoft.SharePoint.Publishing.WebControls.SPUrlExpressionBuilder, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add expressionPrefix="Resources" type="Microsoft.SharePoint.Search.SPSatelliteResourceExpressionBuilder, Microsoft.SharePoint.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add expressionPrefix="SPHtmlEncodedResources" type="Microsoft.SharePoint.Search.SPHtmlEncodedSatelliteResourceExpressionBuilder, Microsoft.SharePoint.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add expressionPrefix="SPSimpleFormattingEncodedResources" type="Microsoft.SharePoint.Search.SPSimpleFormattingEncodedSatelliteResourceExpressionBuilder, Microsoft.SharePoint.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add expressionPrefix="ExtResources" type="CustomResourceProvider.CustomResourceExpressionBuilder, CustomResourceProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxx"/>
    </expressionBuilders>

    Dans le fichier de ma définition de site (onet.xml), j'ai essayé d'utiliser mon ExpressionBuilder personnalisé pour le titre de la page d'accueil de mon site (provisionnée à l'aide d'un module):

      <Modules>
        <Module Name="myModule" Url="$Resources:osrvcore,List_Pages_UrlName;" Path="">
          <File Url="default.aspx" Type="GhostableInLibrary" >
            <Property Name="Title" Value="$ExtResources:myresourcefile,myresourcekey;" />
          </File>
        </Module>
      </Modules>

    Cependant, mon expression 

    $ExtResources:myresourcefile,myresourcekey;

    n'est pas évaluée et est considérée comme du texte.. De plus, l'expression "$Resources:..." (comme le souligne un article trouvé sur SharePoint Mystery: http://sharepointmystery.com/2011/11/20/localizing-application-pages-without-using-app_globalresources/ est prise en charge directement par SharePoint et se rapproche de la syntaxe utilisé par .Net v2.0. A priori, il "suffirait" de surcharger le parser SharePoint.

    Est-ce-que quelqu'un a déjà eu le cas ? 

    Merci d'avance



    lundi 9 juillet 2012 13:52