Un po' di codice già pronto da utilizzare in tutti gli addins Sharepoint-hosted che debbano accedere all'host web.
// Function to retrieve a query string value.
// For production purposes you may want to use
// a library to handle the query string.
function getQueryStringParameter(paramToRetrieve) {
var params =
document.URL.split("?")[1].split("&");
var strParams = "";
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split("=");
if (singleParam[0] == paramToRetrieve)
return singleParam[1];
}
}
var clientContext = SP.ClientContext.get_current();
var hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
var appweburl = decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));
$.getScript("../_layouts/15/SP.RequestExecutor.js", initializePart);
function initializePart() {
var factory = new SP.ProxyWebRequestExecutorFactory(appweburl);
clientContext.set_webRequestExecutorFactory(factory);
var appContextSite = new SP.AppContextSite(clientContext, hostweburl);
workWeb = appContextSite.get_web();
clientContext.load(workWeb);
clientContext.executeQueryAsync(ongetWebSuccess, ongetWebFail);
}
venerdì 27 ottobre 2017
lunedì 23 ottobre 2017
Powershell Script per rimuovere la version da un campo
Dopo essermi scontrato di nuovo con questo problema (che è micidiale nel caso dei Taxonomy o Managed Metadata Fields), ecco uno script PowerShell per rimuovere la version da un campo anche se è già contenuto in un content type. PowerShell rules!! :-)
$name =
"qui ci va l'internal name del campo"
$url =
"qui ci va l'url della sitecollection"
Write-Host ("Remove
Version flag from '{0}' in '{1}'" -f
$name,
$url)
$web =
Get-SPWeb $url
$web =
$web.site.RootWeb
$field =
$web.Fields.GetFieldByInternalName($name)
if (!$field) {
Write-Host ">
Can't find field!" -ForegroundColor:Red
break
}
[xml]$xml =
$field.SchemaXml
$contenttypenames =
$web.ContentTypes
| ? { $_.FieldLinks
| ? { $_.Id -eq $field.ID } } | ? { $_.Parent.Fields.ContainsFieldWithStaticName($field.InternalName)
-eq $false
} | % { Write-Output $_.Name }
$contenttypenames |
% {
$contenttypename = $_
write-host (">
Remove field link from {0}..." -f
$contenttypename) -ForegroundColor:Green
$ct =
$web.ContentTypes[$contenttypename]
$ct.FieldLinks.Delete($name)
$ct.UpdateIncludingSealedAndReadOnly($true)
}
$field =
$web.Fields.GetFieldByInternalName($name)
if ($field)
{
Write-Host ">
Deleting existing field..." -ForegroundColor:Green
$web.fields.Delete($name)
}
Write-Host ">
Adding field (version removed)..." -ForegroundColor:Green
$xml.Field.RemoveAttribute("Version")
$web.Fields.AddFieldAsXml($xml.OuterXml)
| Out-Null
$contenttypenames |
% {
$contenttypename = $_
Write-Host (">
Adding field link to {0}..." -f
$contenttypename) -ForegroundColor:Green
$field =
$web.Fields.GetFieldByInternalName($name)
$fieldlink =
New-Object Microsoft.SharePoint.SPFieldLink($field)
$ct.FieldLinks.Add($fieldlink)
$ct.Update($true)
}
martedì 10 ottobre 2017
Search Engine Optimization (SEO) - Minimizzare js e css
Vi segnalo velocemente un articolo nel caso dobbiate ottimizzare un sito per i motori di ricerca e vogliate minimizzare i files js e Css per migliorare la Page speed. L'articolo propone di utilizzare Microsoft Ajax Minifier disponibile a questo link e tratta il caso di un app Sharepoint, ma le indicazioni in esso contenute vanno bene per un qualunque progetto Sharepoint. Automating JavaScript and CSS Minification In SharePoint Apps
Iscriviti a:
Post (Atom)