gpt4 book ai didi

umbraco - 您如何在 umbraco 中创建新闻文件?

转载 作者:行者123 更新时间:2023-12-04 23:07:48 29 4
gpt4 key购买 nike

我正在尝试在 umbraco 中创建一个新闻文件,它会在其中显示按月组织的新闻页面列表。每个页面都会显示当月新闻项目的列表。

我关注了 tutorial for creating news items ,但我不确定如何创建存档。似乎也没有任何引用可以在线执行此操作。当然,这是 CMS 的常见用例。

任何人都有任何想法(如果需要编码,最好使用 razorscript)?

最佳答案

我最终使用了 datefolders包,它根据预定义的日期字段自动将新闻项目分类到正确的年和月文件夹中,很像 @amelvin response . datefolders 的好处是它简化了用户必须手动将他们的文章分类到正确的文件夹中并维护该组织的过程。他们只需右键单击新闻容器项目,创建文章,设置日期,它就会出现在正确的文件夹中。此外,它会在更改日期时更改文件夹。

在文件的显示方面,我有以下 Razor 代码,其中NewsListing是新闻项目列表文档类型,和 NewsItem是新闻项目文档类型:

侧边栏中的存档列表

<umbraco:Macro runat="server" language="cshtml">
@{
dynamic newsListingNode = Model.AncestorOrSelf(1).DescendantsOrSelf("NewsListing").First();
}
<div class="archive">
<ul>
@foreach (var newsYear in newsListingNode.Children)
{
foreach (var newsMonth in newsYear.Children)
{
@* Use format time to get the month string *@
dynamic dateLabel = umbraco.library.FormatDateTime(newsYear.Name + " " + newsMonth.Name + " 01", "MMMM yyyy");

<li><a href="@newsMonth.Url">@dateLabel»</a></li>
}
}
</ul>
</div>
</umbraco:Macro>

月存档页面
  <umbraco:Macro runat="server" language="cshtml">
@* Check the it is a month folder *@
@if ((@Model.NodeTypeAlias == "NewsDateFolder") &&
(@Model.Up().NodeTypeAlias == "NewsDateFolder") &&
(@Model.Up().Up().NodeTypeAlias == "NewsListing"))
{
dynamic newsMonth = Model;
dynamic newsYear = Model.Up();

dynamic dateLabel = umbraco.library.FormatDateTime(newsYear.Name + " " + newsMonth.Name + " 01", "MMMM yyyy");

<div class="news">
<h2>News archive: @dateLabel</h2>
@{
dynamic newsItems = Model.DescendantsOrSelf("NewsItem").OrderBy("sortDate desc");
}
@foreach(var newsItem in newsItems) {
<div class="block-content">
<h5><a href="@newsItem.Url">@newsItem.Name</a></h5>
<p>@newsItem.summaryText</p>
<a href="@newsItem.Url">more»</a>
</div>
}
</div>

}
</umbraco:Macro>

关于umbraco - 您如何在 umbraco 中创建新闻文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106049/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com