Да и нет. Официально вы можете пойти глубже в соответствии с API-интерфейсом виджета, но в файле JavaScript виджета есть «ошибка», которая мешает ему работать. У меня была такая же проблема, и я просто перезаписал этот файл JavaScript.
определение виджета:
<article jcr:primaryType="cq:Widget"
fieldLabel="Article Type"
name="./cq:tags"
tagsBasePath="/etc/tags/namespace"
xtype="tags">
<namespaces jcr:primaryType="cq:WidgetCollection">
<ns1 jcr:primaryType="nt:unstructured" maximum="1" name="article-type" />
</namespaces>
</article>
<asset jcr:primaryType="cq:Widget"
fieldLabel="Asset Type"
name="./cq:tags"
namespaces="[asset-type]"
tagsBasePath="/etc/tags/offering"
xtype="tags"/>
В этом случае может быть выбран только один тег ниже article-type
; вы можете ограничить число атрибутом maximum
. asset-type
не имеет ограничений. Поэтому выберите вариант, который вам подходит.
JavaScript перезапись:
Чтобы сделать эту работу, вам необходимо изменить метод CQ.tagging.parseTag
в /libs/cq/tagging/widgets/source/CQ.tagging.js
:
// private - splits tagID into namespace and local (also works for title paths)
CQ.tagging.parseTag = function(tag, isPath) {
var tagInfo = {
namespace: null,
local: tag,
getTagID: function() {
return this.namespace + ":" + this.local;
}
};
var tagParts = tag.split(':');
if (tagParts[0] == 'article-type' || tagParts[0] == 'asset-type') {
var realTag = tagParts[1];
var pos = realTag.indexOf('/');
tagInfo.namespace = realTag.substring(0, pos).trim();
tagInfo.local = realTag.substring(pos + 1).trim();
}
else {
// parse tag pattern: namespace:local
var colonPos = tag.indexOf(isPath ? '/' : ':');
if (colonPos > 0) {
// the first colon ":" delimits a namespace
// don't forget to trim the strings (in case of title paths)
tagInfo.namespace = tag.substring(0, colonPos).trim();
tagInfo.local = tag.substring(colonPos + 1).trim();
}
}
return tagInfo;
};
Спасибо Томас! Вы изменили файл CQ.tagging.js в самой папке libs? Или вы создали надпись для нее? – mayurM
@mayurM Я фактически перезаписываю сам исходный файл. Не уверен, что оверлей будет работать в этом случае, поскольку это JavaScript, который загружается через clientlibrarymanager. Но вы можете попробовать, если оверлей будет работать также – Thomas
Не уверен, могу ли я задать этот вопрос или нет, я также работаю над тем же самым тегом в CQ5. Может ли кто-нибудь предложить мне, как изменить свойства ширины и высоты этого диалога. Я пробовал в tag.jsp и вкладке поля тега, но не использовал. – mchinta