Двойная запись модуля в панели инструментов Orchard CMS - PullRequest
3 голосов
/ 31 мая 2011

Я работал над созданием модуля для Orchard;на основе учебника по NN .После начала работы над проектом я изменил пространство имен, различные классы и имена переменных, поскольку сделал различные предположения об именах, которые не выпали.

После этого упражнения по переименованию Модуль («Список определений»)) дважды отображается на панели инструментов:

Screenshot of Modules Dashboard

Вот мой module.txt:

Name: Definition List
AntiForgery: enabled
Author: Richard Slater
Website: http://www.richard-slater.co.uk/
Version: 0.2
OrchardVersion: 1.1
Description: Module Part to provision a selectable list of definitions as check boxes
Features:
    Definition List:
        Description: Adds Definition List Part
        Category: Content

Я не могу вспомнить нигде в проектеэто указало бы на другую категорию.

Migrations.cs:

public class Migrations : DataMigrationImpl {
    private readonly IRepository<DefinitionRecord> _definitionListRepository;
    private readonly IEnumerable<DefinitionRecord> _sampleRecords = new List<DefinitionRecord> {
        new DefinitionRecord { Term = "Term A", Definition = "This is the definition for Term A" },
        new DefinitionRecord { Term = "Term B", Definition = "This is the definition for Term B" },
        new DefinitionRecord { Term = "Term C", Definition = "This is the definition for Term C" }
    };

    public Migrations(IRepository<DefinitionRecord> definitionListRepository) {
        _definitionListRepository = definitionListRepository;
    }

    public int Create()
    {
        SchemaBuilder.CreateTable("DefinitionListPartRecord",
            table => table
                .ContentPartRecord()
            );

        SchemaBuilder.CreateTable("DefinitionRecord",
            table => table
                .Column<int>("Id", column => column.PrimaryKey().Identity())
                .Column<string>("Term")
                .Column<string>("Definition")
            );

        SchemaBuilder.CreateTable("ContentDefinitionRecord",
            table => table
                .Column<int>("Id", column => column.PrimaryKey().Identity())
                .Column<int>("DefinitionListPartRecord_Id")
                .Column<int>("DefinitionRecord_Id")
            );

        ContentDefinitionManager.AlterPartDefinition(
            "DefinitionListPart",
            builder => builder.Attachable());

        if (_definitionListRepository == null)
            throw new InvalidOperationException("Cannot find the Definition List Repository");

        foreach (var entity in _sampleRecords) {
            _definitionListRepository.Create(entity);
        }

        return 1;
    }
}

Ответы [ 2 ]

1 голос
/ 19 апреля 2013

Вы можете использовать раздел функций вашего файла манифеста, если хотите, но проблема, скорее всего, заключалась в названии первой записи в разделе функций. Если пространство имен вашего модуля было My.Orchard.DefintionList, тогда манифест должен выглядеть следующим образом:

Name: Definition List
AntiForgery: enabled
Author: Richard Slater
Website: http://www.richard-slater.co.uk/
Version: 0.2
OrchardVersion: 1.1
Description: Module Part to provision a selectable list of definitions as check boxes
Features:
    My.Orchard.DefinitionList:
        Description: Adds Definition List Part
        Category: Content

Обратите внимание, что функция называется «My.Orchard.DefinitionList» вместо «Список определений», как вы изначально использовали. Дополнительную информацию о файлах манифеста можно найти в документации Orchard .

1 голос
/ 31 мая 2011

Я, кажется, перепроектировал мой module.txt, так как удаление раздела «Функции» файла решает проблему дублирования. Наряду с некоторыми дополнительными полями и некоторыми изменениями порядка, здесь находится мой новый рабочий модуль.txt:

Name: Definition List
AntiForgery: enabled
Author: Richard Slater
Website: http://www.richard-slater.co.uk/
Version: 0.2
OrchardVersion: 1.1
Description: Provision a selectable list of definitions as check boxes.
FeatureDescription: Definition List Part.
Category: Content
...