Как сделать так, чтобы элементы контента без CommonPart появлялись в списке контента?

Я создал собственный тип, который имеет UserPart прикреплен к нему.

Согласно этой проблеме на GitHub вы не можете добавить CommonPart к содержанию, которое также имеет UserPart потому что это вызывает StackruException но я бы хотел, чтобы элементы моего пользовательского Типа отображались в списке контента. Я уже храню CreatedUtc и Опубликовано Utc в пользовательском PartRecord, могу ли я где-нибудь их вручную подключить?

РЕДАКТИРОВАТЬ: Для пояснения, мой конкретный сценарий заключается в том, что я создаю общедоступный веб-сайт Orchard на основе существующих данных, которые использовались в частном приложении до этого момента. У меня есть устаревшая таблица с учетными записями пользователей, которые необходимо сопоставить с пользователями Orchard, но они также представляют туристические агентства, которые посетители должны иметь возможность просматривать и которые администраторы Orchard легко могут редактировать и создавать с помощью панели инструментов. У меня появилась идея создать тип TravelAgency с помощью UserPart из учебника Sipke.

1 ответ

Решение

Типы контента не требуют наличия CommonPart для отображения в списке контента. Если я правильно помню, это было сделано путем запуска Creatable() в ваших миграциях. Также, если у вас есть UserPart, вы можете загрузить Lazy или просто ссылаться на него через внешний ключ.

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

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

Если я правильно помню, это было какое-то время... Если вы посмотрите в основной код, где создается список контента, он ищет Creatable() Types. копаясь еще больше в коде, есть вероятность, что ответственный запрос присоединится к CommonPart, следовательно, ваша проблема. Вы можете легко добавить еще один запрос в контроллер и добавить то, что вы после. Проблема, однако, будет рефакторинг остальных действий, чтобы приспособить ваш тип тоже. Намного проще изолировать ваш новый тип. пришлось посмотреть на это для вас, проверьте этот ребенок: Orchard.Core.Contents.Controllers.AdminController

Другие вопросы по тегам