小编Alv*_*yes的帖子

我们何时在给定OrganizationalItemData属性的情况下明确设置CME权限?

我正在为Core Service创建一个OrganizationalItemData对象的权限设置列表,我正在寻找帮助确认何时在CME中明确设置权限.

给定一个组织项并了解其共享,本地化和权限继承设置,我们何时需要为其明确设置权限(在CME下Properties> Security)?

API详细信息

鉴于OrganizationalItemData orgItem我可以检查以下内容(文档中的详细信息).

  • IsShared
    获取或设置是否在当前上下文发布中共享该项.

  • IsLocalized
    获取或设置项目是否已在当前上下文发布中本地化.

  • IsPermissionsInheritanceRoot
    如果为项目本身指定了权限,则为true; 否则,false,如果item继承父项的权限.

示例代码

我可以使用Core Service检查给定CMS中的权限设置.例如:

var CreatedHere = !orgItem.BluePrintInfo.IsShared.GetValueOrDefault();
var IsLocalized = orgItem.BluePrintInfo.IsLocalized.GetValueOrDefault();
var PermissionsFromParent = !orgItem.IsPermissionsInheritanceRoot.GetValueOrDefault();
Run Code Online (Sandbox Code Playgroud)

我想输出给定组织项的权限,还有CMS管理员实际需要在其发布中设置属性的说明.例如,我可以使用针对CMS测试的脚本来显示CMS生产可能需要的内容.

方案

这是事实(我认为).

Shared  Local(ized)  PermissionsRoot  Set here?
No      No           No               No, set in parent in this Publication.
No      No           Yes              Yes, set in this "local" item.
No      Yes          No               Not possible. Can't localize non-shared item. 
No      Yes          Yes              Not possible. Can't localize non-shared item. …
Run Code Online (Sandbox Code Playgroud)

tridion

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

如何在Experience Manager中限制给定页面类型的内容类型

Experience Manager(XPM)(SDL Tridion 2011 SP1的用户界面更新)允许管理员创建页面类型,其中包含与页面类似的组件演示,但也添加有关如何创建和允许其他内容类型的规则.

对于给定的页面类型,我想通过限制内容类型选择来简化作者的选项.

我知道我们可以:

  • 限制内容类型,以便对于给定的页面类型,作者只能创建某些预定义的内容类型
  • 在仪表板中,通过取消选择将上述内容完全限制为仅预定义的内容类型Content Types Already Used on the Page
  • 使用指定模式和模板组合的区域以及数量限制.作者只能将某些类型和数量的组件添加(拖放)到这些区域.例如,我们可以输出以下内容Staging来创建一个区域:
<div>
<!-- Start Region: {
  title: "Promos",
  allowedComponentTypes: [
    {
      schema: "tcm:2-42-8",
      template: "tcm:2-43-32"
    },
  ],
  minOccurs: 1,
  maxOccurs: 3
} -->
<!-- place the matching CPs here with template logic (e.g. TemplateBeginRepeat/ TemplateBeginIf with DWT) -->
</div>
Run Code Online (Sandbox Code Playgroud)
  • 作者可能仍会看到他们可能想要插入的组件(下图),但如果区域控制允许的内容,则无法添加它们
  • 但是,文件夹权限可以减少作者在插入内容库中可以查看/使用的组件

插入内容

我把它们都拿走了吗?XPM功能中的任何其他方式或可能的扩展考虑如何限制给定页面类型的允许内容?

tridion tridion-2011

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

重命名类别和关键字以及其他GUI标签

我们可以扩展/替换SDL Tridion 2011 Content Manager Explorer中提供的标签吗?

我特别感兴趣的是更改出版物下的根项目.

背景

SDL Tridion具有组织项目,用于对项目或构建块进行分组或"存储" (不要与模板构建块,特定项目混淆).

例如:

  • 文件夹存储组件,模式和模板.
  • 结构组存储页面.
  • 类别存储关键字.

在默认发布下,我们有三个选项:根文件夹,根结构组和类别和关键字(包含类别)的标签.

DashboardTree

Categories & Keywords标签本身是不是在以同样的方式分类Building Blocks是一个文件夹.Dominic Cronin暗示了这个SO答案的不同之处.

  1. 我可以重命名和本地化Building Blocks和Root.但我可以/我在哪里扩展/更改类别和关键字标签? 我认为它是Tridion.Web.UI.Strings的一部分.它必须翻译/翻译.
  2. 另类程序化建议?

用于更改这些内容的用例包括:

  • 更改文件夹,SG以及类别和关键字名称,以便作者更容易获得他们在BluePrint中所处位置的上下文(当出版物名称不可见时,我有时会忘记上下文)
  • 当"类别和关键字"或其他Tridion术语混淆作者时,减少混淆.这应该谨慎使用,但也许"Tridion类别"可以帮助区分组织已经使用的"类别".

tridion

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

