2017-10-27 3 views
0

私は次のSitecore 7シナリオのWebフォームソリューションを探しています。Sitecore - ルートノードを設定するチェックボックスの項目を移動する

私は構造を持っており、いつでもエディタは項目のボックスをチェックしてルートノードとしてマークすることができます。アイデアは私がルートポイントとしてABOUT USをチェックすることができ、次に左のメニューはそのアイテムとその兄弟を表示するだけです。

同様に、私はそれを見つけるまでサイト

のその領域のための新しいGoogle anayltics IDは、誰もが存在トラバースまで私がチェックしたフィールドの現在の項目をチェックすることができますどのようにWebフォームのメソッドを支援している場合はできません再定義することができそのチェックボックスを使用して、そのアイテムのフィールドを使用しますか?

おかげ

答えて

0

あなたはルートアイテムとしてチェックフィールドを持つものを見つけるためにアイテムまたはその祖先を反復処理するために、このコードを使用することができます

public Item GetRootItem(Item item) 
{ 
    //Check if you reached the top of your content tree, you better replace the ID with your home page item ID, and then return the home page 
    if(item.ID == Sitecore.Data.ID.Parse("{11111111-1111-1111-1111-111111111111}")) 
     return null; 

    //Replace CheckboxFieldName with your field name 
    if (item["CheckboxFieldName"] != null && item["CheckboxFieldName"] == "1") 
    { 
     return item; 
    } 
    else 
    { 
     return GetRootItem(item.Parent); 
    } 
} 
+0

ザッツ偉大なあなたに感謝 - 御馳走を作品! – user3779703

+0

あなたのソリューションに関して、どのようにこれを拡張して継承の概念を含めることができますか?例IチェックボックスROOTをチェックすると、メソッドはこれをチェックし、その項目のフィールド値を取得します。 INHERIT SETTINGSという2番目のチェックボックスがある場合は、メソッドを使用してROOTを検索し、必要なフィールドを選択してからINHERIT SETTINGSをチェックし、ROOTをチェックして次の祖先を調べて、 INHERITがその項目にもあった場合、祖先を見るこの方法は繰り返されます。ありがとう – user3779703

関連する問題