2012-01-31 9 views
1

私はこれを理解するのに多くの問題を抱えてきました。Umbracoの親ノードにサブノードのコンテンツを表示

私がしたいのは、すべての質問と回答を同じページに表示するFAQページです。サブノードのコンテンツから質問と回答の内容を取得します。

だから、例えば私のツリーは次のようになります。

  • よくある質問
    • Question1
    • Question2
    • Question3

私はFAQListのテンプレートが一覧表示にしたいです質疑応答データ同じページの質問1 ... 2 ...と3から

私はこれが実行されている例を見つけようとするたびに、サブページをリンクとしてリストする例しか見つけられません。私はサブページにリンクしたくありません。私は実際にそれらから親ページにコンテンツを印刷したいです。それは可能ですか?

これで私の試みです:

<xsl:for-each select="$currentPage/node"> 

    Question: <xsl:value-of select="data [@alias = 'question']"/><br/> 

    Answer: <xsl:value-of select="data [@alias = 'answer']"/><br/> 

</xsl:for-each> 

しかし、私は結果がありませんでした。ここで助けてください。私はこれについて私の頭を叩いています。

答えて

3

すべては、実行しているUmbracoのバージョンによって異なります。 Umbracoのはるかに前のバージョンを指していて、最近のバージョンではうまくいきません。

ご質問のドキュメントタイプの別名が「FaqItem」と呼ばれていると仮定し、このXSLTは、それぞれのコンテンツノード上で実行されると仮定(すなわち$currentPageは、あなたの質問の親ノードである)、次を使用することができます。

あなたが> = Umbraco 4.5.1

を使用している場合は、< Umbraco 4.5.1

<xsl:for-each select="$currentPage/child::node[@nodeTypeAlias='FaqItem']"> 
    Question: <xsl:value-of select="./data[@alias='question']"/><br/> 
    Answer: <xsl:value-of select="./data[@alias='answer']"/><br/> 
</xsl:for-each> 

を使用している場合

今後の参考のために

あなたは、XPathに慣れているとUmbracoは、データが格納されている方法を理解するために、またはデバッグに役立つしたい場合。 Umbraco.configというファイル(通常は~/App_Data/にあります)を探します。これは、すべてのXSLTが読み込むキャッシュされたXMLです。関連するスニペットをこのファイルから[Stack Overflow]に投稿すると、XSLTの投稿者がUmbracoの投稿者だけでなく、対応できるようになります。

+0

ありがとうございます。これは私のために働いた答えでした! – Bill

1

剃刀を見たことがありますか? IMHO読み書きがはるかに簡単です。

@using System.Linq 
@using System.Xml.Linq 
@using umbraco.MacroEngines  

@{ 
    IEnumerable<DynamicNode> FAQs = new DynamicNode(Model.Id).Descendants("FaqItem").Items; 
    List<DynamicNode> faqList = FAQs.ToList(); 

    @foreach(DynamicNode faq in faqList){ 
     Question: @(faq.GetProperty("question").ToString()) 
     Answer: @(faq.GetProperty("answer").ToString()) 
    } 
} 
関連する問題