小编Beh*_*ooz的帖子

主/细节困境:通配符项与虚拟项目的Sitecore管道或任何更好的主意?

我曾经使用通配符实现列表/详细信息场景,这意味着,为了URL,我创建一个常规项来显示列表,然后在该节点下,我创建一个通配符项来表示所有可能的详细信息页面,如:

/news/*  
Run Code Online (Sandbox Code Playgroud)

(我通过代码生成一个友好的名称来替换通配符并生成完整的URL,例如:mywebsite.com/news/the-meeting-press-release)

然后我在其他地方创建一个文件夹或一桶内容项作为我的存储库.然后我将相同的数据源分配给列表节点和通配符节点,以便为它们提供相同的内容项存储库.

我想要这样做的主要原因是使用数据源并使导航节点(生成实际页面和URL)与内容文件夹结构分开.换句话说,关注点分离:导航项目作为表示节点,内容项目作为我的数据存储库.

这是解决主/细节要求的简单方法,但我总是对此感到内疚,感觉这种技术打破了Sitecore后端的完整性(sitecore链接数据库表)和设计模式.

例如,当我查看分析时,我得到*作为项目的名称,显然它感觉像后端系统的外星人.

我知道这不是一个新话题.我已经看到像这样的线程或像Sitecore Pipeline Processor for Virtual Items这样的想法来实现这样的要求.

这有什么最好的做法吗?有什么最好的sitecore友好的方式实现这样的管道处理器的好例子?您如何使用Google Analytics上的通配符来解决此问题?

sitecore sitecore-analytics sitecore8

3
推荐指数
1
解决办法
1153
查看次数

将数据从Sitecore MVC视图渲染传递到布局渲染

我尝试在Sitecore MVC视图渲染中使用ViewBag将一些数据传递给相关的布局渲染,但它不起作用.在标准的ASP.NET MVC中你可以做到这一点,但也可以在Sitecore中做同样的事情吗?如果没有,那你如何传递数据?

编辑

澄清我的问题,这是我想要做的:我有一个像这样的布局渲染:

@using Sitecore.Mvc
@using Sitecore.Mvc.Analytics.Extensions
@using Sitecore.Mvc.Presentation
@model RenderingModel
@{
Layout = null;
}
<!doctype html>
<html>
<head>....</head>
<body>
@if (ViewBag.ShowNewsletterPopup == "display")
{
    <!-- render proper html markup to show newsletter popup -->
} 
else {
  <!-- render regular html markup --> 
}
<!-- some html markup here -->
@Html.Sitecore().Placeholder("widget")
<!-- some more html markup -->
Run Code Online (Sandbox Code Playgroud)

然后,内部内容占位符进入视图呈现,其中包含如下代码:

@using Sitecore.Mvc
@using Sitecore.Mvc.Presentation
@using Sitecore.Data.Items

@model RenderingModel
@{
   ViewBag.ShowNewsletterPopup = Model.Rendering.Parameters["ShowNewsletterPopup"];
Run Code Online (Sandbox Code Playgroud)

因此,我想要实现的是在两个html标记块之间切换,具体取决于位于这些块之外的视图渲染的设置.也许有更好的方法来做到这一点,但我不确定.我看到的是视图渲染代码在布局渲染后被编译,因此代码实际上永远不会被执行.

sitecore sitecore-mvc

1
推荐指数
1
解决办法
2448
查看次数

Sitecore 8:我的条件呈现规则在Marketing Center下无法运行

我试图以两种不同的方式应用我的自定义规则.当我单击个性化按钮并在那里应用规则时,它正在工作,但是当我点击渲染Presentation -> details -> layout details -> control properties并在那里启用个性化选项卡上的规则时它不起作用.我想知道为什么这种方法在这种情况下不起作用?

以下是我正在做的更多细节:

我正在使用条件渲染实现个性化.这是Sitecore 8解决方案,布局和渲染都是MVC.我在规则引擎(设置 - >规则)上设置了自定义条件代码.我的最终规则在规则集编辑器中看起来像这样:

Rule 1
Where the Parameter country has a value that is equal to sg set data source to Singapore
Run Code Online (Sandbox Code Playgroud)

我还Marketing Center -> Personalization -> Rules使用相同的自定义条件定义了条件渲染规则

如果我通过按个性化按钮直接在设备编辑器上应用规则集并在那里配置它,它就可以工作.但是,当我在控件属性上启用条件呈现规则时,它无法正常工作.为什么?

编辑

在某处我读到全局规则不适用于MVC组件.这是怎么表现出来的?如果是这种情况,营销中心的哪些区域将不适用于MVC组件?

sitecore personalization sitecore8

1
推荐指数
1
解决办法
1548
查看次数