Domanda

Ho visto altre domande simili (come questo ), controllato documentazione di Microsoft (come tutti quelli che derivano da e relativi alla pagina Localizzazione di modalità sandbox Soluzioni in SharePoint 2010 ), più altri articoli ( JohnWPowell e SPbits ).

In ogni caso, io non sono in grado di risolvere il seguente problema:

avere una soluzione SP2010 in modalità sandbox in VS2010 con un webpart di solo codice, Quali sono le lingue Titolo del webpart, Descrizione (in file di .webpart), Gruppo, QuickAddGroup (elements.xml)

Grazie a tutti

Note aggiuntive:

Sono in grado di localizzare il titolo e la descrizione funzione, così come il contenuto webpart dal codice (ad es. Il testo di qualche etichetta). Sono anche a conoscenza di attributi personalizzati al fine di localizzare webpart Proprietà quando l'utente li modifica nel browser.

sono stato in grado di fare questo in SP2007, attraverso alcuni Visual Studio magia casuale (BuildAction + CopyToOutput + CustomTool + Posizione di distribuzione + tipo di distribuzione + modifica manifesta ... non chiedetemi come :)), ma la maggior parte di quelli opzioni non sono disponibili in una soluzione Sandbox.

Modifica

Dopo docs rilettura, ho avvistato questa nota che mette l'ultima parola, almeno sul file .webpart:

Le stringhe nel file .webpart di una soluzione in modalità sandbox può essere localizzato solo se i file di risorse localizzati sono stati installati separatamente al file system come parte di una soluzione farm. Nella maggior parte delle situazioni in cui si sta creando una soluzione in modalità sandbox, è perché non avete il permesso di installare soluzioni fattoria nelle fattorie di destinazione. In questi casi, non esiste un modo pratico per localizzare il file .webpart in una soluzione in modalità sandbox. Ciò significa che il nome della web part nella raccolta web part è la stessa in siti di tutte le lingue.

Qualsiasi suggerimento su come fare questo, almeno a livello di codice, ad esempio, aggiungendo il webpart alla galleria in un ricevitore caratteristica evento?

È stato utile?

Soluzione

Presumo non è possibile installare una soluzione farm che include i file di risorse come parte di un approccio ibrido? Se è possibile, allora questo non aggirare il problema.

In caso contrario: (scusate se lo sai già) come probabilmente sapete, le risorse si fa riferimento in un file .webpart (or.dwp) simile a questo: "$ Resources: nucleo, WebPartTitle;" dove "core" si riferisce al nome del file di risorse e "WebPartTitle" si riferisce al nome della stringa di risorsa. Queste risorse sono risolti quando il file .webpart viene distribuito come parte di una funzione e sono risolti, cercando in lingua del sito principale perché è qui che esiste la galleria web part. Si tratta di una sola volta ha colpito nel punto di provisioning nel sito.

in una sandbox, è possibile solo server di riferimento installati i file di risorse, non i mezzi messi in opera come parte della soluzione Sandbox. Così, l'unico modo per aggirare questo sembra essere quello di utilizzare il codice come una funzione del ricevitore. Su Caratteristica attivato, vorrei suggerire che si ottiene un handle sul file webpart nel web part (con SPWeb.GetCatalog) e poi fare una semplice ricerca e sostituzione, risolvendo il riferimento risorsa a livello di codice, cercando per la stringa di risorsa che viene memorizzato nel la funzione del ricevitore di montaggio.

Altri suggerimenti

In questo caso il modo più semplice per localizzare un titolo parte web è modificare il campo titolo di elemento della lista:

SPList catalog = web.GetCatalog(SPListTemplateType.WebPartCatalog);

SPQuery query = new SPQuery();
query.Query = string.Format( @"<Where><Eq><FieldRef Name='LinkFilename'/><Value Type='Computed'>{0}</Value></Eq></Where>", webPartName);

SPListItem webPartItem = catalog.GetItems(query).Cast<SPListItem>().FirstOrDefault();
webPartItem[SPBuiltInFieldId.Title] = WebPartsResources.Title;
webPartItem.Update();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top