L'esempio seguente per SharePoint 2007 (WSS3 - MOSS) sfrutta gli event handler scritti in PowerShell 1.1.
Questo event handler in pratica prende la url del primo allegato, dell'item corrente, e la imposta in un campo di tipo url/picture (SPFieldUrl) in modo da poterlo vedere quando si va in visualizzazione dell'item. Si parte del presupposto che l'allegato sarà sempre una immagine.

PowerShell

function Update()
{
	$this.DisableEventFiring();

	#setta il campo come non visiile in edit, one shot
	#$fld = $list.Fields.GetFieldByInternalName("Foto_x0020_Evento")
	#$fld.ShowInEditForm = $false
	#$fld.ShowInNewForm = $false
	#$fld.Update()
	#$fld = $list.Fields["Foto_x0020_Evento"];

	$url = "";
	if($item.Attachments.Count -gt 0 ){
	 	$attachments = $list.RootFolder.SubFolders["Attachments"];

		$folder = $attachments.SubFolders[$item.ID.ToString()];
		$file = $folder.Files[0];

		$url = $site.url + $folder.ServerRelativeUrl + "/" + $file.Name;
		
		$u = New-Object microsoft.sharepoint.spfieldurlvalue($url);
		$u.Description = "Foto";
		$item["Foto_x0020_Evento"] = [microsoft.sharepoint.SPFieldUrlValue]$u;
		$item["Con_x0020_Foto"] = $true;
	}else {
		$item["Foto_x0020_Evento"] = "";
		$item["Con_x0020_Foto"] = $false;
	}

	$item.SystemUpdate($false);

	$this.EnableEventFiring();
}

function ItemUpdated()
{
	Update;
}

function ItemAdded()
{
	Update;
}
Tags:
PowerShell200 SharePoint498 SharePoint 2007218
Potrebbe interessarti anche: