在塞特罗尔,我有一个装满文章的文件夹。我每季度更新一次。然后,我必须转到另一个页面,手动链接到所有这些文章。我想知道是否有办法在另一页上自动列出这些文章。例如,如果文件夹中有10篇文章,但只有9篇是可发表的,那么我的主登陆页将只显示9篇已发表的文章,而不是第10篇。讲得通?当然,我可以手动完成这个任务,但是必须有一种方法来使它更加自动化。
发布于 2015-07-20 10:44:23
好吧,让我们从更详细的角度看一下马克的答案。在实际生产环境中,您可能至少有两个服务器--创作(content或CM)和内容传递(CD)。您只在CM上运行кSitecore桌面,并将项目发布到CD数据库。你将有一个副本的网站代码运行在CM (至少做网页预览)和CD上,事实上,你的网站是。
仅发布到CD数据库中的项,因此具有上面的代码。
var folder = Sitecore.Context.Database.GetItem("your-folder");
var children = folder.GetChildren();在CD上运行将遍历在那里发布的项目(10项中的9项)。
运行在CM上的相同代码(假设在页面预览模式中)将显示所有项(其中10项),除非您在工作流中分配了这些项,并且在迭代和处理特定状态时显式检查工作流状态(例如,最后一项)。该代码可能如下所示:
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();
}
}发布于 2015-07-20 09:42:00
不太确定我是否正确理解你。但现在开始了。
var folder = Sitecore.Context.Database.GetItem("your-folder");
var children = folder.GetChildren();虽然很简单,但从你所描述的角度来看,它并没有什么意义。在一个正常的网站上,你的上下文数据库将是“网页”,只有9篇可发表的文章将在那里。任何“不可出版”的东西都无法到达这里。
如果有更多的曲折,我认为你的问题需要更多的信息。
https://stackoverflow.com/questions/31464526
复制相似问题