2012-04-05 3 views
2

Я пытаюсь импортировать данные в Orchard CMS. У меня есть собственный тип, состоящий из частей и полей, и я использую модуль ImportExport. Я экспортировал некоторые данные из Orchard, чтобы гарантировать правильность схемы XML, но при импорте единственным полем, которое, кажется, заполняется, является TitlePart Title. Я случайно создал GUID для идентификатора каждой записи. Orchard 1.4, ImportExport 1.4.Orchard CMS Импорт данных

Пример одного элемента данных:

<Orchard> 
    <Recipe> 
    <Name>Data Import</Name> 
    <Author>myaccount</Author> 
    </Recipe> 
    <Data> 
    <OurPropertiesDivision Id="/Identifier=94eff3237c714f98b021905c33d25ea9" Status="Published"> 
     <LinkField.Link Text="This is a link" Url="http://stackoverflow.com" /> 
     <MediaPickerField.ImageOne Url="~/test.jpg" Width="100" Height="100" /> 
     <MediaPickerField.ImageTwo Url="~/test2.jpg" Width="100" Height="100" /> 
     <MediaPickerField.ImageThree Url="~/test3.jpg" Width="100" Height="100" /> 
     <TitlePart Title="Test Title" /> 
     <CommonPart Owner="/User.UserName=myaccount" CreatedUtc="2012-04-04T23:03:39Z" PublishedUtc="2012-04-04T23:03:39Z" ModifiedUtc="2012-04-04T23:03:39Z" /> 
     <IdentityPart Identifier="94eff3237c714f98b021905c33d25ea9" /> 
    </OurPropertiesDivision> 
    </Data> 
</Orchard> 

Это приводит к следующему, если смотреть на импортируемой записи:

Содержимое списка:

Orchard Content List

Edit экрана:

Orchard Edit Screen

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

РЕДАКТИРОВАТЬ: Добавление содержимого тип метаданных

<?xml version="1.0"?> 
<!--Exported from Orchard--> 
-<Orchard> 
    -<Recipe> 
    <Name>Generated by Orchard.ImportExport</Name> 
    <Author>myaccount</Author> 
    </Recipe> -<Metadata> 
    -<Types> 
     -<OurPropertiesDivision DisplayName="Our Properties - Division" ContentTypeSettings.Draftable="True" ContentTypeSettings.Creatable="True"> 
     <CommonPart DateEditorSettings.ShowDateEditor="False" OwnerEditorSettings.ShowOwnerEditor="False"/> 
     <TitlePart/> 
     <OurPropertiesDivision/> 
     <ContainablePart/> 
     <IdentityPart/> 
     </OurPropertiesDivision> 
    </Types> -<Parts> 
     <CommonPart ContentPartSettings.Attachable="True"/> <TitlePart ContentPartSettings.Attachable="True"/> -<OurPropertiesDivision ContentPartSettings.Attachable="True"> 
     <ImageOne.MediaPickerField DisplayName="Image One" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/> 
     <ImageTwo.MediaPickerField DisplayName="Image Two" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/> 
     <ImageThree.MediaPickerField DisplayName="Image Three" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/> 
     <Content.HtmlField DisplayName="Content" HtmlFieldSettings.FlavorDefault="html"/> 
     <Link.LinkField DisplayName="Link" HtmlFieldSettings.FlavorDefault="html" LinkFieldSettings.LinkTextMode="Required" LinkFieldSettings.TargetMode="NewWindow" LinkFieldSettings.Required="True"/> 
     </OurPropertiesDivision> <ContainablePart ContentPartSettings.Attachable="True"/> <IdentityPart ContentPartSettings.Attachable="True"/> 
    </Parts> 
    </Metadata> 
</Orchard> 
+0

Иногда возникают проблемы, при которых импорт помещает данные в db, но в разных версиях для элемента контента. Таким образом, последняя или опубликованная (не помню, какая) версия элемента контента (которая отображается в информационной панели) не имеет данных. Можете ли вы проверить db, чтобы убедиться, что это так? –

+0

Я никогда раньше не касался базы данных Orchard, но я замечаю, что в таблице Orchard_Framework_ContentItemRecord импорт являются единственными строками, которые содержат данные внутри столбца Data, и у них есть все поля из импорта. Все остальные строки, похоже, хранят свои данные внутри таблицы Orchard_Framework_ContentItemVersionRecord. Является ли это ошибкой с функцией импорта, не учитывающей управление версиями, или какой-либо другой проблемой? – Carson

+0

Возможно. Однажды я испытал подобную ошибку, но она была исправлена. Вы определяли этот элемент контента через панель мониторинга или через код (т. Е. В Migrations.cs)? Если вы сделали это через код, вы можете вставить код? Если вы не можете вставить метаданные для определения элемента контента? Вы можете получить это через экспорт, установите флажок Метаданные. –

ответ

0

я в конечном итоге анализируя вставки базы данных, генерируемых администратором, и вручную импортировать данные в SQL.

+1

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