在Sitecore富文本编辑器中获取当前项目版本

Getting Current Item Version In Sitecore Rich Text Editor

本文关键字:获取 项目 版本 编辑器 Sitecore 文本 文本编辑      更新时间:2023-09-26

我想做什么

我正在写一个扩展到sitecore富文本编辑器,以以下方式工作。

  1. 用户单击由扩展添加的富文本编辑器工具栏上的按钮。
  2. 扩展javascript构建一个url,其中包括项目ID,语言,版本和数据库。这个URL用来打开一个富编辑器对话框。
  3. 对话框显示与当前项目相关的选项

我找不到任何方法来检测当前正在编辑的项目的以下重要信息。谁能告诉我如何在javascript中获得这些信息:

  • 正在编辑项目的版本号。
  • 项目所在的数据库

RadEditorCommandList["MyCommand"] = function (commandName, editor, tool) {
    var dialogUrl = "/sitecore%20modules/MyPluginModule/RichEditorDialog.aspx?";
    dialogUrl+= "Id=" + scItemID ;
    dialogUrl+= "&language=" + scLanguage; 
    //////////////////////////////////////////////////////////
    // UNKNOWN -- where do I get this information from?
    //////////////////////////////////////////////////////////
    dialogUrl+= "&database=UNKNOWN"; 
    dialogUrl+= "&version=UNKNOWN";
    editor.showExternalDialog(
        dialogUrl, 
        null,
        500, // width
        200, // height
        function(sender, data) {
           updateRichTextEditorWithSelectedData(editor, data);
        },
        null, // callback args
        "Dialog Title",
        true, // modal
        Telerik.Web.UI.WindowBehaviors.Default,
        false, // showStatusBar
       true  // showTitleBar
    );
 };

  • 这个javascript在aspx页面上吗?如果是,你可以取使用<%= Sitecore.Context.Item.Version.版本号。%>和数量%= Sitecore.Context.Database.Name%>使用<<ul>
  • 如果没有,您可以创建一个小的服务方法,并使用您拥有的itemid (scItemID)发出ajax请求,并以json对象的形式从服务获取相同的信息并使用相同的信息。在这种情况下,如果您不能使用当前上下文访问项目,您应该能够使用项目指南在服务器端代码中搜索核心和主数据库,并相应地返回响应