2012-09-27 2 views
0

API 메서드를 통해 umbrac에서 데이터를 검색하는 방법에 대한 몇 가지 관점을 얻으려고합니다. 우리는 umbraco 4.9.x를 사용하고 있다고 생각합니다.umbraco API : 주어진 사이트 노드에 대한 문서 형식 데이터를 가져 오려고 시도합니다.

는 기본적으로 DiaryEventItems라는 데이터 유형이있다, 나는이에 액세스하려면 다음 코드를 사용합니다

// Get the ID of the data type 
DocumentType DocTypeDiaryEvents = DocumentType.GetByAlias("DiaryEventItems"); 

// Loop through those items using a foreach at present 
foreach (Document DiaryEvent in Document.GetDocumentsOfDocumentType(DocTypeDiaryEvents.Id)) 
{ 
    // Do whatever I need to 
} 

그래서이 잘 작동

.. 나는 내가 컬렉션을 다시 "DiaryEventItems"의/행을 그러나 얻을 과정의 umbraco 인스턴스에서 모든 DiaryEventItems를 얻습니다. 즉 모든 사이트에 대해. 그래서 분명히 사이트 루트 노드 ID를 얻고 아마도 필요한 실제 문서 형식을 얻기 위해 트리를 작동시키는 방법이 있지만 위의 코드와 비슷한 방법이 있습니까?

감사합니다. 감사드립니다.

답변

2

만 게시 노드에 대해 다음과 같은 기능을 시도 할 수 있습니다 : 당신이 찾고있는 경우

// 1234 would be root node id 
Node rootNode = new Node(1234) 

// we are passing root node so that it can search through nodes with alias as DiaryEventItems 
List<Node> diaryEventItems = GetDescendantOrSelfNodeList(rootNode, "DiaryEventItems"); 

나는이 도움이 될 희망, :

// this is variable to retrieve Node list 
private static List<Node> listNode = new List<Node>(); 

public static List<Node> GetDescendantOrSelfNodeList(Node node, string nodeTypeAlias) 
{ 
    if (node.NodeTypeAlias == nodeTypeAlias) 
     listNode.Add(node); 

    foreach (Node childNode in node.Children) 
    { 
     GetDescendantOrSelfNodeList(childNode, nodeTypeAlias); 
    } 

    return listNode; 
} 

이제 아래와 같은 코드에서 그 함수를 호출 할 수 있습니다 문서가없는 게시되지 않은 노드와 그 다른 노드에 대해서는 조금 시간이 걸릴 것입니다.하지만 게시되지 않은 노드 만 원하면 나중에 그 비트를 수행 할 것입니다.

+0

안녕하세요 Ankur! 응답 주셔서 감사합니다! 예, 이것은 게시 된 노드 등입니다. 그래서 시도해 볼 것입니다! 고맙습니다! –

+0

완벽하게 일했습니다! 좋은 본보기는 당신을 감사하십시오! –

관련 문제