【问题标题】:kentico get site cultures from macrokentico 从宏中获取站点文化
【发布时间】:2018-06-04 05:53:10
【问题描述】:

我正在使用 Kentico 11,并希望使用宏获取当前站点的可用站点文化。

我正在尝试从页面类型字段的数据源宏表达式中执行此操作。我已将数据类型设置为文本,将表单控件设置为多选。

我这样做的原因是因为我们的客户要求某些产品仅适用于特定的站点文化(他们使用站点文化作为位置)。

【问题讨论】:

    标签: kentico


    【解决方案1】:

    是的。你可以{%SiteContext.CurrentSite.OtherBindings.CultureSites.ItemsAsFields.CultureID%}。这将为您提供可用于您的站点的 CultureID 列表。要探索可用的宏并测试它们,我建议你去system->macros->console

    下面会输出 CultureID、CultureCode、CultureName:{%SiteContext.CurrentSite.OtherBindings.CultureSites.Transform("{#CultureID#} {#Parent.CodeName#} {#Parent.CultureName#}<br>")%}

    【讨论】:

      【解决方案2】:

      这种情况最好通过 CMS_SiteCulture 上的自定义 SQL 查询和 CMS_Culture 表上的连接来处理。

      开箱即用的宏不提供对此绑定的直接访问,您必须求助于自定义宏来获取正确的项目列表(数组)。

      【讨论】:

      • 我只是硬编码 SiteID,还是有更通用的方法来使用自定义 SQL 查询获取当前站点?目前我的 where 子句是:[CMS_SiteCulture].[SiteID] = 4
      • 您甚至可以在 SQL 查询中使用宏。我对多项选择和下拉列表进行了快速测试,SELECT * FROM CMS_Site WHERE SiteID = {%CurrentSite.ID#%} 解决得很好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多