Как я могу использовать концепцию Inversion of Control в Sitecore, чтобы элементы, не являющиеся страницами, отображались сами собой? - PullRequest
1 голос
/ 27 сентября 2011

У меня есть несколько нестраничных элементов контента, которые используются как «выноски» на боковых сторонах страниц моего веб-сайта, которые я создаю в Sitecore. В идеале я хотел бы иметь возможность определять информацию презентации для этих выносок независимо. Затем, когда автор CMS выбирает выноски для определенной страницы сайта, он знает, как отображать себя. Я прочитал отличный пост в блоге о том, как это сделать, здесь: http://www.awareweb.com/AwareBlog/InversionControl2.aspx. Я использовал первый метод, который он описывает в этом посте.

Однако моя реализация этого кода не работает полностью. Кажется, что он получает правильный рендеринг, и он правильно перебирает выбранные нестраничные элементы выноски. Но когда он отображает их на странице, создается впечатление, что элементы выноски по-прежнему используют Sitecore.Context.Item в качестве исходного элемента, а не исходный элемент, который был передан им через переменную strDataSource, как показано в примере кода.

Должен ли я делать что-то особенное в коде для подуровней для выносок, чтобы сказать им не использовать Sitecore.Context.Item и вместо этого использовать исходный элемент, который был передан? В противном случае я не могу понять, почему это не работает. Есть идеи?

Спасибо, Corey

1 Ответ

4 голосов
/ 27 сентября 2011

Установка DataSource в подуровне явно не устанавливает Context.Item в другое значение, она просто устанавливает свойство в подуровне, которое оно может использовать само.

Вместо того, чтобы снова писать решение, блог Джона Уэста уже освещает эту тему здесь, поэтому я рекомендую вам прочитать это - http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010/11/How-to-Apply-Data-Sources-to-Sitecore-ASPNET-Presentation-Components.aspx

Я бы порекомендовал использовать библиотеку SublayoutParameterHelper Shared Source, которая предоставляет помощник и базовый класс для использования с вашими подуровнями для доступа к элементу, представленному идентификатором, установленным в DataSource; Джон также цитирует эту библиотеку в своем блоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...