When we have a new news-item with an image it will be displayed on top so that is good. But when we make a new news-item with an image that is earlier uploaded so it has an older upload date for the image, that news-item will not be on top.
I would like to have control over the items so we have an publishDate that must sort the items and not the create date from the images.
Some one that could change that please?
This is the whole Partial View:
@inherits UmbracoTemplatePage
@using System.Globalization
@{
// If the editor has not explicitly provided the "Page title" property page
// then just show the name of the page otherwise show the provided title
var pageTitle = string.IsNullOrWhiteSpace(CurrentPage.Title)
? CurrentPage.Name
: CurrentPage.Title;
// Model.Content is the current page that we're on
// AncestorsOrSelf is all of the ancestors this page has in the tree
// (1) means: go up to level 1 and stop looking for more ancestors when you get there
// First() gets the first ancestor found (the home page, on level 1)
var homePage = CurrentPage.AncestorsOrSelf(1).First();
// Find all pages with document type alias umbNewsOverview
// We do that using the plural, umbNewsOverviews (note the extra "s" in the end)
// Then take the first one, as we know there will only be on news overview page
var newsOverview = homePage.umbNewsOverviews.First();
// Similar to above: find all pages with document type umbNewsItem under the news overview page
// Then order them, first by publishDate (a property the editor can explicitly set on the news item)
// and then by createDate, which is set by Umbraco automatically when a page gets created.
var newsItems = newsOverview.umbNewsItems.OrderBy("publishDate desc, createDate desc").Take(4);
bool containsImages = newsItems.Where("image != String.Empty").Count() > 0 ? true : false;
var featuredNews = containsImages ? (Umbraco.Web.Models.DynamicPublishedContent)newsItems.OrderBy("image desc").First() : null;
var otherNews = newsItems;
if (containsImages && featuredNews != null)
{
var featuredNewsId = featuredNews.Id;
if(featuredNewsId > 0)
{
var values = new Dictionary<string, object>();
values.Add("excludenode", featuredNewsId);
otherNews = newsItems.Where("Id != excludenode", values);
}
}
}
Fontend mark-up
<div class="col-md-6 col-sm-6">
<div class="HomeBlock4">
<div class="col-md-6 col-xs-6 npl">
<h2>Algemeen</h2>
</div>
<div class="col-md-6 col-xs-6 npr">
<a href="/nieuws-algemeen/">
<div class="NewsArchiveLink pull-right">
Nieuws archief
</div>
</a>
</div>
</div>
<div class="HomeBlockContent">
<div class="rowpad col-md-12">
<ul>
@if (containsImages && featuredNews != null)
{
var featuredNewsTitle = string.IsNullOrWhiteSpace(featuredNews.GetPropertyValue("title").ToString()) ? featuredNews.Name : featuredNews.GetPropertyValue("title").ToString();
var featuredNewsText = featuredNews.GetPropertyValue("bodyText").ToString();
var featuredNewsImage = featuredNews.GetPropertyValue("image");
var featuredNewsTextTruncated = Umbraco.Truncate(featuredNewsText, 100, true, false);
<li>
<div class="imageItemHeight">
<div class="col-md-4 col-xs-4 npl">
<a href="@featuredNews.Url">
<div class="NewsHomeImageDiv">
<img src="/ImageGen.ashx?image=@featuredNewsImage&Compression=100&width=100&height=100&constrain=true">
</div>
</a>
</div>
<div class="npr WordBreak">
<h3><a href="@featuredNews.Url">@Umbraco.Truncate(featuredNewsTitle, 57, true, false)</a></h3>
@Umbraco.StripHtml(featuredNewsTextTruncated)
</div>
</div>
</li>
}
<div class="newsMargin">
@foreach (var newsItem in otherNews)
{
// If the editor has not explicitly provided the "Page title" property page
// then just show the name of the page otherwise show the provided title
var title = string.IsNullOrWhiteSpace(newsItem.Title) ? newsItem.Name : newsItem.Title;
// If the editor has not explicitly set the publishDate property then show the create date
var dateTime = newsItem.PublishDate == default(DateTime) ? newsItem.CreateDate : newsItem.PublishDate;
<div class="row npl npr">
<div class="HomeNewsItem">
<li>
<article class="is-post-summary WordBreak">
<div class="rowpad col-md-12">
<h3>
<img src="../Css/VVEemdijk/images/ItemImage.png" height="7" width="4" class="HomeNewsItemArrow">
<a href="@newsItem.Url">@Umbraco.Truncate(title, 41, true, false)</a>
<div class="NewsItemDate">@dateTime.ToString("f", CultureInfo.CreateSpecificCulture("nl"))</div>
</h3>
</div>
</article>
</li>
</div>
</div>
}
</div>
</ul>
</div>
</div>
</div>
That does not sound right, regardless of how old the image is you have explicitily set the sort to by news item publishdate and createdate. Can you do quick experiment, create new news item DO NOT SELECT AN IMAGE and note down after publishing the publish date and create date. Then select an older image and publish then check the create date, is that date updated? Report findings.
I make a new one without an image and publish it: createDate newsitem: 2014-09-09 10:53:29
Then i add an image and: createDate newsitem: 2014-09-09 10:53:29
Ordering by publishDate
Hi,
I have a question on a topic i started earlier (that was solved).
Related topic: Click
When we have a new news-item with an image it will be displayed on top so that is good. But when we make a new news-item with an image that is earlier uploaded so it has an older upload date for the image, that news-item will not be on top.
I would like to have control over the items so we have an publishDate that must sort the items and not the create date from the images. Some one that could change that please?
This is the whole Partial View:
Fontend mark-up
Kind regards,
Robert
Robert,
That does not sound right, regardless of how old the image is you have explicitily set the sort to by news item publishdate and createdate. Can you do quick experiment, create new news item DO NOT SELECT AN IMAGE and note down after publishing the publish date and create date. Then select an older image and publish then check the create date, is that date updated? Report findings.
Regards
Ismail
Hi Ismail,
Thanks for your reply!
I make a new one without an image and publish it: createDate newsitem: 2014-09-09 10:53:29 Then i add an image and: createDate newsitem: 2014-09-09 10:53:29
EDIT: the publishDate is empty by default.
Regards, Robert
is working on a reply...