Tag

, , ,

Contesto:

  • SharePoint 2013
  • Publishing feature attive a livello di site collection e top level site in modo tale da gestire in maniera unificata il branding (e imporre dall’alto la mia master page)
  • Basic Search Center
  • Master Page Custom, ma esatta copia dell’originale (Seattle.master), se non fosse per l’aggiunta di qualche link custom nell’header, un logo diverso e il richiamo a un css custom

Facendo una ricerca “scopro” che SharePoint blocca l’esecuzione di Script Server Side su pagine o risorse Unghosted; una soluzione potrebbe essere quella di modificare il web.config alla riga PageParser (ci sono diversi posts al rigurado, ad esempio: Code-blocks are not allowed in this file: SharePoint 2013).

Ma, attenzione: io ho semplicemente copiato la Master Page OOTB, com’è possibile tutto ciò? E poi l’errore l’ottengo solo sul Basic Search Center…

Ebbene, le pagine del sito di ricerca vanno in override di alcuni PlaceHolder della master page, e in uno di questi, il PlaceHolderAdditionalPageHead, eseguono del codice server side per nascondere il Ribbon quando si è in DisplayMode della pagina!!!

Soluzione: cancellare il PlaceHolderAdditionalPageHead dalla
pagina in questione, in modo tale da fargli ereditare le impostazione da master page et voilà, cancellato l’errore, cancellato l’inganno!

Purtroppo la results.aspx ha altri elementi “schiantati” in pagina che, una volta corretto il Ribbon, si rompono, ma almeno ora la pagina risulta accessibile e tutto ciò che ci resta da fare è:

  • Coreggere il Tagprefix SPSWC da SPSWC in SPSSWC (essendo quest’ultimo quello utilizzato dalle ScriptWebPart in pagina):

    <%@ Register Tagprefix=”SPSWC” Namespace=”Microsoft.SharePoint.Portal.WebControls” Assembly=”Microsoft.SharePoint.Portal, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %> <%@ Register Tagprefix=”SEARCHWC” Namespace=”Microsoft.Office.Server.Search.WebControls” Assembly=”Microsoft.Office.Server.Search, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>

    In:

    <%@ Register Tagprefix=”SPSSWC” Namespace=”Microsoft.SharePoint.Portal.WebControls” Assembly=”Microsoft.SharePoint.Portal, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %> <%@ Register Tagprefix=”SEARCHWC” Namespace=”Microsoft.Office.Server.Search.WebControls” Assembly=”Microsoft.Office.Server.Search, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>

  • eliminare il doppio logo cancellando il div id=”searchIcon”

     

    Se poi, a questo punto, volessimo anche far tornare il box di ricerca nella sua posizione classica (in alto a destra), non ci resta che cancellare dalla pagina in questione anche il PlaceHolderSearchArea, in modo tale che si tornino ad ereditare le impostazioni da maser page:

     

     

     

    Happy SharePoint a tutti J.