2016-10-31 8 views
1

Я создал пользовательский тип с прикрепленным к нему UserPart.Как я могу сделать объекты контента без CommonPart в списке содержимого?

По this issue on GitHub вы не можете добавить CommonPart к контенту, который также имеет UserPart, потому что это вызывает StackOverflowException, но я бы все равно как элементы моего пользовательского типа, чтобы показать в списке содержимого. Я уже храню CreatedUtc и PublishedUtc в пользовательском PartRecord, могу ли я вручную подключить их где-нибудь?

EDIT: Для уточнения, мой конкретный сценарий заключается в том, что я создаю публичный сайт Orchard, основанный на существующих данных, который использовался в частном приложении до этого момента. У меня есть таблица устаревших пользователей с учетными записями пользователей, которые необходимо сопоставить с пользователями Orchard, но они также представляют туристические агентства, которые посетители должны иметь возможность просматривать, а администраторы Orchard должны легко редактировать и создавать через панель мониторинга. У меня возникла идея создать тип TravelAgency с UserPart от Sipke's webshop tutorial

ответ

1

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

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

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

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

+0

Ну, тип контента является одновременно и настраиваемым, и списком, но он не отображается в списке содержимого, пока я не нахожу 'присоедините к ним CommonPart и повторно опубликуйте их. Когда я удаляю CommonPart, элементы снова исчезают из списка. В моем случае тип не зависит от конкретного бизнеса. Это как пользователь, так и то, с чем посетители могут взаимодействовать в интерфейсе. – Lawyerson

+0

Я думаю, что в этом ваша проблема лежит, в конечном счете. Если бы вы могли объяснить немного лучше ваш сценарий, возможно, мы могли бы найти обходной путь. – ErMasca

+0

Моим конкретным сценарием является то, что я создаю публичный сайт Orchard на основе существующих данных, которые использовались в частном приложении до этого момента. У меня есть таблица устаревших пользователей с учетными записями пользователей, которые должны быть сопоставлены пользователям Orchard, но они также представляют туристические агентства, которые посетители должны иметь возможность просматривать, а администраторы должны иметь возможность легко редактировать и создавать через панель мониторинга. У меня возникла идея создать тип TravelAgency с помощью UserPart из [учебника для веб-магазина Sipke] (http://www.ideliverable.com/blog/writing-an-orchard-webshop-module-from-scratch-part-8) – Lawyerson