@@refreshPortlet
AJAXを介してポートレットをロードするための特別なKSSビューを呼び出すことができます。<param name="html">
応答は、新しいHTMLスニペットを含む要素を含むXMLドキュメントです。これは、サイトのルートまたは現在のコンテキストで呼び出すことができます。
以下は本番サイトからの抜粋であり、完全ではありませんが、アイデアが得られるはずです。
// $wrapper is the portlet wrapper div
var portlethash = $wrapper.attr('id').split('-')[1];
var base = $wrapper.data('baseurl') || $('link[rel=kss-base-url]').attr('href');
$.ajax({url: base + '/@@refreshPortlet', type: 'GET', dataType: 'xml',
data: { portlethash: portlethash },
success: function(data) {
var contents = $('dd.portletItem', $(data).find('param[name="html"]').text());
$wrapper.find('dd.portletItem')
.replaceWith(contents);
}
});
変数$wrapper
はportletWrapper
divを参照します:
<div id="portletwrapper-[long string of characters]"
class="portletWrapper kssattr-portlethash-[long string of characters]">
<dl class="portlet portletSpecificClass">
<dt class="portletHeader">
...
</dt>
<dd class="portletItem">
...
</dd>
<dd class="portletFooter">
...
</dd>
</dl>
</div>
属性からのポートレットハッシュを使用することに注意してくださいid
。これは、KSS@@refreshPortlet
ビューがポートレットのみをレンダリングする方法を認識する方法です。
ポートレットのベースURLをラッパーの特定のデータ属性に格納して、正しいコンテキストでポートレットを取得するようにします。そうしないと、間違った情報が表示されるためです。