- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 Sitecore 6.2 中处理多语言网站 我希望能够让 Sitecore 将 URL 中的“”(空格,传统上用 %20 代替)替换为连字符。
例如www.MySite.com/Hello World > www.MySite.com/Hello-World
到目前为止没问题,我们只是向 encodeNameReplacements 添加另一个条目
<replace mode="on" find=" " replaceWith="-" />
然后,为了防止我们的内容作者创建名称中带有连字符的项目(Sitecore 在读取其 URL 时会将其理解为有空格,从而导致 404 未找到),我们可以将连字符添加到禁止字符列表中在项目名称中,使用
<setting name="InvalidItemNameChars" value="\/:?"<>|[]-"/>
一切正常 - 直到我尝试创建新的语言定义。 Sitecore 中的语言可以使用简单的语言代码(例如 en、da、de 等)或语言和区域代码 (ISO),例如 en-GB、da-DK、de-DE 等。对于我们的网站,我们需要区域代码,因为我们打算支持区域语言变体(例如瑞士法语和瑞士德语)。但当然,我现在已经禁止在项目名称中使用连字符(和语言一样,Sitecore 中的所有其他内容都被定义为项目)。事实上,Sitecore 要求将语言名称正确构造为文化标识符,因此我无法使用模板的 ISO 代码字段中指定的 ISO 代码为语言分配描述性名称(例如美国英语)。
任何人都可以建议一个合适的解决方案吗?我是否应该从 InvalidItemNameChars 节点中删除连字符并编写一个自定义代码片段来捕获尝试创建带连字符的项目名称 i?如果是这样,我应该如何拦截创建事件?
我讨厌在不必要的地方自定义界面,尤其是我担心这可能会给 Sitecore 版本更新带来问题,所以如果有其他解决方案,我很乐意听取。
提前致谢。
最佳答案
这使用规则引擎来替换特殊字符,例如项目名称中的空格:
https://marketplace.sitecore.net/en/Modules/Item_Naming_rules.aspx
如果您不替换,而只是翻译,那么在处理 URL 时,Sitecore 的项目解析器会尝试查找带有破折号而不是空格的项目名称,并且不会找到匹配的项目。如果您实际上不替换字符,则需要覆盖项目解析器。
如果你想保留用户可见的带空格的名称,但实际上用破折号命名项目,那么你可以在将空格重命名为破折号时将项目的显示名称设置为带空格的原始值,但是我不建议这样做。
关于c# - Sitecore URL 优化和语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4646616/
我已将 Active Directory 模块与 sitecore 集成,我可以在 sitecore 用户管理器中看到广告中的用户。现在我想验证广告用户是否可以登录 sitecore。我为用户分配了
有没有办法通过代码访问Sitecore设置。 我感兴趣的具体设置是数据文件夹路径。 最佳答案 如果您想获得其他设置,您可能需要尝试:- Sitecore.Configuration.Settings.
根据 Sitecore 数据定义引用,版本 6.4,第 4.3.1 节: Sitecore processes queries using the fasted technology possible
Sitecore 6.6(更新4)。 MaxMind具有与DMS集成的Sitecore-specific lookup service选项。 MaxMind还具有一些更通用的Web服务。 可以将“通用
当我在 Sitecore 单行字段文本框中按 ENTER 时,它会呈现两个换行符 此问题仅出现在 Chrome/Firefox 中。在 IE ENTER 中只导致一个 我可以在这些浏览器中以某种方式
好奇为什么我无法从那里取回任何物品 HistoryManager.GetHistory(database, fromThisDate, toThisDate) ,我查看了 Sitecore 数据库,发
我们正在使用Sitecore 6.2,并且要求在Sitecore管理网站上使用SSL。 除了将内容保存在Rich Text编辑器中(单击“接受”按钮)时,所有指向媒体库项目的URL都将添加“ http
如何以编程方式登录 Sitecore? 例如,如果您想将 Sitecore API 的一小部分连接到桌面应用程序,则需要先登录到 sitecore 才能访问数据库等。 这可以做到吗? 最佳答案 正如
我已将 Sitecore 安装设置到两个不同的 IIS 站点。一个包含所有 Sitecore 管理文件,另一个包含共享相同 Web.config 的干净 Web 文件,而我的 Data 文件夹位于这两
我在一台开发服务器上安装了 sitecore,并将站点根文件夹复制到一堆开发机器上。此过程在 7 台计算机中的 6 台上运行良好,我们可以正常看到 sitecore 登录和内容编辑器页面,并通过 II
我已经设置了一个本地 Sitecore 环境,所有 sql 和 mongodb 数据库都可以正常工作。 除了我在体验文件(联系人)中没有获得任何数据 我看到 mongo 中的tracking_cont
我的 Sitecore 网站要求用户名是电子邮件地址。 我可以在代码中成功创建用户,但每当我尝试在用户管理器上的 Sitecore CMS 中手动创建 Extranet 用户时,都会引发电子邮件用户名
客户询问 Sitecore 中是否有任何地方内容作者可以为内容项的单个版本添加内部注释。该注释可能会说“我更改了内容字段以包含更新的描述”之类的内容。这与您在工作流程中提交项目时简单地添加评论不同。他
现在我的 sitecore 工作流程遇到问题。问题如下: 我的模板标准值已设置工作流程和默认工作流程字段集。工作流程状态设置为草稿。但是,每次我从此模板创建项目时,它都不会继承工作流程部分字段,所有字
我在 sitecore 用户管理器中遇到了这个奇怪的错误。我一打开用户管理器就收到此错误我无法将用户分配给角色。 有人可以帮忙吗? 提前致谢。 P.S > 以防万一它无法正确显示:http://www
我知道有一个 SortOrder 字段。然而,在我看来,该字段很多次都是空的,直到您真正开始在列表中四处移动内容项。然后,如果您有一个项目列表并四处移动其中一些项目,将为它们分配一个 SortOrde
我知道这听起来像是一个愚蠢的问题,但无数的谷歌搜索都没有给我想要的答案。我看到很多关于如何基于 Sitecore 模板等格式化电子邮件的数据,但没有关于实际发送邮件的信息。我是否需要通过 .net 代
我想 Hook item:renamed 事件来做一些处理。不过可能需要几分钟。事件处理程序是与正常管道执行异步执行还是同步执行?如果我需要自己执行此操作,是否有标准的 Sitecore 方法可以异步
我一直在浏览 Sitecore.Kernel,但似乎找不到 Sitecore 运行 Initialize 管道的位置。它是在每个页面请求上运行还是在应用程序启动时只运行一次?您能指出为此管道调用 Ru
我已经在 sitecore 中安装了重定向模块。在模块内部,我创建了“重定向网址”。在重定向网址中,我写了请求的网址“http://domainname/pagename”并从内容中选择了重定向到。但
我是一名优秀的程序员,十分优秀!