独自の JavaScript を SDL Tridion 2011 のパブリッシュ ダイアログに「挿入」するための GUI 拡張機能を作成しました (この記事とコメントで説明されています: http://albertromkes.wordpress.com/2012/01/30/tridion-gui- extensions-how-to-load-a-javascript-without-showing-a-gui-element/ )
SDL Tridion のパブリッシュ ダイアログ (publish.js) で、パブリッシュ ダイアログが (URL ではなく) いくつかのパラメーターを受け取り、これらが渡されることがわかります。たとえば、次のようになります。
var p = this.properties;
if (p.params && p.params.items && p.params.items.length > 0)
したがって、私の JavaScript では、properties.params.items を取得したいのですが、取得できないようです。
パブリッシュ ビューがロードされた後、私の JavaScript コードが挿入されます。
<cfg:extension target="Tridion.Web.UI.Editors.CME.Views.Popups.Publish">
<cfg:insertafter>Extensions.Resources</cfg:insertafter>
</cfg:extension>
そして、私の JavaScript (および Firebug コンソール) で、 を使用して値を取得しようとしました$display.getView().properties
が、これはオブジェクトを返しnull
ます。
window
Firebug を使用して やその他のさまざまなオブジェクトを見回してきましたが$display
、オブジェクトに到達する方法がわかりませんparams
。
私の JavaScript は次のようになります。
$evt.addEventHandler($display, "start", itemsForPublish);
function itemsForPublish() {
var p = $display.getView().properties;
var items = p.params.items || [];
alert(items);
}