RTFフィールドにコンテンツを追加するだけの場合は、カスタムURLを使用するほうがはるかに少ないでしょうか?
カスタムURLは、そのフィールドのタイトルのリンクとしてコンポーネントに表示されるスキーマフィールドで設定できるリンクです。これにより、指定されたURLのポップアップが開き、そこから直接フィールドに戻ることができます(既存のコンテンツに追加または置き換えることができます)。
このトピックに関するドキュメントがhttp://docportal.sdl.com/sdltridionで見つけることができます(direct topic link)
たとえばテキストフィールドにコンテンツを上書きするか、追加のカスタムURLのHTMLページは次のようになります。
<html>
<head>
<title>Custom URL example</title>
<style>
body {
background:#fafafa;
font-family:arial,helvetica,sans-serif;
font-size:12px;
line-height:1.5em;
}
a {
color:#000;
font-weight:bold;
text-decoration:none;
}
a:hover {
color:#666;
}
</style>
<script type="text/javascript" language="javascript" src="/WebUI/Core/Controls/Popup/PopupInit.js"></script>
<script language="JavaScript">
function overwrite(value) {
var fields = window.dialogArguments.getFields();
if (fields && fields.length > 0) {
if (fields[0].getValues() != null && fields[0].getValues()[0] != null && fields[0].getValues()[0].length > 0) {
if (!confirm('This will overwrite the existing content of the field. Continue?')) {
return;
}
}
fields[0].setValues([value]);
window.close();
}
}
function append(value) {
var fields = window.dialogArguments.getFields();
if (fields && fields.length > 0) {
var current = '';
if (fields[0].getValues() != null && fields[0].getValues()[0] != null && fields[0].getValues()[0].length > 0) {
current = fields[0].getValues()[0];
}
fields[0].setValues([current + value]);
window.close();
}
}
</script>
</head>
<body>
<h1>Make a choise</h1>
<p><a href="javascript:overwrite(' - dummy content - ')">overwrite current value</a></p>
<p><a href="javascript:append(' - dummy content - ')">append to current value</a></p>
</body>
</html>
これは、 .. \ Tridion \ webフォルダのどこかに配置するHTMLページ(私は通常、そこにCustomURLサブディレクトリを作成するので、/CustomUrl/example.htmlのように参照できます)
ありがとうございます。カスタムURLを使用してコンテンツを置き換える方法を教えてください。 –
に、appendオプションとoverwriteオプションを持つカスタムurl htmlページの例を追加しました。 –