Distribuzione di pagine wiki con le parti web
-
09-12-2019 - |
Domanda
Questa è probabilmente una domanda molto semplice per molti, ma il mio background è come uno sviluppatore SharePoint. Ho fatto molto poco con le pagine wiki o le pagine del sito in generale.
Sto creando un sito SharePoint 2010 per un piccolo team nella nostra organizzazione e abbiamo selezionato per utilizzare il modello del sito del team. Ho passato un po 'di tempo aggiungendo pagine web, immagini e testo nella home page (Sitepages / home.aspx) come mezzo per visualizzare ciò che potremmo fare con il sito. Questo è stato tutto fatto nel mio ambiente di sviluppo.
Ora che siamo contenti della versione di sviluppo della pagina, esiste un modo per esportarlo e aggiungerlo al nostro progetto Visual Studio in modo che alla fine possa essere ri-distribuito alla produzione? Questo è anche un buon approccio, o dovremmo aspettarci solo di ricreare la pagina manualmente in produzione?
Il mio primo pensiero è stato che potremmo esportare la pagina da SPD e distribuirla tramite una funzione del modulo, ma da allora ho appreso che il controllo di EmbeddedFampField nella pagina Wiki lo rende impossibile.
Ho anche provato questo approccio: http://www.sharemuch.com/2012/02/20/How-to-automatich-provision-SharePoint-2010-Wiki-Page-content/ . La pagina risultante non renderà correttamente le parti Web (le parti Web non sono lì, solo un po 'di testo). Ottengo anche "La pagina corrente è stata personalizzata dal suo modello. Rivedi al modello" Messaggio e non riesci a farcela andare via, anche se clicco "Ripristina il modello".
Il mio modulo è simile a questo:
<Module Name="OneCallPages" Url="SitePages" SetupPath="FEATURES\MyProject.SharePoint_SiteAssetsFeature\MyProjectAssets\SitePages" List="119">
<File Path="Welcome.aspx" Url="Welcome.aspx" Type="GhostableInLibrary">
<Property
Name="WikiField"
Type="string"
Value="..."/>
</File>
</Module>
. Soluzione 2
Molte grazie a RJCUP3 per l'aiuto.Ho finito per usare l'approccio qui descritto qui: http://sharepointtruggle.blogspot.COM / 2011/10 / programmaticamente-provvisorio-wiki.html .
Fondamentalmente, implica la creazione di un file XML con il contenuto della pagina Wiki, quindi esporrando ciascuna delle parti Web sulla pagina da SPD e fare riferimento al contenuto del file risultante .Webpart (.dwp) da XML.Quindi una classe personalizzata si prende cura di creare la pagina Wiki a livello di programmazione e importazione delle parti Web.
Altri suggerimenti
Hai provato a salvare il sito come modello ed esportazione del .wsp?Quindi è possibile caricare il .WSP nel catalogo delle soluzioni sull'ambiente di destinazione e utilizzarlo come modello di sito per distribuire il layout della pagina.
Per salvare il sito come modello Vai su Impostazioni sito> Salva sito come modello.Facile come quello.
Il .WSP sarà memorizzato nel catalogo soluzioni che può essere navigato a:
http://[path to site collection]/_catalogs/solutions/
Step by Step Le istruzioni possono essere trovate qui .
.Quando crei o copia le wikipages, assicurati di aggiungere la proprietà "Wikicontent" e le parti web. Imposta il wikicontent con:
Item[SPBuiltInFieldId.WikiField] = wikiContent;
Item.Update();
.
Aggiungi WebParts con Web Part Manager (questo esempio copia le parti Web da una pagina all'altra):
var wpManagerTemplate = webTemplate.GetLimitedWebPartManager(item.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
var wpManagerNew = web.GetLimitedWebPartManager(newFile.Item.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
var webParts = wpManagerTemplate.WebParts;
foreach (WebPart webpart in webParts)
{
wpManagerNew.AddWebPart(webpart, "wpz", webpart.ZoneIndex);
}
.
Vedi anche: https:// sharepointkaos.wordpress.com/2015/08/07/copy-page-from-one-wikibriary-to-another/