示例#1
0
        protected virtual XElement CreateImageElement(HtmlNode htmlNode, Item mediaContentItem, ParseContext parseContext, string width, string height)
        {
            XElement        xelement   = RenderItemHelper.CreateXElement("Image", ((TemplateItem)parseContext.Database.GetItem(WebConfigHandler.PrintStudioEngineSettings.EngineTemplates + "P_Image")).StandardValues, parseContext.PrintOptions.IsClient, (Item)null);
            ParseDefinition definition = parseContext.ParseDefinitions[htmlNode];

            if (definition != null)
            {
                this.SetAttributes(xelement, htmlNode, definition);
            }
            xelement.SetAttributeValue((XName)"Height", (object)height);
            xelement.SetAttributeValue((XName)"Width", (object)width);
            xelement.SetAttributeValue((XName)"SitecoreMediaID", (object)mediaContentItem.ID.Guid.ToString());
            string imageOnServer = ImageRendering.CreateImageOnServer(parseContext.PrintOptions, (MediaItem)mediaContentItem);
            string str           = parseContext.PrintOptions.FormatResourceLink(imageOnServer);

            xelement.SetAttributeValue((XName)"LowResSrc", (object)str);
            xelement.SetAttributeValue((XName)"HighResSrc", (object)str);
            return(xelement);
        }
        protected virtual XElement CreateImageElement(HtmlNode htmlNode, Item mediaContentItem, ParseContext parseContext, string width, string height)
        {
            Item            item            = parseContext.Database.GetItem(WebConfigHandler.PrintStudioEngineSettings.EngineTemplates + "P_Image");
            Item            standardValues  = item.Template.StandardValues;
            XElement        xElement        = RenderItemHelper.CreateXElement("Image", standardValues, parseContext.PrintOptions.IsClient, null);
            ParseDefinition parseDefinition = parseContext.ParseDefinitions[htmlNode];

            if (parseDefinition != null)
            {
                this.SetAttributes(xElement, htmlNode, parseDefinition);
            }
            xElement.SetAttributeValue("Height", height);
            xElement.SetAttributeValue("Width", width);
            xElement.SetAttributeValue("SitecoreMediaID", mediaContentItem.ID.Guid.ToString());
            string text = ImageRendering.CreateImageOnServer(parseContext.PrintOptions, mediaContentItem);

            text = parseContext.PrintOptions.FormatResourceLink(text);
            xElement.SetAttributeValue("LowResSrc", text);
            xElement.SetAttributeValue("HighResSrc", text);
            return(xElement);
        }
        protected override void RenderContent(PrintContext printContext, XElement output)
        {
            XElement xElement = RenderItemHelper.CreateXElement("Image", base.RenderingItem, printContext.Settings.IsClient, null);
            string   text     = string.Empty;
            string   value    = base.RenderingItem["MediaLibrary Reference"];
            bool     flag     = string.IsNullOrEmpty(value);
            ID       iD;

            if (!flag && ID.TryParse(value, out iD) && iD != ID.Null)
            {
                MediaItem mediaItem = printContext.Database.GetItem(iD);
                text = ImageRendering.CreateImageOnServer(printContext.Settings, mediaItem);
            }
            else
            {
                string text2 = base.RenderingItem.Parent["Item Field"];
                flag &= string.IsNullOrEmpty(text2);
                Item dataItem = this.GetDataItem(printContext);
                if (dataItem != null && !string.IsNullOrEmpty(text2))
                {
                    Field field = dataItem.Fields[text2];
                    if (field != null)
                    {
                        if (field.Type == "QR Code Image")
                        {
                            text = ImageRendering.CreateQrOnServer(printContext.Settings, base.RenderingItem, field.Value);
                        }
                        else if (field.Type == "Image")
                        {
                            MediaItem mediaItem2 = printContext.Database.GetItem(field.Value);
                            text = ImageRendering.CreateImageOnServer(printContext.Settings, mediaItem2);
                        }
                        else if (field.Type == "Treelist")
                        {
                            string[] images;
                            images = field.Value.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);

                            int intPosition;

                            if (position != null)
                            {
                                intPosition = Convert.ToInt32(position);
                            }
                            else
                            {
                                intPosition = 0;
                            }

                            MediaItem mediaItem3 = printContext.Database.GetItem(images[intPosition]);
                            text = ImageRendering.CreateImageOnServer(printContext.Settings, mediaItem3);
                        }
                        else
                        {
                        }
                    }
                }
            }
            if (string.IsNullOrEmpty(text) && flag)
            {
                xElement.SetAttributeValue("LowResSrc", base.RenderingItem["LowResSrc"]);
                xElement.SetAttributeValue("HighResSrc", base.RenderingItem["HighResSrc"]);
            }
            else
            {
                text = printContext.Settings.FormatResourceLink(text);
                xElement.SetAttributeValue("LowResSrc", text);
                xElement.SetAttributeValue("HighResSrc", text);
            }
            output.Add(xElement);
            this.RenderChildren(printContext, xElement);
        }