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());
        }
Beispiel #2
0
        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());
        }