当前位置: 首页>>代码示例>>C#>>正文


C# Package.PushItem方法代码示例

本文整理汇总了C#中Package.PushItem方法的典型用法代码示例。如果您正苦于以下问题:C# Package.PushItem方法的具体用法?C# Package.PushItem怎么用?C# Package.PushItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Package的用法示例。


在下文中一共展示了Package.PushItem方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Transform

        public override void Transform(Engine engine, Package package)
        {
            Initialize(engine, package);
            Component comp = GetComponent();
            if (IsPageTemplate() || comp == null)
            {
                Logger.Error("No Component found (is this a Page Template?)");
                return;
            }
            Item outputItem = package.GetByName(Package.OutputName);
            if (outputItem == null)
            {
                Logger.Error("No Output package item found (is this TBB placed at the end?)");
                return;
            }
            _metaFieldNames = (package.GetValue("multimediaLinkAttributes") ?? String.Empty).Split(',').Select(s => s.Trim()).ToList();

            // resolve rich text fields
            string output = outputItem.GetAsString();
            package.Remove(outputItem);
            if (output.StartsWith("<"))
            {
                Logger.Debug("Content is XML");
                //XML - only for backwards compatibility
                package.PushItem(Package.OutputName, package.CreateXmlDocumentItem(ContentType.Xml, ResolveXmlContent(output)));
            }
            else
            {
                Logger.Debug("Content is JSON");
                //JSON
                package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Text, ResolveJsonContent(output)));
            }
        }
开发者ID:NiclasCedermalm,项目名称:dxa-content-management,代码行数:33,代码来源:ResolveRichText.cs

示例2: Transform

        public void Transform(Engine engine, Package package)
        {
            if (package.GetByName(Package.PageName) == null) return;
            Page page = (Page)engine.GetObject(package.GetByName(Package.PageName));
            bool hasHeader = false;
            bool hasFooter = false;

            foreach (CP cp in page.ComponentPresentations)
            {
                if (cp.ComponentTemplate.Title.ToLower().Contains("header")) hasHeader = true;
                if (cp.ComponentTemplate.Title.ToLower().Contains("footer")) hasFooter = true;
            }
            if (!hasHeader)
            {
                ComponentTemplate headerCt = (ComponentTemplate)engine.GetObject(page.ContextRepository.RootFolder.WebDavUrl + HeaderComponentTemplateUrl);
                Component header = (Component)engine.GetObject(page.ContextRepository.RootFolder.WebDavUrl + HeaderComponentUrl);
                package.PushItem("headerCP", package.CreateStringItem(ContentType.Html, string.Format("<tcdl:ComponentPresentation type=\"Dynamic\" componentURI=\"{0}\" templateURI=\"{1}\" />", header.Id, headerCt.Id)));
            }
            if (!hasFooter)
            {
                ComponentTemplate footerCt = (ComponentTemplate)engine.GetObject(page.ContextRepository.RootFolder.WebDavUrl + FooterComponentTemplateUrl);
                Component footer = (Component)engine.GetObject(page.ContextRepository.RootFolder.WebDavUrl + FooterComponentUrl);
                package.PushItem("footerCP", package.CreateStringItem(ContentType.Html, string.Format("<tcdl:ComponentPresentation type=\"Dynamic\" componentURI=\"{0}\" templateURI=\"{1}\" />", footer.Id, footerCt.Id)));

            }
        }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:26,代码来源:AddHeaderAndFooterToPage.cs

示例3: Transform

        public void Transform(Engine engine, Package package)
        {
            TemplatingLogger log = TemplatingLogger.GetLogger(GetType());
            RepositoryLocalObject context;
            if (package.GetByName(Package.PageName) != null)
            {

                context = (RepositoryLocalObject)engine.GetObject(package.GetByName(Package.PageName));
                log.Debug("Setting context to page with ID " + context.Id);
            }
            else
            {
                log.Info("This template building block should only run on a page. Exiting.");
                return;
            }

            if (!(context is Page)) return;

            Page page = (Page)context;

            package.PushItem(SiteEditPageContext, package.CreateStringItem(ContentType.Text, page.OwningRepository.Id));
            package.PushItem(SiteEditPublishContext, package.CreateStringItem(ContentType.Text, page.ContextRepository.Id));

            if (page.ComponentPresentations.Count <= 0) return;
            Component component = page.ComponentPresentations[0].Component;
            package.PushItem(SiteEditComponentContext, package.CreateStringItem(ContentType.Text, component.OwningRepository.Id));
        }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:27,代码来源:SetSiteEditBlueprintContext.cs

