2016-04-01 3 views
0

У нас есть проект Sitecore, а код/​​файлы - от ASP.NET веб-приложения.Как сделать jQuery визуализированный контент редактируемым в редакторе опыта Sitecore

HTML, для раздела продукции выглядит следующим образом

<div class="products-section"> 
    <ul class="tabs"> 
    <li>Product 1</li> 
    <li>Product 2</li> 
    </ul> 
    <div class="product"> 
    <h3>Product Name</h3> 
    <img src="/images/img1.jpg" /> 
    <span>Description</span> 
    </div> 
</div> 

Вот как это работает для конечного пользователя. EU перейдет на вкладку «Продукт» (например, продукт 1), которая изменит содержимое внутри <div class="product">, без обратной передачи.

Для автора этот раздел должен быть доступен из Редактора Experience. Обычно я использую asp:Repeater с sc:Text,sc:Image, чтобы сделать это.

Но здесь данные должны быть получены с использованием вызовов ajax, что означает отсутствие элементов управления ретранслятора или Sitecore.

В этом случае, как я могу сделать контент редактируемым из редактора «Опыт».

Единственные идеи, которые я придумал:

  1. Получить данные всех продуктов в Page_Load, связывают его с помощью Repeater, а затем использовать jQuery Показать/Скрыть соответствующие дивы. (Не похож, хороший способ, хотя)

  2. Сообщите автор контента, что этот раздел может быть изменен только от содержимого редактора, а не из редактора опыта :)

Каковы мои варианты здесь ,

+0

Зачем это закрыть? Разве это не общий сценарий для разработчиков sitecore. Если есть что-то еще, о чем нужно упомянуть, сообщите мне. – Qwerty

ответ

2

Одним из вариантов может быть отображение вашей страницы по-разному в редакторе опыта. Проверьте режим в коде и используйте ретранслятор при редактировании, в противном случае используйте вывод jquery. Вы можете использовать Views, чтобы легко отображать/скрывать требуемый результат.

<asp:MultiView runat="server" ID="ProductsView"> 
    <asp:View runat="server" ID="StandardView"> 
    <div ...> 
    ... 
    </div> 
    </asp:View> 
    <asp:View runat="server" ID="EditorView"> 
    <asp:Repeater..> 
     ... 
    </asp:Repeater> 
    </asp:View> 
</asp:MultiView> 

В своем коде позади:

ProductsView.SetActiveView((Sitecore.Context.PageMode.IsExperienceEditor || Sitecore.Context.PageMode.IsExperienceEditorEditing) ? EditorView : StandardView) 

на основе активного вида, вы можете решить, чтобы прикрепить данные к ретранслятору или нет (не делать, что, когда StandardView активен, для выполнения)

+1

Хотя это теоретически может ответить на вопрос, [было бы предпочтительно] (// meta.stackoverflow.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. – manetsus

+0

@Gatogordo.Пожалуйста, предоставьте более подробную информацию, указатели, которые помогут мне начать работу. – Qwerty

+0

@Qwerty: добавлены примеры кода - надеюсь, что вам это поможет .. – Gatogordo

0

Я не уверен, почему конечный пользователь взаимодействует с редактором опыта, поскольку редактор «Опыт» используется авторами контента для создания сайта и обновления контента на самой странице.

Но если это требование для автора контента, вы можете использовать клиентские службы saic для обслуживания контента, используя аякс-вызов. Используйте this document, чтобы увидеть, как работает ssc.

Дайте мне знать, если у вас есть другой вопрос.

+0

Мое сообщение не говорит, что EU отредактирует! Объяснить, как это работает для ЕС, было только объяснение. Содержание курса должно быть обновлено с помощью ajax, но в то же время автор должен иметь возможность редактировать через Редактор опыта. Цените. если вместо этого вы можете указать пример. Если у вас не возник вопрос, пожалуйста, дайте мне знать. – Qwerty

+0

Думаю, вам нужно создать другое представление для режима редактора Experience и отобразить его на основе режима отображения. И для этого вы можете расширить режим отображения MVC и расширить возможности управления и рендеринга, чтобы иметь возможность обрабатывать представления PageEditor. –

+0

Можете ли вы предоставить любую ссылку для справки. Кроме того, это ASP.NET, а не MVC. Будет ли это работать – Qwerty

Смежные вопросы