小编Hen*_*ker的帖子

以逗号分隔Tridion多值字段的最快方法

将多值Tridion文本字段拆分为逗号分隔字符串的最快方法是什么?在我的情况下,我使用C#,但我想其他任何例子也是受欢迎的.这似乎是丑陋而冗长的方式:

var multiTextField = fields["multiTextField"] as TextField;
string multiCommaField = String.Empty;

for (int i = 0; i < multiTextField.Values.Count; i++)
{
    multiCommaField += multiTextField.Values[i].ToString() + ",";
}
Run Code Online (Sandbox Code Playgroud)

编辑:我使用的是.NET 3.5和Tridion 2009 SP1

.net-3.5 tridion tridion2009

12
推荐指数
2
解决办法
286
查看次数

在复合模板中使用C#进行渲染时出现问题

在复合模板中发布/渲染某段代码时,其中一个环境出现了突然问题.它是一个DTAP环境,问题只发生在生产环境中(一如既往;-),其中有两台CMS机器和两台发布者.所有都表现出相同的行为.

导致问题的代码是:

StructureGroup SG = (StructureGroup)engine.GetObject("/webdav/pub/root/etc/etc...");
Run Code Online (Sandbox Code Playgroud)

"模板"构建器中的错误是:

System.Net.WebException: The underlying connection was closed: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.77.66.136:80 
   bij System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 
   bij System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) 
   bij System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) 
   --- Einde …
Run Code Online (Sandbox Code Playgroud)

tridion tridion2009

11
推荐指数
1
解决办法
257
查看次数

组件中的XSLT得到(未)编码

真的很简单的问题,但我似乎无法让它正常工作.

我有一个组件,其中有一些XSLT(用于导航).它通过XSLT TBB使用XSLT Mediator发布.

在发布< 变为<,并打破xslt ...

组件内容(纯文本字段)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tcm="http://www.tridion.com/ContentManager/5.0" exclude-result-prefixes="tcm xsl xs xlink tridion">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" />
    <xsl:template match="/">
        <xsl:apply-templates select="/node/node[@type='folder')='0' and position() &lt; 3]">
           <xsl:sort select="sortnum"/>
        </xsl:apply-templates>

        <xsl:template match="node">
            <xsl:text>Lorem Ipsum</xsl:text>
        </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

XLT CT TBB输出此组件:

<xsl:stylesheet version="1.0" xmlns:tcm="http://www.tridion.com/ContentManager/5.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tridion="http://www.tridion.com/ContentDelivery/5.3/TCDL" xmlns:xlink="http://www.w3.org/1999/xlink"  xmlns:helper="http://www.tridion.com/xslthelper" xmlns:systeemcode="http://www.indivirtual.nl/SysteemCode" xmlns:xhtml="http://www.w3.org/1999/xhtml" exclude-result-prefixes="tcm xsl tridion xlink systeemcode xslthelper helper xhtml">
    <xsl:output method="text" omit-xml-declaration="yes" indent="yes" encoding="utf-8" standalone="no"/>
    <xsl:variable name="content" select="/tcm:Component/tcm:Data/tcm:Content/systeemcode:SysteemCode"/>
    <xsl:template match="/">
        <xsl:value-of disable-output-escaping="yes" select="helper:HtmlDecode($content/systeemcode:code)"/>
    </xsl:template>
</xsl:stylesheet>   
Run Code Online (Sandbox Code Playgroud)

输出CP的XSLT页面TBB: …

tridion tridion2009

11
推荐指数
1
解决办法
241
查看次数

如何才能最好地将Tridion Broker用作多个网站的单一内容源?

我正在研究这个拥有一堆非常不同的网站的Tridion实现,但是一些内容(如新闻)是通过蓝图的基本Tridion原则共享的.网站都使用相同的语言,因此我们只处理品牌差异.

当前情况:有一个名为Global content的出版物,其中创建了此全局内容.在架构中有一些复选框,可以选择显示此内容的子出版物.当组件被保存时,事件系统启动并创建包含组件的页面,发布它等等...组件的删除不会发生,只有未选中所有复选框的重新保存最终将通过批处理删除页面.