示例4: Transform

 public void Transform(Engine engine, Package package)
 {
     TcmUri templateId = engine.PublishingContext.ResolvedItem.Template.Id;
     if (templateId.ItemType != ItemType.ComponentTemplate) return;
     Item item = package.CreateStringItem(ContentType.Text, templateId);
     package.PushItem("ComponentTemplateId", item);
     package.PushItem("RenderMode", package.CreateStringItem(ContentType.Text, engine.RenderMode.ToString()));
 }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:8,代码来源:GetComponentTemplateId.cs

示例5: Transform

        public void Transform(Engine engine, Package p)
        {
            Component component = (Component)engine.GetObject(p.GetByName(Package.ComponentName));
            ItemFields fields = new ItemFields(component.Content, component.Schema);
            SingleLineTextField field = (SingleLineTextField) fields["ArticleTitle"];

            p.PushItem("AsHtml", p.CreateHtmlItem(System.Security.SecurityElement.Escape(field.Value)));
            p.PushItem("AsText", p.CreateStringItem(ContentType.Text, System.Security.SecurityElement.Escape(field.Value)));
        }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:9,代码来源:CompareHtmlvsTextItem.cs

示例6: Transform

 public void Transform(Engine engine, Package package)
 {
     Component component = (Component)engine.GetObject(package.GetByName(Package.ComponentName));
     package.PushItem(package.CreateMultimediaItem(component.Id));
     if (package.GetByName(Package.OutputName) == null)
     {
         Item output = package.CreateStringItem(ContentType.Text, string.Empty);
         package.PushItem(Package.OutputName, output);
     }
 }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:10,代码来源:FilePublisher.cs

示例7: Transform

        public void Transform(Engine engine, Package package)
        {
            this.package = package;
            this.engine = engine;

            if (engine.PublishingContext.RenderContext != null && engine.PublishingContext.RenderContext.ContextVariables.Contains(BasePageTemplate.VariableNameCalledFromDynamicDelivery))
            {
                if (engine.PublishingContext.RenderContext.ContextVariables[BasePageTemplate.VariableNameCalledFromDynamicDelivery].Equals(BasePageTemplate.VariableValueCalledFromDynamicDelivery))
                {
                    log.Debug("template is rendered by a DynamicDelivery page template, will not convert from XML to java");
                    return;
                }
            }

            Item outputItem = package.GetByName("Output");
            String inputValue = package.GetValue("Output");

            if (inputValue == null || inputValue.Length == 0)
            {
                log.Warning("Could not find 'Output' in the package, nothing to transform");
                return;
            }

            String minimizeSettings = package.GetValue("MinimizeSettings");


            string outputValue = XmlMinimizer.Convert(inputValue, minimizeSettings);

            // replace the Output item in the package
            package.Remove(outputItem);
            outputItem.SetAsString(outputValue);
            package.PushItem("Output", outputItem);
        }
开发者ID:flaithbheartaigh,项目名称:dynamic-delivery-4-tridion,代码行数:33,代码来源:MinimizeXML.cs

