protected override void ProcessItem(Item item) { var rendering = new RenderingDefinition { ItemID = item.ID.ToString(), Placeholder = PlaceHolder, Datasource = DataSource?.ID.ToString(), Cachable = Cacheable ? "1" : null, ClearOnIndexUpdate = ClearOnIndexUpdate ? "1" : null, VaryByData = VaryByData ? "1" : null, VaryByDevice = VaryByDevice ? "1" : null, VaryByLogin = VaryByLogin ? "1" : null, VaryByParameters = VaryByParameters ? "1" : null, VaryByQueryString = VaryByQueryString ? "1" : null, VaryByUser = VaryByUser ? "1" : null }; if (Parameter != null) { var parameters = new UrlString(); foreach (string name in Parameter.Keys) { parameters.Add(name, Parameter[name].ToString()); } rendering.Parameters = parameters.ToString(); } //todo: add support for conditions //renderingDefinition.Conditions //todo: add support for multivariate tests //rendering.MultiVariateTest var psobj = ItemShellExtensions.WrapInItemOwner(SessionState, item, rendering); WriteObject(psobj); }
private void WriteItem(Item item) { // add the properties defined by the page type if (item != null) { var psobj = ItemShellExtensions.GetPsObject(SessionState, item); var path = item.Database.Name + ":" + item.Paths.Path.Substring(9).Replace('/', '\\'); WriteItemObject(psobj, path, item.HasChildren); } }
protected void WriteItem(Item item) { if (item == null) { return; } // add the properties defined by the page type var psobj = ItemShellExtensions.GetPsObject(SessionState, item); WriteObject(psobj); }
public void GetProperty(string path, Collection <string> providerSpecificPickList) { try { LogInfo("Executing GetProperty(string path='{0}', Collection<string> providerSpecificPickList)", path); var item = GetDynamicItem(path); if (item != null) { // create PSObject from the FileSystemInfo instance var psobj = ItemShellExtensions.GetPsObject(SessionState, item); // create the PSObject to copy properties into and that we will return var result = new PSObject(); foreach (var name in providerSpecificPickList) { // Copy all the properties from the original object into ’result’ var prop = psobj.Properties[name]; object value = null; if (prop != null) { value = prop.Value; } else { WriteWarning(String.Format("Property name ’{0}’ doesn’t exist for item at path ’{1}’", name, path)); } result.Properties.Add(new PSNoteProperty(name, value)); } foreach (var name in providerSpecificPickList) { var field = item.Fields[name]; if (field != null) { result.Properties[name].Value = field.Value; } } WritePropertyObject(result, path); } } catch (Exception ex) { LogError(ex, "Error while executing GetProperty(string path='{0}', Collection<string> providerSpecificPickList)", path); throw; } }
protected override void ProcessItem(Item item) { var phs = new PlaceholderDefinition { MetaDataItemId = item.Paths.FullPath, Key = Key, UniqueId = ID.NewID.ToString() }; var psobj = ItemShellExtensions.WrapInItemOwner(SessionState, item, phs); WriteObject(psobj); }
private void SetItemPropertyValue(string path, Item item, string propertyName, object propertyValue) { if (ShouldProcess(path, $"Setting property '{propertyName}' to '{propertyValue}'")) { if (item.Fields?[propertyName] != null) { ItemShellExtensions.ModifyProperty(item, propertyName, propertyValue); } else { WriteWarning($"Property name ’{propertyName}’ doesn’t exist for item at path ’{path}’"); } } }
protected override void ProcessItem(Item item) { LayoutField layoutField = item.Fields[LayoutFieldId]; if (string.IsNullOrEmpty(layoutField?.Value)) { return; } var layout = LayoutDefinition.Parse(layoutField.Value); if (layout.Devices == null) { return; } foreach (DeviceDefinition device in layout.Devices) { if (Device == null || string.Equals(device.ID, Device.ID.ToString(), StringComparison.OrdinalIgnoreCase)) { var layoutItem = item.Database.GetItem(device.Layout); var psobj = ItemShellExtensions.GetPsObject(SessionState, layoutItem); psobj.Properties.Add(new PSNoteProperty("DeviceID", device.ID)); var deviceItem = Device ?? item.Database.GetItem(device.ID); psobj.Properties.Add(new PSNoteProperty("Device", deviceItem.Name)); WriteObject(psobj); if (Device != null) { return; } } } if (Device != null) { WriteError( new ErrorRecord( new ObjectNotFoundException( string.Format("Item \"{0}\" has no layout defined for device \"{1}\"", item.Name, Device.Name)), "sitecore_layout_for_device_not_found", ErrorCategory.ObjectNotFound, Device)); } }
protected override void ProcessRecord() { LogErrors(() => { if (!CheckSessionCanDoInteractiveAction()) { WriteObject("cancel"); return; } AssertDefaultSize(500, 300); var message = new ShowMultiValuePromptMessage(Parameters, WidthString, HeightString, Title, Description, Icon, OkButtonName, CancelButtonName, ShowHints, Validator, ValidatorParameters, CurrentSessionKey); foreach (Hashtable result in Parameters) { var name = result["Name"] as string; PSVariable variable = null; if (!string.IsNullOrEmpty(name)) { variable = SessionState.PSVariable.Get((string)result["Name"]); } if (result["Variable"] != null) { variable = (PSVariable)((PSObject)result["Variable"]).BaseObject; result.Add("Name", variable.Name); name = variable.Name; } if (variable != null) { if (!result.ContainsKey("Value")) { var varValue = variable.Value.BaseObject(); if (varValue is IEnumerable <object> ) { varValue = (varValue as IEnumerable <object>).Select(p => p.BaseObject()).ToList(); } result.Add("Value", varValue); } var varTitle = result["Title"]; if (varTitle == null) { result.Add("Title", string.IsNullOrEmpty(variable.Name) ? name : variable.Name); } var varDesc = result["Description"]; if (varDesc == null) { result.Add("Description", variable.Description); } } if (result["Value"] == null) { if (result.ContainsKey("Value")) { result["Value"] = string.Empty; } else { result.Add("Value", string.Empty); } } } PutMessage(message); var results = (object[])message.GetResult(); WriteObject(results != null ? "ok" : "cancel"); if (results != null) { foreach (Hashtable result in results) { var resultValue = result["Value"]; if (resultValue is Item) { resultValue = ItemShellExtensions.GetPsObject(SessionState, resultValue as Item); } if (resultValue is List <Item> ) { resultValue = (resultValue as List <Item>).Where(p => p != null) .Select(p => ItemShellExtensions.GetPsObject(SessionState, p)) .ToArray(); } SessionState.PSVariable.Set((string)result["Name"], resultValue); } } }); }
protected override void ProcessRenderings(Item item, LayoutDefinition layout, DeviceDefinition device, List <RenderingDefinition> renderings) { renderings.ForEach(r => WriteObject(ItemShellExtensions.WrapInItemOwner(SessionState, item, r))); }
protected override void ProcessPlaceholderSettings(Item item, LayoutDefinition layout, DeviceDefinition device, List <PlaceholderDefinition> placeholders) { placeholders.ForEach(p => WriteObject(ItemShellExtensions.WrapInItemOwner(SessionState, item, p))); }