经纪人情况:我想开始使用经纪人.更重要的是,因为在未来的情况下,网站也将开始向外部网站分享更多内容,我将通过RSS源或基本API来做这些内容,这些内容最适合来自Broker的内容.

场景:

  1. 允许此全局内容发布发布动态内容,并在其他站点上直接从Broker中获取该内容(使用全局内容发布ID?)
  2. 在全球内容中制作假空目标,以便他们可以说"发布/取消发布所有子出版物?" (您仍然可以使用复选框允许它在某些出版物中发布)
  3. 使用全球内容网站发布动态内容并为内部和外部网站创建API/RSS源以供使用?
  4. 别的什么?

我最初想到的是第一种情况,但我可以看到主要的缺点是混合本地(新闻)新闻和全球新闻项目会变得更加困难.

第二种情况似乎是第二好的机会.有人有这样的实现经验吗?

tridion

7
推荐指数
1
解决办法
557
查看次数

2011年之前,Tridion版本上是否存在PublishTransactionsFilter?

我正在尝试使用Alex Klock的解决方案来查询发布队列以查看项目中是否已经存在.关于它的帖子在这里:http://www.codedweapon.com/2012/03/tridion-publishengine/

我使用的外表套上2009 SP1,但似乎我没有PublishTransactionsFilter可在我的代码ABSE.在我的文件顶部,我确实包括:using Tridion.Contentmanager.Publishing;

关于如何在Tridion 2009中获得类似工作的任何例外情况?特别是PublishEngine.GetPublishTransactions方法.我在2009 API中找不到类似的方法.只有需要特定TCMUri或XML的方法.

tridion

6
推荐指数
1
解决办法
180
查看次数

无法在Tridion 2009中删除结构组

这是(受限制的)Tridion论坛中关于无法删除结构组的问题的重复.但是,由于报告问题的人没有得到正确的答案或解决方案,我在这里重新询问.

我被一个结构组困住了,我也无法删除.它没有本地化,只有蓝色印刷到另一个出版物,并且没有任何页面.内容已经从一个演示环境中迁移出来,也许某个旧目标卡在了某个地方?

不能直接在数据库中删除它.还有其他方法吗?

tridion tridion2009

6
推荐指数
1
解决办法
300
查看次数

Tridion预览和HTML5元素

我们创建了一个基于HTML5的新网站.使用<header>,<nav>,<section>等元素...

这是Tridion 2009 SP1中非常简单的实现.这意味着该网站的大部分内容都不是动态的,而是由Tridion Templating构建的.其中一个好处是内容管理员可以使用预览功能.

但是,由于内容管理器仅限于使用IE8,我们必须使用类似Modernizr.js的内容来正确格式化HTML.

这是有趣的结束......在网站本身工作正常,但在Tridion预览屏幕中没有.它几乎似乎没有拿起Javascript.

任何想法,除了创建不同的预览HTML和CSS?

internet-explorer-8 internet-explorer-7 tridion tridion2009

6
推荐指数
2
解决办法
254
查看次数

在C#TBB中:如何将多个SingleLineTextField拆分为单独的字符串

我在Tridion中有一个可以有多个值的纯文本字段.itemtype是SingleLineTextField.

在TBB代码中,我有以下内容(删除了非必要部分):

ItemFields itemFields = new ItemFields(folder.Metadata, folder.MetadataSchema);

foreach (ItemField itemField in itemFields)
{
    string itemFieldValue = string.Empty;
    switch (Utilities.GetFieldType(itemField))
    {
        case FieldType.SingleLineTextField:
            itemFieldValue = itemField.ToString();
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,两个条目的结果只是两个字符串,其中包含一个字符行.

String A
String B
Run Code Online (Sandbox Code Playgroud)

使用的方法是通用的,也适用于其他字段,所以我一直在寻找一些方法来确定SingleLineTextField中是否有更多的值.

tridion tridion2009

4
推荐指数
1
解决办法
240
查看次数