首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要一个显示在文件夹中发布的所有文章的页面。

需要一个显示在文件夹中发布的所有文章的页面。
EN

Stack Overflow用户
提问于 2015-07-16 21:06:46
回答 2查看 91关注 0票数 0

在塞特罗尔,我有一个装满文章的文件夹。我每季度更新一次。然后,我必须转到另一个页面,手动链接到所有这些文章。我想知道是否有办法在另一页上自动列出这些文章。例如,如果文件夹中有10篇文章,但只有9篇是可发表的,那么我的主登陆页将只显示9篇已发表的文章,而不是第10篇。讲得通?当然,我可以手动完成这个任务,但是必须有一种方法来使它更加自动化。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-20 10:44:23

好吧,让我们从更详细的角度看一下马克的答案。在实际生产环境中,您可能至少有两个服务器--创作(content或CM)和内容传递(CD)。您只在CM上运行кSitecore桌面,并将项目发布到CD数据库。你将有一个副本的网站代码运行在CM (至少做网页预览)和CD上,事实上,你的网站是。

仅发布到CD数据库中的项,因此具有上面的代码。

代码语言:javascript
复制
var folder = Sitecore.Context.Database.GetItem("your-folder");
var children = folder.GetChildren();

在CD上运行将遍历在那里发布的项目(10项中的9项)。

运行在CM上的相同代码(假设在页面预览模式中)将显示所有项(其中10项),除非您在工作流中分配了这些项,并且在迭代和处理特定状态时显式检查工作流状态(例如,最后一项)。该代码可能如下所示:

代码语言:javascript
复制
IWorkflow workflow = item.Database.WorkflowProvider.GetWorkflow(item);

if (workflow != null)
{
    WorkflowState state = workflow.GetStates().FirstOrDefault(state => state.DisplayName == workflowStateName);

    if (state != null)
    {
        // check the state according your requirements and append to collection
        var children = folder.GetChildren();
    }
}
票数 0
EN

Stack Overflow用户

发布于 2015-07-20 09:42:00

不太确定我是否正确理解你。但现在开始了。

代码语言:javascript
复制
var folder = Sitecore.Context.Database.GetItem("your-folder");
var children = folder.GetChildren();

虽然很简单,但从你所描述的角度来看,它并没有什么意义。在一个正常的网站上,你的上下文数据库将是“网页”,只有9篇可发表的文章将在那里。任何“不可出版”的东西都无法到达这里。

如果有更多的曲折,我认为你的问题需要更多的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31464526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档