使用Core Service创建组件时出现故障状态错误

在SDL Tridion 2011 SP1中使用Core Service时出现"故障状态"错误.以下是什么问题?

namespace coreservice1
{
      public partial class _Default : System.Web.UI.Page
      {
       protected void Page_Load(object sender, EventArgs e)
       {
        try
        {

            using (ChannelFactory<ISessionAwareCoreService> factory =
      new ChannelFactory<ISessionAwareCoreService>("wsHttp_2011"))
            {
                ISessionAwareCoreService client = factory.CreateChannel();
                string SCHEMA_URI = "tcm:7-426-8";

                var schemaFields = client.ReadSchemaFields(SCHEMA_URI, true, new ReadOptions());
                foreach (var field in schemaFields.Fields) 
                { 
                    Response.Write(string.Format("{0}", field.Name));                         
                } 
                Response.Write(schemaFields.NamespaceUri);
                string NEW_COMPONENT_FOLDER_URI = "tcm:8-15-2";

               Tridion.ContentManager.CoreService.Client.ComponentData component = new Tridion.ContentManager.CoreService.Client.ComponentData
               {
                   Schema = new LinkToSchemaData { IdRef = "tcm:8-426-8"},
                   Title = "Helloworldalll",
                   Id = "tcm:0-0-0", …
Run Code Online (Sandbox Code Playgroud)

tridion

5
推荐指数
1
解决办法
1279
查看次数

我应该使用tcdl,Tridion标签还是RenderComponentPresentation?

使用Tridion管理"全局"徽标

例如,要使用SDL Tridion管理网站范围的徽标及其文本元素,我希望它在一个组件中,由(动态)组件模板呈现,并由页面模板放置.我的要求包括:

  1. 徽标作为组件 -作为多媒体(mm)组件和链接,alt(即"home")的图像,以及可选容器组件中的其他文本
  2. 动态组件演示(DCP) - 无需发布每个页面即可管理徽标的标记演示和发布更改
  3. 可共享 - 能够在较低的出版物中本地化组件中的多媒体和文本,而不是模板

虽然主页上的徽标CP可以提供动态链接,但作者不需要将徽标作为组件展示(CP)放置在每个页面上.

RenderComponentPresentation(),TCDLTridion标签为"非CP"

对于这种无CP方法,我认为RenderComponentPresentation()或TCDL标签将是正确的"不可知"方法.一个比另一个更受欢迎吗?

例如,我的模板输出:

<h3>By tridion: (ASP.NET) tag</h3>
<tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

<h3>By tcdl: tag</h3>
<tcdl:ComponentPresentation
    PageURI="@@Page.ID@@"
    type="Dynamic"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

<h3>by render component presentation</h3>
@@RenderComponentPresentation('tcm:7-1533','tcm:7-1532-32')@@
Run Code Online (Sandbox Code Playgroud)

这些在文件系统上转换为以下内容.

<h3>By tridion: (ASP.NET) tag</h3>
<tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

<h3>By tcdl: tag</h3>
<tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

<h3>by render component presentation</h3>
<tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>
Run Code Online (Sandbox Code Playgroud)

每个都呈现传递方,以便用户在浏览器中看到正确的CP.

问题(S): …

tridion tridion-content-delivery

5
推荐指数
1
解决办法
1058
查看次数

SDL Tridion架构字段"链接列表"选项

我正在寻找创建一个SDL Tridion架构,其中包含可重复链接列表,同时避免每个链接多个字段.

超链接

在富文本字段中,我有以下创建超链接的选项:*

  • 零件
  • HTTP://
  • 邮寄地址:
  • 其他

当内容作者创建其中一个超链接时,他们可以选择链接(可见)文本以及功能类似于典型HTML超链接的标题和目标属性.

"Richtext"表示文本字段,其中Height of the Text Area=至少有2行已Allow Rich Text Formatting选中.

单一模式字段链接 创建单个模式字段时,我看到以下选项:

  • 外部链接(作者选项将包括http://,mailto,其他)
  • 多媒体链接
  • 组件链接(可以允许多媒体值)

目前的想法

我在这个"链接列表"中找到的最好的开箱即用(OOTB)设置是提供:

  1. 单个2行RTF,带有在该字段中创建超链接(任何类型)的指令
  2. 每种类型的单独字段以及显示名称,目标和标题的其他字段(字段通过模板代码汇编),作者只填写其中一个字段(组件链接或外部)

架构表单设计器中是否有一种方法,通过更新架构源,或通过代码提供相同(RTF)超链接下拉选项,但在单个字段中?我可能会遗漏一些东西,但是认识到OOTB不支持这种情况.

tridion

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

禁用仪表板按钮时,我们可以显示不同的工具提示吗?

我正在专门研究Tridion 2011的PowerTools扩展,但这适用于任何带有仪表板按钮的Anguilla扩展.

我们可以设置<ext:title>一个悬停工具提示.用户将鼠标悬停在GUI扩展按钮上以查看此文本.请参阅配置中 "count items"扩展的示例.

<ext:extension assignid="CountItems" name="Count Items" 
               pageid="Power Tools" groupid="Tools">
    <ext:command>PT_CountItems</ext:command>
    <ext:title>Count Items</ext:title>
    <ext:issmallbutton>false</ext:issmallbutton>
    <ext:dependencies>
        <cfg:dependency>PowerTools.Commands</cfg:dependency>
    </ext:dependencies>
    <ext:apply>
        <ext:view name="DashboardView" />
    </ext:apply>
</ext:extension>
Run Code Online (Sandbox Code Playgroud)

我们要求在未启用扩展时将此工具提示更改为某些有用的文本.

我可以使用Chrome控制台查看按钮内的"计数项目"文本.

<div id="CountItems" class="tridion button PT_CountItems ribbonitem disabled"
     title="Count Items" c:command="PT_CountItems" 
     c:controltype="Tridion.Controls.RibbonButton" 
     style="-webkit-user-select: none; ">
    <div class="image">&nbsp;</div>
    <div class="text">Count Items</div>
</div>
Run Code Online (Sandbox Code Playgroud)

此外,在控制台上,我可以选择的div文字周围:$("div#CountItems > div.text").我不知道如何获取文本.

问题: 当GUI按钮处于非活动状态时,如何/应该如何更改工具提示文本?

我可能也需要澄清这些.

  • 在安圭拉(或PowerTools),是$()一样的jQuery()吗?我尝试$("div#CountItems > div.text").text()并获得 Object #<HTMLDivElement> has no method 'text'
  • 当按钮被禁用时,是否有首选或可配置的方法来设置该工具提示?我确信我们可以在DOM中找到一个元素,但我可能会遗漏一些东西.

最后,

  • {NameSpace}.Commands.{ExtensionName}.prototype.isValidSelection = …

tridion tridion-2011

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

Tridion DTAP Clarified - 我需要多少内容交付设置?

在另一个问题中询问了Tridion DTAP(开发,测试,验收和生产)的开发人员设置,但是理解该示例与典型的DTAP场景不匹配.

Chris Summers在他的第五届Tridion环境报道中解释了CM方面的问题.但为了清楚起见,我可以帮助理解理想的设置吗?

CMS环境

  • D =发展
  • T =测试
  • A =接受
  • P =生产

据我所知,典型的作者只使用Production并从CMS Production发布到"Live"和"Staging".其他环境是用于开发的.

光盘?

"实时和暂存"是否适用于其他每个环境 - 这是否意味着8个内容交付设置(每个网站)?

如果是这样,合并在哪里可以 - 更少的CMS环境?目标类型更少?

tridion

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

我可以删除SDL Tridion默认组吗?

我假设默认的Tridion组(例如编辑,主编等)有一些独特或特殊的东西,因为创建一个新的出版物似乎自动获得这些组.

我实际上看到新出版物在创建时获得其指定父级中的所有组,这不一定是因为它们是默认组.

我可以删除这些默认组吗?除了开箱即用的工作流程选项,还有任何理由从编程或技术角度将这些留在Tridion中吗?

tridion

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

Documentum到Tridion迁移期间的XML映射

是否有用于将Documentum XML文件转换为SDL Tridion内容的工具或实用程序?

我更喜欢相关的XSL示例或XSLT文件,用于系统之间的XML-XML转换.

xml mapping documentum tridion

3
推荐指数
1
解决办法
529
查看次数

将此Embeddable Schema命名为

我正在使用一个相当通用,可重用的嵌入式架构.

我被困在这个"基本"架构的名称上!

"基本"

可嵌入的架构字段:

  • 横幅(或大)图像作为多媒体链接
  • 缩略图图像(可能取决于大图像是否可重复使用)
  • 标题(单行文字)
  • 摘要(多行文字)
  • Body Content (另一个可嵌入的模式,允许重复)

身体内容

这应该是熟悉的:

  • Body Subheader(单行文本)
  • 身体内容(强制性,允许重复)

与组织相关的名称是否适合" basic"嵌入式架构?也许这应该是进一步分解或甚至不结合.

tridion

2
推荐指数
1
解决办法
125
查看次数

Objective-c将字符串转换为double会导致null

我正在编写一个应用程序,用户输入相加的数值.当我尝试将输入从字符串转换为double时,结果为null.例如:

 NSString *firstString = stringTextbox.text;
 NSLog(@"the first string is %@", firstString);

 double firstDouble = [firstString doubleValue];
 NSLog(@"the first double is %@", firstDouble);
Run Code Online (Sandbox Code Playgroud)

第一个日志显示正确的输入,但第二个NSLog()调用显示"null".

string double objective-c

-1
推荐指数
1
解决办法
1574
查看次数