问题标签 [sitecore7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4374 浏览

security - 索引 Sitecore 项目安全性并限制返回的搜索结果

我定义了几个角色,每个角色对内容和媒体项目都有不同的限制,我想限制基于当前登录用户的访问权限返回的搜索结果,而不是显示结果然后向用户呈现“拒绝访问”页面。Extranet\anonymous 显然可以访问某些内容,因此无论如何都应该为所有用户返回它们。

安全性遵循标准的Sitecore 实践,因此将使用角色继承(角色内的角色),因此也需要考虑到这一点。

我在Advanced Database Crawler 模块中看不到任何有用的信息,并且我查看了 Sitecore 搜索和索引指南(版本 6.6版本 7),但找不到任何有关对应用于项目的安全性进行索引的信息。以下文章有一些建议:

这感觉很“脏”,并且可能会出现性能问题,尤其是在返回大量项目时。此外,(见评论)分页结果的问题。

上面看起来更现实,并且会根据索引的安全角色过滤掉结果,显然需要扩展角色以处理角色内的角色。我在这里担心的是,当我们特别需要拒绝/限制某些角色对内容项的访问时,我们需要处理被拒绝的权限(我知道这不是推荐的做法,但有一个非常具体的需要总是拒绝)。

我目前正处于计划阶段,因此随着今天 Sitecore 7 的发布,如果这样可以使生活更轻松,还可以使用更新的 Lucene 库和/或 SOLR - 当然假设某些模块,如WebForms 用于营销人员电子邮件营销管理器很快就会更新。

考虑到安全性,人们使用哪些解决方案来返回搜索结果?除了上面的链接问题还有其他选择吗?也许我可以利用 Sitecore 7 中的某些东西,更新的 Lucene 库或 SOLR?

我宁愿保留这一切“开箱即用”的 Sitecore,并且尽可能不使用其他第三方搜索产品。

0 投票
3 回答
1230 浏览

sitecore - 从具有共享源项目存储桶的 CMS 6.5 升级到 CMS 7.0...如何?

我们目前正在运行 Sitecore CMS 6.5 (120706),并从此处安装了共享源 Item Buckets 模块:

https://github.com/jerrong/Sitecore-Item-Buckets/tree/master/sitecorepackages/ItemBuckets%206.5%20NET_40/Final

我们希望升级到 CMS 版本 7.0。有人告诉我,目前没有升级路径,预计几个月后会有升级。但是,我们宁愿不必等待。

项目桶仅用于我们网站的单个部分。其他所有内容都通过标准内容树交付。

我们已经尝试按照文档化升级过程的要求首先升级到 6.6,尽管它在说明中稍后提到共享源项目存储桶模块不幸不支持升级。确认这肯定不起作用,我们收到错误:

我们还尝试通过删除 .config 文件等来禁用项目存储桶,但我们遇到了更多问题,可能是因为项目存储桶更新所做的实际内容/数据模板更改。

我们正在考虑尝试全新安装 CMS 7.0,然后使用 Sitecore 包迁移我们的自定义代码库、内容树中的项目(包括数据模板、布局、渲染等)以解决该问题。

有人可以验证这种方法,还是更好地提出一个不那么痛苦的解决方案!?

非常感谢

0 投票
3 回答
2099 浏览

sitecore - sitecore 7中多列表的分面搜索

我能够生成构面并将结果绑定Linkbutton在转发器控件中。OR现在,当用户在 Sitecore 7 中选择超过 1 个相同构面类型的值时,我在使用运算符生成构面查询时遇到了问题。

可以做些什么来解决它?

谢谢

0 投票
2 回答
410 浏览

sitecore - Sitecore - 向页面添加简单字段

对不起,如果这是一个非常简单的问题。我确信我错过了一些非常基本的东西。无论如何:我刚刚安装了一个新的 Sitecore 7 站点,我只是想在“示例项目”模板中添加一个新字段。我添加了一个名为“title2”的字段,类型为“单行文本”。

我在主页下使用此模板创建了一个新页面,字段中的字段包括“title2”并已发布。在我的“sample rendering.xslt”文件中,我添加了一个部分来显示新字段,

然而,当我查看页面时,它不会显示新字段。如果我将“title2”更改为“title”,它会显示。

我在这里想念什么?

0 投票
1 回答
1002 浏览

asp.net-mvc - sitecore mvc ControllerRenderer 和上下文项布局

只是在玩 Sitecore 7 和 MVC,我尝试让渲染基础工作正常。

到目前为止,我已经能够在渲染部分中创建视图渲染(并映射到相关的 .cshtml 文件),并将这些应用于项目的演示详细信息(与使用 ASPX 布局/ASCX 的方式大致相同)子布局)。

我还能够将 Item 映射到控制器(使用项目上的 Controller 和 Action 字段),让Index控制器上的操作(继承自SitecoreController)返回 view ~/Views/Home/Index

我似乎无法理解的问题是合并两种渲染方法。我希望能够创建映射到 的控制器Item,但使用ViewRenderer而不是使用默认的 MVC 约定来呈现项目return View(),以便我可以:

  1. 通过设置渲染的路径参数来指定视图文件在多站点环境中的位置;和
  2. 让内容作者/经理像布局/子布局对占位符一样管理渲染。

有谁知道可以实现这一目标的方法?

0 投票
1 回答
877 浏览

asp.net-mvc - Glass.Mapper 是否支持 Sitecore 7 中的 MVC 模型链接?

