Редактируемый контент Orchard CMS в представлениях MVC

Я работаю над модулем Orchard для продажи своего рода электронной книги. Перед покупкой пользователь может просмотреть страницу с образцом продукта. После покупки пробная страница больше не нужна, и пользователю доступен полный продукт.

Я хотел бы настроить все таким образом, чтобы, если платящий клиент пытается получить доступ к странице образца, он будет перенаправлен на свой полный продукт, а если не-клиент попытается перейти на страницу полного продукта, он будет перенаправлен на образец . Я также хотел бы, чтобы содержимое моей страницы можно было редактировать через панель инструментов.

Моя текущая реализация:

  • Контроллер, обрабатывающий условную маршрутизацию/перенаправление в зависимости от того, была ли совершена покупка.
  • Правило слоя для каждого URL-адреса моей страницы, каждый из которых содержит виджет html для предоставления содержимого страницы

Кажется, это работает, но мне интересно, какие еще варианты у меня есть для этого.


person bingles    schedule 17.08.2014    source источник


Ответы (1)


Возможно, вы все усложняете.

Использование виджетов необязательно. Было бы намного лучше создать обычный тип контента и отображать его. Можно было бы обслуживать его через специальный контроллер, проверяющий покупку, но и это не нужно. Вместо этого вы можете создать часть, которая будет иметь логику проверки покупки в методе отображения драйвера. Таким образом, вы даже можете применить одну и ту же логику к любому типу контента.

person Bertrand Le Roy    schedule 17.08.2014
comment
Если бы я включил свою логику в драйвер части, могу ли я выполнять перенаправления страниц, или вы имеете в виду, что изменится только моя форма отображения, но по тому же маршруту? - person bingles; 17.08.2014
comment
Конечно: напишите реализацию DriverResult, которая выполняет перенаправление из своего метода Apply и возвращает его экземпляр из драйвера. - person Bertrand Le Roy; 18.08.2014
comment
Спасибо Бертран. Ваш ответ на мой первоначальный вопрос помог мне найти способ сделать это с помощью драйвера части без необходимости перенаправления. - person bingles; 18.08.2014