我有一个场景,我发布了几千个使用特定类别/关键字分类的组件演示文稿,但组件也有自定义元数据字段,用于定义前n个.将显示.基本上,我需要根据关键字过滤一组组件,根据自定义元数据对它们进行排序,然后只选择前N个.
我理解如何列出项目并创建基本过滤器(从API中的过滤器项列表),但我需要过滤元数据字段(例如,具有最新元数据"priorityDate" 的三个项目).
从我正在阅读的内容中,我希望从分类搜索中获取所有记录(使用TaxonomyKeywordCriteria),然后手动(对QueryRunner执行SQL)检索所有组件的元数据以进行过滤/排序.
我一定肯定错过了一些东西(它感觉不对,有1/2 API调用然后在页面SQL脚本中)...如果没有,QueryRunner查询将被缓存在Taxonomy Query.executeQuery()的结果旁边
示例代码:
ItemTypeCriteria isComponent = new ItemTypeCriteria(16);
TaxonomyKeywordCriteria taxonomyKeywordCriteria = new TaxonomyKeywordCriteria(taxURI, taxKeywordURI, true);
Criteria[] allCriteria = {isComponent, isTDIPublication, isArticle, taxonomyKeywordCriteria};
AndCriteria andCriteria = CriteriaFactory.And(allCriteria);
Query query = new Query();
query.setCriteria(andCriteria);
Run Code Online (Sandbox Code Playgroud) 有没有人对确认分类法缓存功能的简单但有效的方法有任何建议.我正在开发一个系统,其中cd_broker_config(Tridion 2009)将分类法缓存注释掉了.
我们现在已经取消注释并重新启动了部署服务,但有没有办法可以100%确认缓存现在正在进行?使用ORACLE 11.2.0.1
我们有5,000个PDF,总共不应超过200GB.他们可能需要全年更新,批量约为1,000.
如我所见,有两条主要路线......
1)通过Tridion发布PDF和相关元数据2)直接导入交付环境并管理Tridion中的PDF元数据
将这些PDF放入CMS的一个令人信服的(商业)原因是让它们投入生产的途径 - CMS =简单 - 非CMS =根本不容易以及它直接为业务提供的控制.
我们当然更愿意管理与二进制项直接相关的元数据,并且还利用组件链接(跟踪使用的位置等)而不是使用"链接"将组件(用于元数据)映射到非CMS控制的二进制项 - 所以在我看来,通过 CMS会更有意义.
现在 - 存在膨胀数据库/阻止发布队列的问题......
其中一些项目可能需要通过工作流程(如果我们通过WebDAV批量上传,我认为我们可以为特定文件夹定义特定的盒式磁带,从而关联不同的模式?).但是 - 使用WebDAV 可能意味着PDF(和历史版本)将存储在数据库中,这可能会有问题.
所以...我们可以将Tridion中的这些链接作为外部链接组件,但我认为这意味着我们不能使用WebDAV(或者我们仍然可以使用带有external_linked PDF的WebDAV - 看起来它没有意义吗?)
我确信在CMS中(或周围)管理大量二进制文件是我们很多人遇到过的,并且非常有兴趣了解其他人是如何处理这种困境的?
谢谢
我正在编写一个GUI扩展,它基本上将选定的文本包装在特定的DIV中.我的文本被封装了DIV,但是有点块...
当用户没有选择特定的文本时,我假设其意图是包装最近的HTML元素
htmlSelectedNode = target.editor.getSelectedHTMLElement()
Run Code Online (Sandbox Code Playgroud)
这一切似乎工作正常,我将HTML元素传递给我的扩展.经过一些操作后,我然后应用HTML,但它是在前一个元素中注入新的HTML - 而不是替换它...
是否有可能"选择"HTML元素 - 我可以看到a .focus()和a .setCapture()但这些似乎没有做到这一点 - 我想理想的是使用与从"当前元素"中选择元素时应用的功能相同的功能"功能区栏上的下拉菜单,但我没有成功找到与此下拉列表相关联的onclick/select方法.
只是为了澄清......举个例子......
如果文本是
<div class="notrelevant"><p>test1</p><p>this is an example</p></div>
Run Code Online (Sandbox Code Playgroud)
并且用户将光标插入'和'中的i和s之间我希望GUI预先选择最近的HTML元素 - 在这种情况下,最终结果将是......
<div class="notrelevant"><p>test1</p><div class="INJECTED_CORRECTLY"><p>this is an example</p></div></div>
Run Code Online (Sandbox Code Playgroud)
编辑: 对于完整性我已经包含提交事件,我用它来(重新)注入HTML成RTF(虽然我不认为这将是有意义的操作在这一点上的选择,并已"选择"宁愿上面的文字使用更"标准"的现有Tridion功能......)
$evt.addEventHandler(popup, "submit",
function DateHighlighter$execute$onPopupSubmitted(event) {
var el = event.data.html;
if (el) {
if (htmlSelectedNode != null) {
var lDocument = htmlSelectedNode.ownerDocument;
var lTempContainer = lDocument.createElement("span");
try {
lTempContainer.innerHTML = el || "";
}
catch (err) {
//assigning a value to innerHTML can be …Run Code Online (Sandbox Code Playgroud) 确定Tridion修补程序应用于系统的最可靠方法是什么(除了正确的先前版本文档)?
具体来说,我想了解SDL Tridion 2009,但也有兴趣了解它是否与SDL Tridion 2011不同.
我有一个Tridion Date控件添加到我创建的GUI扩展.aspx页面.
我已将此添加到ASPX页面中
<c:Date id="AdjustDate" runat="server"
IsSeparateFields="false" AddClearButton="false" TabIndex="3"></c:Date>
Run Code Online (Sandbox Code Playgroud)
在我的.JS中我添加了以下内容
给我一个Tridion日期控件的句柄(选择日期值等)
c.AdjustDate = $ controls.getControl($("#AdjustDate"),"Tridion.Controls.Date")
捕获日期中的更改(在用户在模态对话框中选择"确定"后)
$ evt.addEventHandler(c.AdjustDate,"change",this.getDelegate(this._onHighlightDateChange));
我捕获事件并根据所选日期执行一些更新.
但是,我的GUI扩展对话框的高度小于显示模式对话框时的高度.我想在用户单击Select Date并显示模式对话框时调整ASPX对话框的大小.
我现在已经捕获了用户点击Select Date按钮的事件
c.BtnDateSelect = $controls.getControl($("#AdjustDate_selectbutton"),
"Tridion.Controls.Button");
$evt.addEventHandler(c.BtnDateSelect, "click",
this.getDelegate(this._onDateButtonClicked));
Run Code Online (Sandbox Code Playgroud)
但是 - 我似乎无法访问生成的对话框的高度,因为我无法添加任何事件来配合
我错过了与之相关的活动吗?
我试图用OK创建一个OK按钮的句柄
BtnDateOKSelect =
$controls.getControl($("html#DatePickerPopup.popup body center div#buttonContainer div#ButtonOk.tridion"),
"Tridion.Controls.Button");
Run Code Online (Sandbox Code Playgroud)
但引用(及其变体)返回undefined - 可能是因为这是在iframe中,所以脚本无法访问它?
有关计算我可以绑定的事件的任何指示?如何与这些事件(以及何时)结合?
谢谢
当用户从页面或组件中选择选项时,我试图在UI/UX中捕获FinishActivity.
使用在相关配置文件中添加扩展命令的标准方法,我可以添加接口并使用下面显示的脚本捕获isAvailable方法.
Tridion.Extensions.CheckTitleOnFinishActivitySE = function Commands$CheckTitleOnFinishActivitySE() {
Tridion.OO.enableInterface(this, "Tridion.Cme.Commands.CheckTitleOnFinishActivitySE");
this.addInterface("Tridion.Web.UI.Editors.SiteEdit.Commands.FACommand", ["CheckTitleOnFinishActivitySE", $const.AllowedActions.FinishActivity]);
};
Run Code Online (Sandbox Code Playgroud)
Tridion.Extensions.CheckTitleOnFinishActivitySE.prototype._isAvailable = function (selection) {
var response = Tridion.Web.UI.Editors.SiteEdit.Commands.FinishActivity.prototype._isAvailable(selection);
};
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试重用exisitng isEnabled函数时:
Tridion.Extensions.CheckTitleOnFinishActivitySE.prototype.isEnabled = function (selection) {
var response = Tridion.Web.UI.Editors.SiteEdit.Commands.FinishActivity.prototype._isEnabled(selection);
};
Run Code Online (Sandbox Code Playgroud)
甚至从siteedit函数本身复制现有代码(我显然不愿意这样做)
Tridion.Extensions.CheckTitleOnFinishActivitySE.prototype.isEnabled = function (selection) {
return (selection && selection.getProperty && selection.getProperty("isSEPage")) &&
this.callBase("Tridion.Cme.Command", "_isEnabled", [selection]);
};
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
无法在[tcm:8-349-131200]上执行命令"FinishActivity".原因:未启用.
我可以通过在isEnabled函数中使用return true来强制启用状态,但我宁愿继承/重用现有的检查来满足当前和未来的情况......
我可以确认_ isAvailable被捕获并返回true并且扩展所需的函数是isEnabled而不是_ isEnabled(单独添加后者或者除了isEnabled之外没有效果)
任何建议都会很精彩!
提前致谢.
所以,我在扩展的isEnabled中添加了以下内容,以跟踪我的isEnabled'v'中选择对象的响应之间的差异,默认为isEnabled:
'workflow.js'显示isSEPage属性为true的值 - 但是直接在我的函数中检查它是错误的.它读取一致然后从我的isEnabled调用到原始它然后也返回false.我不明白选择会发生什么,或者我会处理不同的选择对象/上下文? …
我有一些简单的Javascript循环遍历项目数组(Tridion用户组)来检查用户是否是特定组的成员.
我可以轻松编写下面显示的问题(参见参考资料&& extensionGroup !== 'true'),但我想了解为什么isArray= true被计算为数组中的值 - 任何想法?
下面的屏幕截图显示了extensionGroups已设置的值
var extensionGroups = ["NotEvenARealGroup", "Author", "ExampleGroupAfterOneUserIsActuallyIn"];
Run Code Online (Sandbox Code Playgroud)
但是将isArray值作为第4个值返回?
更新以显示图像更清晰


tridion ×8
tridion2009 ×3
taxonomy ×2
tridion-2011 ×2
arrays ×1
binaries ×1
caching ×1
filtering ×1
hotfix ×1
javascript ×1
pdf ×1
siteedit ×1
workflow ×1