在 Sitecore 7 中,现在可以在下创建模型定义项/sitecore/layout/Models并将它们链接到我的LayoutsRenderings(而不是在每个项上硬编码类型 + 程序集)。这使得管理变得更加容易,尤其是当我需要更新我的命名空间或查看哪些布局正在使用特定模型时。

也就是说,我遇到了一个问题,Glass.Mapper 似乎将“模型”字段解析为一个text字段,而实际上它是一个Internal Link字段。这是我得到的错误:

无法从程序集“Glass.Mapper.Sc,Version=3.0.2.8,Culture=neutral,PublicKeyToken=null”加载类型“/sitecore/layout/Models/HomeViewModel”。

如果 Glass 支持链接到 Sitecore 7 中的模型,现在有人吗,或者我是否正确地假设它只是没有将内部链接字段解析到模型?

0 投票
2 回答
2884 浏览

sitecore - 如何创建自定义 Sitecore ContentSearch 索引?

如标题所述,如何创建自定义 Sitecore ContentSearch 索引?[ConfigurationErrorsException: Index has no configuration.] Sitecore.ContentSearch.LuceneProvider.LuceneIndex.Initialize() +374每次尝试添加自定义索引时,我都会结束。

编辑:寻找基本示例独立配置。复制/粘贴sitecore_master_indexsitecore_web_index索引会导致错误。

0 投票
2 回答
3588 浏览

sitecore - Sitecore Glass Mapper (v3) 用于未填充基于查询的属性

更新:我使用的是 Sitecore 7.0 版

到目前为止,我正在成功使用 Glass.Mapper.Sc。我已经成功映射了许多模型。我现在刚刚尝试了我的第一个查询映射,但无法让它工作。

我有以下两种型号

根据教程,我应该期望 TestimonialList 填充有 Testimonial 项目列表。但是,列表始终为空。

我已经通过使用 sitecore 的开发人员工具中的 XPath 构建器以及通过以下使用 Sitecore API 来检查路径是否有效。

returnVal 填充了预期的项目。我也尝试过./*[@@templateName='Testimonial']作为映射属性的查询。

我已经成功地手动检索了一个特定的 Testimonial 实例,以检查这不是一些奇怪的映射问题。

除了这个问题,Glass.Mapping.Sc 和我的模型似乎一切正常。到目前为止,我已经按照glass.lu上的教程进行操作,并且通过 NuGet 安装了 Glass.Mapping.Sc。

我查看了 github 上的源代码,但看不到任何可能导致我的问题的东西。有没有其他人遇到过这个问题或成功使用带有玻璃的查询填充参数?

更新(根据迈克尔的回复):
我在 Testimonials 类中添加了以下属性

这返回了一个已填充的 AbstractModel 的 IEnumerable,它们是作为 Testimonials 项的直接子项的 6 个 Testimonial 项。

我也试过

并得到相同的结果。我不明白那个,因为我希望得到比 6 个推荐更多的项目。

我删除了 TestimonialList 属性并添加了一个新属性 Children,并且该属性完美运行

然后我使用 resharper 将属性重命名为 TestimonialList,然后是 ZYX,然后是 Blerg。所有三次都没有工作(没有填充),但如果我重命名回儿童,一切都很好。奇怪的。

更多更新 我发现为什么当属性被命名为“儿童”时查询似乎正在工作。它不起作用,这是我得到意想不到的结果的方式。“Children”是填充在所有子项上的公共属性。因为我所有的子项目都是推荐书,所以可以正确填充。

因此,如果我将我的属性更改为以下内容,它仍然会正确填充

见于 Glass.Mapper.Sc.Integration.DataMappers.SitecoreChildrenMapperFixture.MapToProperty_ItemHasThreeChildren_ThreeObjectsAreCreated。

0 投票
1 回答
3000 浏览

c# - Sitecore 7 搜索所有内容

我正在为基于 Sitecore 的网站编写搜索网站。我已经能够走到这一步。

MySearchResultsItem 定义如下。

当我进行搜索时

,我得到了正确的结果。但我想在项目的所有领域进行搜索,我认为可以使用
[IndexField(Sitecore.ContentSearch.BuiltinFields.Content)].

我究竟做错了什么?我应该使用哪个 IndexField 来查询所有内容?

谢谢

0 投票
3 回答
7914 浏览

sitecore - 如何在 Sitecore 7 ContentSearch API 中搜索多个术语?

我正在探索Sitecore.ContentSearchSitecore 7 中新的“LINQ to Sitecore”API。据我了解,Sitecore 建议在现有Sitecore.SearchAPI 上使用新的 LINQ API,但是,即使是最简单的查询,我也很难执行。

以以下搜索查询为例:"hello world".

使用Sitecore.SearchAPI,术语“hello world”通常会通过 a 传递,QueryParser这将导致文档匹配单词“hello”或“world”。包含这两个术语的文档将比仅包含一个术语的文档得分更高。

如何使用 LINQ 执行相同的查询?

这是我尝试过的:

更新

我确信我错过了一些非常简单的东西。当然,在新搜索 API 的所有工作中,这个简单的用例并没有被忽视……对吧?

作为一种解决方法,我尝试sitecore_web_index使用现有的 SearchManager 打开默认值,但是这不起作用。

不幸的是,在我弄清楚这一点之前,我不得不求助于现有的 API。我一定会用我的发现更新这个问题。

更新 2

我找到了Sitecore.ContentSearch.Utilities.LinqHelper部分解决问题的课程。您可以使用它来动态构建类似于BooleanQueryLucene.Net 中的查询,但是,它的选项有限,并且会增加一些性能开销。