SharePoint > Libreria pagine personalizzata e amp; PageLayout
-
05-07-2019 - |
Domanda
Ho una libreria di pagine personalizzata con un tipo di contenuto personalizzato e un layout di pagina all'interno di una definizione del sito.
Funziona come previsto. L'unica cosa che non riesco a risolvere è che se aggiorno la soluzione con page-lib, ctype, layout di pagina tramite stsadm, tutto viene aggiornato tranne il layout di pagina.
Nuovi campi nel tipo - > nessun problema Viste modificate nella pagina-lib - > nessun problema
Layout di pagina aggiornato - > ERRORE
La sezione del layout di pagina:
<!-- specific page-layout to display LKW data -->
<File Url="CustomPage.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" >
<Property Name="Title" Value="$Resources:CustomLayouts,Title;" />
<Property Name="MasterPageDescription"
Value="$Resources:cmscore,PageLayout_BlankWebPartPage_Description;" />
<Property Name="ContentType"
Value="$Resources:cmscore,contenttype_pagelayout_name;" />
<Property Name="PublishingPreviewImage"
Value="~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/BlankWebPartPage.png, ~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/BlankWebPartPage.png" />
<Property Name="PublishingAssociatedContentType"
Value=";#$Resources:FieldsCTypes,cTypeDisplayName;;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900D38AAFB8072F441984BC947D49503947;#" />
</File>
La sezione pertinente in onet.xml:
<Module Name="Home" Url="$Resources:cmscore,List_Pages_UrlName;Custom" Path="">
<File Url="Default.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE">
<Property Name="Title"
Value="$Resources:Layouts,DisplayName;" />
<Property Name="ContentType"
Value="$Resources:cmscore,contenttype_welcomepage_name;"/>
<Property Name="PublishingPageLayout"
Value="~SiteCollection/_catalogs/masterpage/CustomPage.aspx, $Resources:PalfingerPlatformsOrderRoot,LKWpageDefaultTitle;" />
<Property Name="PublishingPageContent"
Value="" />
</File>
</Module>
La cosa strana è che, se ho solo un layout di pagina senza nessuna libreria di pagine sottostante, posso aggiornare il page-ayout. Il problema si verifica solo se utilizzo un layout di pagina personalizzato all'interno di una libreria di pagine personalizzata.
Ho fatto qualche ricerca su Google e ho trovato un suggerimento: il problema potrebbe essere che il layout di pagina non è integro. Ho controllato questo con un piccolo codice di esempio:
SPFile file = folder.Files["Default.aspx"];
if (file.CustomizedPageStatus == SPCustomizedPageStatus.Customized)
{
file.RevertContentStream();
}
Dopo aver eseguito il codice, il layout di pagina viene aggiornato e utilizza il nuovo layout di pagina.
Il problema è che questa non è una vera soluzione per me perché ho ca. 1000 raccolte siti utilizzando il def. Sito. e il layout di pagina. Aggiornarli tutti è piuttosto doloroso. Qualcuno conosce una soluzione per questo?
Soluzione
Vorrei commentare una cosa. Sembra IgnoreIfAlreadyExists = " TRUE " non funziona correttamente fare riferimento a questo link , potrebbe ripristinare il valore a FALSE dovrebbe aiutare.
<File Url="CustomPage.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" >