Created
September 7, 2012 11:43
-
-
Save willprice76/3665463 to your computer and use it in GitHub Desktop.
Pageless Tridion Content Get Content Query
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public XDocument GetContent(string contentType, string url) | |
{ | |
int publicationId = Int32.Parse(ConfigurationManager.AppSettings["tridion:publicationid"]); | |
var cpf = new ComponentPresentationFactory(publicationId); | |
if (GetViewType(url) == "Detail") | |
{ | |
int itemId = GetIdFromUrl(url); | |
if (itemId > 0) | |
{ | |
var cp = cpf.GetComponentPresentationWithOutputFormat(itemId, "Xml Document"); | |
if (cp != null) | |
{ | |
return XDocument.Parse(cp.Content); | |
} | |
} | |
} | |
else | |
{ | |
Query query = BuildQuery(contentType, url, publicationId); | |
XDocument result = XDocument.Parse("<items/>"); | |
string[] compUris = query.ExecuteQuery(); | |
foreach(string uri in compUris) | |
{ | |
var cp = cpf.GetComponentPresentationWithOutputFormat(uri, "Xml Document"); | |
if (cp != null) | |
{ | |
result.Root.Add(XElement.Parse(cp.Content)); | |
} | |
} | |
} | |
return null; | |
} | |
private Query BuildQuery(string contentType, string url, int pubId) | |
{ | |
List<Criteria> criteria = new List<Criteria>(); | |
criteria.Add(new SchemaTitleCriteria(contentType)); | |
criteria.Add(new PublicationCriteria(pubId)); | |
Query result = new Query(new AndCriteria(criteria.ToArray())); | |
result.AddSorting(new SortParameter(SortParameter.ItemInitialPublicationDate, SortParameter.Descending)); | |
return result; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment