現在編集中のページのテンプレートに応じて動作を変更する必要がある Sitecore 用のサード パーティ Javascript ツールを作成しています。
これまでのところ、このスクリプトを使用してテンプレートの名前を取得してきました。
jQuery(".scEditorSectionPanelCell a[onclick*='shell:edittemplate']")[0].innerHTML.match(/\/?([^/]+?)$/i)[1];
簡単な説明: ページを編集するときに、「Quick info」という段落があります (これが間違って翻訳されている場合はお詫びします - 英語版の Sitecore では動作しません)。この段落内には、現在のテンプレートを編集するための直接リンクがあります。これは、jQuery で取得したリンクです。
<td>
<a href="#" onclick="javascript:scForm.postRequest('','','','shell:edittemplate');return false">
/sitecore/templates/Imported/[NAME-OF-TEMPLATE]
</a> -
<input class="scEditorHeaderQuickInfoInputID" readonly="readonly" onclick="javascript:this.select();return false"
value="{[ID-OF-TEMPLATE]}">
</td>
そこから、正規表現を使用してテンプレートの名前を取得します。<input>
必要に応じて、兄弟要素からテンプレート ID を取得することもできます。
問題は、「Quick info」段落がすべてのユーザーに表示されないことです。
「クイック情報」が表示されていないときにテンプレート名または ID を取得する方法について何か提案はありますか? 基盤となる ASP.NET コードにアクセスできないため、ソリューションは厳密に Javascript である必要があります。