protected override void Process(WriteItemHeaderPipeline pipeline) { Assert.ArgumentNotNull(pipeline, nameof(pipeline)); if (pipeline.Item.TemplateID != ViewRenderingId) { return; } var helper = new SpeakCoreVersionHelper(); var versionItem = helper.GetSpeakCoreVersionItem(pipeline.Item.Parent); if (versionItem == null) { return; } pipeline.Output.WriteAttributeString("ex.speakversion", versionItem.Name); pipeline.Output.WriteAttributeString("ex.speakversionid", versionItem.ID.ToString()); }
public string Execute([NotNull] string databaseName, [NotNull] string itemId) { Assert.ArgumentNotNull(databaseName, nameof(databaseName)); Assert.ArgumentNotNull(itemId, nameof(itemId)); var database = Factory.GetDatabase(databaseName); if (database == null) { throw new ArgumentException("Database not found"); } var item = database.GetItem(itemId); if (item == null) { throw new ArgumentException("Item not found"); } var speakCoreVersion = string.Empty; var speakCoreVersionId = string.Empty; var helper = new SpeakCoreVersionHelper(); var versionItem = helper.GetSpeakCoreVersionItem(item); if (versionItem != null) { speakCoreVersion = versionItem.Name; speakCoreVersionId = versionItem.ID.ToString(); } var writer = new StringWriter(); var output = new XmlTextWriter(writer) { Formatting = Formatting.Indented }; output.WriteStartElement("template"); output.WriteAttributeString("name", item.Name); output.WriteAttributeString("icon", Images.GetThemedImageSource(item.Appearance.Icon, ImageDimension.id16x16)); output.WriteAttributeString("parameters", item["Default Parameters"]); output.WriteAttributeString("placeholders", string.Join(",", PlaceHolderAnalyzer.Analyze(item).ToArray())); output.WriteAttributeString("dsl", item["Datasource Location"]); output.WriteAttributeString("dst", item["Datasource Template"]); output.WriteAttributeString("path", item["Path"]); output.WriteAttributeString("templateid", item["Parameters Template"]); output.WriteAttributeString("speakcoreversion", speakCoreVersion); output.WriteAttributeString("speakcoreversionid", speakCoreVersionId); var template = item["Parameters Template"]; if (!string.IsNullOrEmpty(template)) { var templateItem = item.Database.GetItem(template); if (templateItem != null) { WriteParametersTemplate(output, templateItem); } } output.WriteEndElement(); return(writer.ToString()); }