用于在侧栏

时间:2016-12-20 18:32:08

标签: kentico

我有多个产品页面(相同的页面模板),每个页面应该在侧栏上有不同的销售代表联系人。我将侧边栏联系人框设置为转发器,以从SalesRep页面类型中提取数据/过滤数据。 SalesRep页面类型有一个名为ContactForPage的字段;我的计划是从产品页面URL中输入一个字符串,这样如果字符串与页面URL匹配,联系人将显示在该页面的侧栏上。

实施例: 当前页面网址为:www.domain.com/products/product-123

John Doe有ContactForPage = product-abc

Jane Doe ContactForPage = product-123

Jane Doe将显示为联系人,因为字段值与URL的一部分匹配。

我一直在尝试编写WHERE语句,但实际上并不知道语法。你能帮忙吗! 类似于:WHERE: SalesRep.ContactForPage LIKE '%CurrentDocument.NodeAliasPath%'

3 个答案:

答案 0 :(得分:2)

在SQL查询中使用URL的所有拳头都不是一个好主意。您必须正确定义销售代表和产品之间的关系。可能一个销售代表可能会销售电视,另一个可能是销售手机。但是如果你想直接将产品连接到销售人员那里。您可以使用相关页面和关系结构。

  • 创建新的关系名称,即“是产品的销售员” 页面A(销售员页面)将通过上述关系与页面B(产品页面)相关联。
  • 添加相关页面,即对于所有销售人员页面,通过API或通过属性添加相应的产品>相关页面
  • 使用web RelatedPages Web部件显示右侧的销售人员列表

答案 1 :(得分:0)

我发现你的设计存在问题。我认为销售代表可以管理多个产品,对吗?如果是这种情况,您应该在Product pagetype中添加一个字段,允许您选择销售代表而不是将字段添加到SalesRep页面类型,因为您将如何输入多个产品?

您添加到Product PageType的字段(例如SalesRepID)可以是用于选择销售代表的下拉列表。您可以使用Query从SaleRep页面类型自动生成列表。例如“SELECT RepID,RepName FROM custom_SalesRep”。 RepID将存储在SalesRepID字段中。

对于显示,您可以使用为SalesRep pagetype设置的转发器并使用如下的WHERE条件: RepID = {%CurrentDocument.GetValue(“SalesRepID”)%}

答案 2 :(得分:0)

关系正在双向进行。您可以将多个文档相关联,反之亦然,即一个产品可以由许多销售人员销售,一个销售人员可以销售不同的产品。你只需要定义一个关系。如果您在“产品A”页面和“推销员约翰”页面之间存在关系,您将在属性>中的两个页面上看到此关系。相关页面。

我所说的就是:您不需要为页面类型(推销员或产品)添加额外的字段,您应该使用关系。 请阅读Displaying related documents