示例8: Transform

        public void Transform(Engine engine, Package package)
        {

            // do NOT execute this logic when we are actually publishing! (similair for fast track publishing)
            if (engine.RenderMode == RenderMode.Publish || (engine.PublishingContext.PublicationTarget != null && !Tcm.TcmUri.IsNullOrUriNull(engine.PublishingContext.PublicationTarget.Id)))
            {
                return;
            }

            Item outputItem = package.GetByName("Output");
            String inputValue = package.GetValue("Output");

            if (string.IsNullOrEmpty(inputValue))
            {
                log.Warning("Could not find 'Output' in the package, nothing to preview");
                return;
            }

            // read staging url from configuration
            string stagingUrl = TridionConfigurationManager.GetInstance(engine, package).AppSettings["StagingUrl"];
            string outputValue = HttpPost(stagingUrl, inputValue);
            if (string.IsNullOrEmpty(outputValue))
            {
                outputValue = "<h2>There was an error while generating the preview.</h2>";
            }

            // replace the Output item in the package
            package.Remove(outputItem);
            package.PushItem("Output", package.CreateStringItem(ContentType.Html, outputValue));
        }
开发者ID:jhorsman,项目名称:DD4T.TridionTemplates,代码行数:30,代码来源:PreviewPage.cs

示例9: Transform

 public void Transform(Engine engine, Package package)
 {
     RepositoryLocalObject context;
     if (package.GetByName(Package.ComponentName) != null)
     {
         context = (RepositoryLocalObject)engine.GetObject(package.GetByName(Package.ComponentName));
     }
     else if (package.GetByName(Package.PageName) != null)
     {
         context = (RepositoryLocalObject)engine.GetObject(package.GetByName(Package.PageName));
     }
     else
     {
         throw new Exception("Could not determine context from package. Did not find page or component in package");
     }
     Repository contextPublication = context.ContextRepository;
     if (contextPublication.Metadata == null) return;
     ItemFields metadata = new ItemFields(contextPublication.Metadata, contextPublication.MetadataSchema);
     ComponentLinkField configuration = (ComponentLinkField)metadata["SiteConfiguration"];
     foreach (Component c in configuration.Values)
     {
         ItemFields content = new ItemFields(c.Content, c.Schema);
         foreach (ItemField field in content)
         {
             var textField = field as TextField;
             if (textField != null)
             {
                 package.PushItem(textField.Name, package.CreateStringItem(ContentType.Text, textField.Value));
             }
         }
     }
 }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:32,代码来源:GetSiteVariables.cs

示例10: Transform

        public void Transform(Engine engine, Package package)
        {
            if (package.GetByName(Package.PageName) == null) return;
            comm.Page page = (comm.Page)engine.GetObject(package.GetByName(Package.PageName));
            Dictionary<string, List<ComponentPresentation>> lists = new Dictionary<string, List<ComponentPresentation>>();
            string matchTokens = package.GetValue("ComponentTemplateTitleMatchTokens");
            if (!String.IsNullOrEmpty(matchTokens))
            {
                foreach (string token in matchTokens.Split(','))
                {
                    _matchTokens.Add(token.Trim());
                }
            }

            foreach (comm.ComponentPresentation cp in page.ComponentPresentations)
            {
                string ct = GetPresentationType(cp.ComponentTemplate.Title);
                if (!lists.ContainsKey(ct))
                    lists.Add(ct, new List<ComponentPresentation>());
                lists[ct].Add(new ComponentPresentation(cp.Component.Id, cp.ComponentTemplate.Id));
            }

            foreach (string token in lists.Keys)
            {
                Item item = package.CreateStringItem(ContentType.ComponentArray, ComponentPresentationList.ToXml(lists[token]));
                package.PushItem(token + "Components", item);
            }
        }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:28,代码来源:GroupComponentsByTemplate.cs

示例11: Main

 static void Main(string[] args)
 {
     ITemplate tbb = new RegexReplace();
     Session session = new Session();
     Console.WriteLine(session.GetObject("tcm:4-847").Title);
     using (UnittestingTemplatingRenderer engine = new UnittestingTemplatingRenderer("tcm:4-847", "tcm:4-64-32"))
     {
         Package package = new Package(engine);
         package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Text, "Tridion Developer Summit 2013"));
         package.PushItem("tp_find", package.CreateStringItem(ContentType.Text, "2013"));
         package.PushItem("tp_replace", package.CreateStringItem(ContentType.Text, "2014"));
         tbb.Transform(engine, package);
         string output = package.GetValue(Package.OutputName);
     }
     Console.ReadLine();
 }
开发者ID:BjornVanDommelen,项目名称:TDS2014,代码行数:16,代码来源:Program.cs

