2

umbraco xslt コード内の URL の末尾に「?alttemplate=TemplateName」を使用しています

次に例を示します。<a href="{umbraco.library:NiceUrl(@id)}?alttemplate=CommunityVideo">Click here</a>

ユーザーがリンクをクリックすると、ポップアップ ( fancybox ) がトリガーされ、内部に適切なコンテンツが表示されます。

このポップアップは完全に機能しています。唯一の問題は、umbraco 内のノードに関連付けられたテンプレートに RTE (リッチ テキスト エディター) があることです。「CommunityVideo」テンプレートに umbraco フィールド選択項目があるため、RTE 内に入力したコンテンツが表示されません。これは非常に奇妙です。

理論的には、コンテンツはレンダリングされるはずですが、そうではありません。

コンテンツを設定するコードは次のとおりです。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title><umbraco:Item field="pageName" runat="server" /></title>
  <link rel="stylesheet" href="/css/main.css" type="text/css" />
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>
<body id="popup">
  <div id="comm-video-wrap">
    <umbraco:Item field="bodyText" runat="server" />
  </div>
</body>

何か案は?

4

2 に答える 2

1

ありそうもない理由がたくさんあります。

まず、アイテムのエイリアスのスペルを間違えました-Doctypeの名前は「BodyText」または「BodyText」または「bodyText」だと思います-これらはすべてbodyTextのエイリアスを生成します-そうでない場合は可能です問題になります。

次に、レンダリングされたアイテムを非表示にするスタイルシート設定があります-firebugを使用してそれをチェックしてください。

alttemplateを使用すると機能するはずですが、自分が思っているテンプレートを実行していることを確認する必要があります。

textIfEmpty属性を追加することで確認できるRTEで使用可能なテキストがない可能性があります。

<umbraco:item field="bodyText" textIfEmpty="There is no commentary text" runat="server" />

デバッグに役立つ可能性のある他のumbraco:item属性があります。umbraco:itemステートメントを次のように調整してみてください。

<umbraco:item field="bodyText" insertTextBefore="**BEFORE**" insertTextAfter="**AFTER**" htmlEncode="true" textIfEmpty="There is no commentary text" runat="server"/>

テキストが表示されない場合は、実行されていると思われるテンプレートは表示されません。

于 2012-08-02T09:06:37.267 に答える
0

もう 1 つの可能性は、テンプレート名が正確ではないことです (大文字と小文字など)。fancybox はページを取得するために AJAX 呼び出しを行っていますか? 応答で上からマークアップを取得していますか、それとも空白ですか?

于 2012-08-02T19:57:16.690 に答える