你如何启用"设计" sitecore体验编辑器中的复选框?

时间:2016-10-05 08:37:57

标签: content-management-system sitecore sitecore8

我正在查看sitecore上Personalisation of components的文档。几乎第一步是:

  

在体验编辑器中,单击“视图”选项卡,然后在“启用”组中,   选择设计以启用设计功能。

看看我的经验编辑,虽然这是灰色的,不可点击的:

enter image description here

我以管理员身份登录,并且对此项目拥有完整的修改权限。我已经通过sitecore文档和论坛搜索了这个问题但我无法看到任何可以执行此操作或修复的内容。任何人都可以建议吗?我猜想XML配置中有一些神奇的符文需要更新,但这似乎是一个"未记录的功能" ...

我的网站配置如下:

<site name="siteName" 
            virtualFolder="/" 
            physicalFolder="/" 
            rootPath="/sitecore/content" 
            startItem="/start-item" 
            database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" 
            registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" 
            enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" 
            enableAnalytics="true"
            cacheRenderingParameters="true" renderingParametersCacheSize="10MB" 
            itemwebapi.mode="Off" itemwebapi.access="ReadOnly" itemwebapi.allowanonymousaccess="false"/>

我使用的是sitecore 8

2 个答案:

答案 0 :(得分:2)

经过多次实验(感谢@Marek的帮助),我注意到ToggleDesignCapability命令从未被命中。

我在SC forums

上看到了这个答案
  

我在从7.5升级到升级时遇到了同样的问题   8更新2.我开始将我的web.config与股票8进行比较   更新2配置,并注意到“网站”网站条目是   失踪。人们会认为没有必要,但是当我   将其添加回来,问题得到了解决。以下是要检查的行:

<site name="website" virtualFolder="/" physicalFolder="/" 
rootPath="/sitecore/content" startItem="/home" database="web" domain="extranet" 
allowDebug="true" cacheHtml="true" htmlCacheSize="50MB" registryCacheSize="0" 
viewStateCacheSize="0" xslCacheSize="25MB" filteredItemsCacheSize="10MB" 
enablePreview="true" enableWebEdit="true" enableDebugger="true" 
disableClientData="false" cacheRenderingParameters="true" 
renderingParametersCacheSize="10MB" />

我已经解雇了,因为我已经按照配置设置了网站,请参阅我的问题。我错过了(以及论坛答案中没有解释的内容)是你必须明确拥有一个名为 website 的网站。如果您有一个名为的网站这不起作用。我们在现有的站点配置下面添加了上面的内容,即:

<site name="siteName" 
            virtualFolder="/" 
            physicalFolder="/" 
            rootPath="/sitecore/content" 
            startItem="/start-item" 
            database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" 
            registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" 
            enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" 
            enableAnalytics="true"
            cacheRenderingParameters="true" renderingParametersCacheSize="10MB" 
            itemwebapi.mode="Off" itemwebapi.access="ReadOnly" itemwebapi.allowanonymousaccess="false"/>

<site name="website" virtualFolder="/" physicalFolder="/" 
    rootPath="/sitecore/content" startItem="/home" database="web" domain="extranet" 
    allowDebug="true" cacheHtml="true" htmlCacheSize="50MB" registryCacheSize="0" 
    viewStateCacheSize="0" xslCacheSize="25MB" filteredItemsCacheSize="10MB" 
    enablePreview="true" enableWebEdit="true" enableDebugger="true" 
    disableClientData="false" cacheRenderingParameters="true" 
    renderingParametersCacheSize="10MB" />

按钮现已按预期启用。

答案 1 :(得分:1)

如果您的用户具有管理员权限,则可以禁用该复选框,有3种情况:

  1. 页面标记为read only - 转到内容编辑器并查看Appearance部分。应该有Read only复选框。
  2. 您在体验编辑器中,但处于预览模式。检查体验编辑器中的功能区 - 第一部分应为Mode。确保选中Edit选项。
  3. 您的用户已为该项目的Deny访问权限设置了Write
  4. 根据我的记忆,在某些Sitecore版本Designing也被禁用,当其他用户锁定该项目时,它应该不再像Sitecore 8中那样。无论如何,您可能想要检查页面是否未锁定。

    enter image description here

    仍然无法使用?尝试使用下面的代码。应立即启用复选框。取消注释原始代码并进行调试,以了解为什么没有为您的用户启用它:

    namespace MyAssembly.Namespace
    {
      [Serializable]
      public class ToggleDesignCapability : Sitecore.Shell.Applications.WebEdit.Commands.ToggleDesignCapability
      {
        public override CommandState QueryState(CommandContext context)
        {
          return CommandState.Enabled;
    
          /*
              //Original QueryState code - remove return statement above and uncomment to debug
    
              CommandState commandState = base.QueryState(context);
              Item obj = context.Items.Length > 0 ? context.Items[0] : (Item) null;
              if (obj != null && (commandState == CommandState.Enabled || commandState == CommandState.Down) && !WebEditCommand.CanDesignItem(obj))
                return CommandState.Disabled;
              return commandState;
          */
        }
      }
    }
    

    App_config/Include/Sitecore.ExperienceEditor.config替换webedit:toggledesigncapability命令中的原始命令类型:

      <command name="webedit:toggledesigncapability" type="MyAssembly.Namespace.ToggleDesignCapability, MyAssembly" />