Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save willprice76/3665463 to your computer and use it in GitHub Desktop.
Save willprice76/3665463 to your computer and use it in GitHub Desktop.
Pageless Tridion Content Get Content Query
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