示例12: Transform

 public override void Transform(Engine engine, Package package)
 {
     Initialize(engine, package);
     Component comp = GetComponent();
     if (IsPageTemplate() || comp == null)
     {
         Logger.Error("No Component found (is this a Page Template?)");
         return;
     }
     Item outputItem = package.GetByName(Package.OutputName);
     if (outputItem == null)
     {
         Logger.Error("No Output package item found (is this TBB placed at the end?)");
         return;
     }
     _metaFieldNames = (package.GetValue("multimediaLinkAttributes") ?? String.Empty).Split(',').Select(s => s.Trim()).ToList();
     // resolve rich text fields
     XmlDocument doc = new XmlDocument();
     string output = outputItem.GetAsString();
     doc.LoadXml(output);
     var fields = doc.SelectNodes("//Field[@FieldType='Xhtml']/Values/string");
     foreach (XmlElement field in fields)
     {
         field.InnerXml = ResolveXhtml(field.InnerXml);
     }
     package.Remove(outputItem);
     package.PushItem(Package.OutputName, package.CreateXmlDocumentItem(ContentType.Xml, doc));
 }
开发者ID:MrSnowflake,项目名称:tri,代码行数:28,代码来源:ResolveRichText.cs

示例13: Transform

        public override void Transform(Engine engine, Package package)
        {
            Engine = engine;
            Package = package;

            var c = IsPageTemplate() ? GetPage().ComponentPresentations[0].Component : GetComponent();

            XmlDocument resourceDoc = null;
            resourceDoc = new XmlDocument();
            resourceDoc.LoadXml("<root/>");

            var fields = new ItemFields(c.Content, c.Schema);
            var sourceField = fields["resource"] as EmbeddedSchemaField;
            foreach (var innerField in sourceField.Values)
            {

                var key = innerField["key"] as TextField;
                var value = innerField["value"] as TextField;

                var data = resourceDoc.CreateElement("data");
                data.SetAttribute("name", key.Value);
                var v = resourceDoc.CreateElement("value");
                v.InnerText = value.Value;
                data.AppendChild(v);
                resourceDoc.DocumentElement.AppendChild(data);
            }
            
            package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Xml, resourceDoc.OuterXml));
           
        }
开发者ID:flaithbheartaigh,项目名称:dynamic-delivery-4-tridion,代码行数:30,代码来源:Resources.cs

示例14: Transform

        public void Transform(Engine engine, Package package)
        {
            TemplatingLogger log = TemplatingLogger.GetLogger(GetType());
            if (package.GetByName(Package.OutputName) == null)
            {
                log.Error("Could not find \"Output\" item in Package. This template building block should be the last TBB in your template.");
                return;
            }
            Item output = package.GetByName(Package.OutputName);

            string outputText = output.GetAsString();

            bool outputchanged = false;
            foreach (Match m in TcmUriRegEx.Matches(outputText))
            {
                log.Debug("Found " + m.Value);
                TcmUri uri = new TcmUri(m.Value);
                if(uri.GetVersionlessUri().ToString().Equals(m.Value)) continue;
                log.Debug("Found version information on uri " + m.Value + ". Removing.");
                outputText = outputText.Replace(m.Value, uri.GetVersionlessUri().ToString());
                outputchanged = true;
            }
            if (outputchanged)
            {
                output.SetAsString(outputText);
                package.Remove(output);
                package.PushItem(Package.OutputName, output);
            }
        }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:29,代码来源:RemoveDynamicVersionFromUri.cs

示例15: Transform

 public void Transform(Engine engine, Package package)
 {
     Component component = (Component)engine.GetObject(package.GetByName(Package.ComponentName));
     ItemFields fields = new ItemFields(component.Content, component.Schema);
     TextField code = (TextField)fields["Code"];
     package.PushItem(Package.OutputName, package.CreateStringItem(ContentType.Html, code.Value));
 }
开发者ID:mhassan26,项目名称:SDL-Tridion-Template-Tools,代码行数:7,代码来源:RenderCode.cs


注:本文中的Package.PushItem方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。