#content-management-system #sitecore #sitecore8
#content-management-system #sitecore #sitecore8
Вопрос:
Я просматриваю документацию по sitecore для персонализации компонентов. В значительной степени первый шаг:
В редакторе опыта перейдите на вкладку «Просмотр» и в группе «Включить» выберите «Проектирование«, чтобы включить функциональность «Дизайн».
Глядя на мой редактор опыта, хотя он выделен серым цветом и не отображается:
Я вошел в систему как администратор и должен иметь полные права на редактирование этого элемента. Я просмотрел документы и форумы 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
Ответ №1:
После долгих экспериментов (благодаря помощи от @Marek) я заметил, что ToggleDesignCapability
команда никогда не попадала.
Я видел этот ответ на форумах SC
Я столкнулся с той же проблемой при обновлении с 7.5 до 8 Update 2. Я начал сравнивать свой web.config со стандартной конфигурацией обновления 8 2 и заметил, что запись сайта «website» отсутствует. Можно было бы подумать, что в этом нет необходимости, но когда я добавил его обратно, проблема была решена. Вот строка для проверки:
<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" />
Кнопки теперь включены, как и ожидалось.
Ответ №2:
Если у вашего пользователя есть права администратора, существует 3 сценария, когда флажок может быть отключен:
- Страница помечена как
read only
— перейдите в редактор контента и проверьтеAppearance
раздел. Там должен бытьRead only
флажок. - Вы находитесь в редакторе опыта, но в режиме предварительного просмотра. Проверьте ленту в редакторе опыта — первый раздел должен быть
Mode
. Убедитесь, чтоEdit
эта опция выбрана. - Ваш пользователь установил
Deny
дляWrite
этого элемента право доступа.
Насколько я помню, в некоторых версиях Sitecore Designing
также отключался, когда какой-либо другой пользователь блокировал элемент, но в Sitecore 8 это больше не должно быть так. В любом случае, вы можете проверить, что страница не заблокирована.
Все еще не работает? Попробуйте использовать приведенный ниже код. Теперь флажок должен быть включен постоянно. Раскомментируйте исходный код и выполните отладку, чтобы понять, почему он не включен для вашего пользователя:
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 amp;amp; (commandState == CommandState.Enabled || commandState == CommandState.Down) amp;amp; !WebEditCommand.CanDesignItem(obj))
return CommandState.Disabled;
return commandState;
*/
}
}
}
И замените исходный тип App_config/Include/Sitecore.ExperienceEditor.config
webedit:toggledesigncapability
команды для command на:
<command name="webedit:toggledesigncapability" type="MyAssembly.Namespace.ToggleDesignCapability, MyAssembly" />
Комментарии:
1. 2 и 3 кажутся нормальными, я нахожусь в режиме редактирования, и администратор не «запрещает» доступ на запись. Однако, глядя на 1, при просмотре элемента на вкладке «Мои настройки -> Внешний вид» нет флажка «Только для чтения». Я добавлю в вопрос критический снимок. Есть мысли?
2. Флажок установлен в редакторе контента, а не в редакторе опыта. Смотрите Скриншот в ответе
3. В какой DLL находится этот конвейер? Кажется, мне не хватает ссылки,
WebEdit
это не пространство именSitecore.Shell.Applications
в моем решении4. Ах, нашел это
Sitecore.ExperienceEditor
5. Спасибо за вашу помощь. Кажется, это была проблема с конфигурацией. Приведенный выше код никогда не попадал, что привело меня к ответу ниже.